Notification with Service Workers now is working!
When a Notification arrives, it save into the IndexDb, then in Vue.js call a polling to check in the db if there is a different record count. If is different then call a get to update the notification.
This commit is contained in:
@@ -583,6 +583,8 @@ module.exports = {
|
||||
'idapp',
|
||||
'tablerec',
|
||||
'extrafield',
|
||||
'tag',
|
||||
'options',
|
||||
'idrec',
|
||||
'status'];
|
||||
},
|
||||
@@ -744,7 +746,9 @@ module.exports = {
|
||||
});
|
||||
},
|
||||
|
||||
sendNotificationToUser: function(userId, title, content, openUrl, openUrl2, tag, actions) {
|
||||
sendNotificationToUser: function(userId, title, content, openUrl, openUrl2, tag, actions, id) {
|
||||
|
||||
content = this.convertHTMLtoText(content);
|
||||
|
||||
let payload = {
|
||||
actions,
|
||||
@@ -753,6 +757,7 @@ module.exports = {
|
||||
url: openUrl,
|
||||
url2: openUrl2,
|
||||
tag,
|
||||
id,
|
||||
// ttl: req.body.ttl,
|
||||
// icon: req.body.icon,
|
||||
// image: req.body.image,
|
||||
@@ -931,7 +936,8 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
|
||||
sendNotifGroupByUsername: async function(cmd, typeid_pass, idapp, usernameOrig, usernameDest, username_action, groupname, myrecgroup, isAdmin, username_worked) {
|
||||
sendNotifGroupByUsername: async function(
|
||||
cmd, typeid_pass, idapp, usernameOrig, usernameDest, username_action, groupname, myrecgroup, isAdmin, username_worked) {
|
||||
|
||||
const {SendNotif} = require('../models/sendnotif');
|
||||
const {User} = require('../models/user');
|
||||
@@ -976,7 +982,8 @@ module.exports = {
|
||||
typeid = shared_consts.TypeNotifs.ID_GROUP_REQUEST_TO_ENTER;
|
||||
// paramsObj.options = MessageOptions.Notify_OnlyToNotifinApp + MessageOptions.Notify_ByBotTelegram;
|
||||
const myuserdata = await User.getUserShortDataByUsername(idapp, username_action);
|
||||
telegrambot.askConfirmationUser(idapp, shared_consts.CallFunz.RICHIESTA_GRUPPO, myuserdata, usernameDest, groupname, myrecgroup._id);
|
||||
telegrambot.askConfirmationUser(idapp, shared_consts.CallFunz.RICHIESTA_GRUPPO, myuserdata, usernameDest, groupname,
|
||||
myrecgroup._id);
|
||||
onlysave = false;
|
||||
} else if (cmd === shared_consts.GROUPSCMD.BLOCK_USER) {
|
||||
typeid = shared_consts.TypeNotifs.ID_GROUP_BLOCK_USER;
|
||||
@@ -1002,7 +1009,6 @@ module.exports = {
|
||||
const {MyGroup} = require('../models/mygroup');
|
||||
const {User} = require('../models/user');
|
||||
|
||||
|
||||
const group = await MyGroup.findOne({idapp, groupname}, {_id: 1, admins: 1, createdBy: 1}).lean();
|
||||
if (!group)
|
||||
return;
|
||||
@@ -1138,6 +1144,10 @@ module.exports = {
|
||||
convertHTMLtoText(myhtml) {
|
||||
let msg = myhtml;
|
||||
msg = msg.replace('"', '"');
|
||||
msg = msg.replace(/<strong>/g, '');
|
||||
msg = msg.replace(/<\/strong>/g, '');
|
||||
msg = msg.replace(/<em>/g, '');
|
||||
msg = msg.replace(/<\/em>/g, '');
|
||||
msg = msg.replace('>', '>');
|
||||
msg = msg.replace('<', '<');
|
||||
msg = msg.replace('&', '&');
|
||||
@@ -1547,12 +1557,10 @@ module.exports = {
|
||||
});
|
||||
|
||||
// Iscritti Conacreis
|
||||
if (params.filterand.includes(shared_consts.FILTER_MISSING_PAYMENT))
|
||||
filtriadded.push({
|
||||
$or: [
|
||||
{ha_pagato: {$exists: false}},
|
||||
{ha_pagato: {$exists: true, $lt: 1}}],
|
||||
});
|
||||
if (params.filterand.includes(shared_consts.FILTER_REPORTED))
|
||||
filtriadded.push(
|
||||
{reported: {$exists: true, $eq: true}},
|
||||
);
|
||||
|
||||
if (params.filterand.includes(
|
||||
shared_consts.FILTER_TO_MAKE_MEMBERSHIP_CARD))
|
||||
@@ -1855,6 +1863,17 @@ module.exports = {
|
||||
const [ris] = await mythistable.aggregate(query);
|
||||
|
||||
if (ris) {
|
||||
if (params.table === 'users') {
|
||||
for (const myrec of ris.rows) {
|
||||
myrec.password = '**********';
|
||||
}
|
||||
} else if (params.table === 'mygroups') {
|
||||
for (const myrec of ris.rows) {
|
||||
if (myrec.pwd_cryp)
|
||||
myrec.pwd_cryp = '**********';
|
||||
}
|
||||
}
|
||||
|
||||
// console.table(ris.rows);
|
||||
// console.log('ROW ', ris.count);
|
||||
return ({count: ris.count, rows: ris.rows});
|
||||
|
||||
@@ -221,9 +221,10 @@ module.exports = {
|
||||
|
||||
const sendemail = require('../sendemail');
|
||||
|
||||
/// ... rivedere il crea gruppo... notifiche...
|
||||
try {
|
||||
if (!recnotif.options) {
|
||||
recnotif.options = shared_consts.MessageOptions.Notify_ByPushNotification + shared_consts.MessageOptions.Notify_ByBotTelegram;
|
||||
if (!recnotif.typesend) {
|
||||
recnotif.typesend = shared_consts.MessageOptions.Notify_ByPushNotification + shared_consts.MessageOptions.Notify_ByBotTelegram;
|
||||
}
|
||||
|
||||
let invia = false;
|
||||
@@ -239,13 +240,16 @@ module.exports = {
|
||||
typenotif,
|
||||
idnotif,
|
||||
usernameDest: recnotif.usernameDest ? recnotif.usernameDest : recnotif.dest,
|
||||
tag: recnotif.tag ? recnotif.tag : '',
|
||||
actions: recnotif.actions ? recnotif.actions : [],
|
||||
id: recnotif._id
|
||||
};
|
||||
|
||||
if (tools.isBitActive(recnotif.options, shared_consts.MessageOptions.Notify_ByPushNotification) && this.checkifSendPushNotification) {
|
||||
if (tools.isBitActive(recnotif.typesend, shared_consts.MessageOptions.Notify_ByPushNotification) && this.checkifSendPushNotification) {
|
||||
params.typesend = params.typesend + shared_consts.TypeSend.PUSH_NOTIFICATION;
|
||||
invia = true;
|
||||
}
|
||||
if (tools.isBitActive(recnotif.options, shared_consts.MessageOptions.Notify_ByBotTelegram)) {
|
||||
if (tools.isBitActive(recnotif.typesend, shared_consts.MessageOptions.Notify_ByBotTelegram)) {
|
||||
params.typesend = params.typesend + shared_consts.TypeSend.TELEGRAM;
|
||||
invia = true;
|
||||
}
|
||||
@@ -256,7 +260,7 @@ module.exports = {
|
||||
}
|
||||
|
||||
// Send Msg by EMAIL
|
||||
if (tools.isBitActive(recnotif.options, shared_consts.MessageOptions.Notify_ByEmail)) {
|
||||
if (tools.isBitActive(recnotif.typesend, shared_consts.MessageOptions.Notify_ByEmail)) {
|
||||
// Read from the operator table first
|
||||
let emaildest = await Operator.getEmailByUsername(recnotif.dest.idapp, recnotif.dest.username);
|
||||
if (!emaildest)
|
||||
@@ -265,17 +269,17 @@ module.exports = {
|
||||
await sendemail.sendEmail_ByNotif(res, user.lang, emaildest, user, idapp, recnotif);
|
||||
}
|
||||
|
||||
return true;
|
||||
return recnotif;
|
||||
} catch (e) {
|
||||
console.error('sendNotif', e, typenotif, recnotif);
|
||||
return false;
|
||||
return recnotif;
|
||||
}
|
||||
},
|
||||
|
||||
SendMsgToParam: async function(idapp, params) {
|
||||
|
||||
try {
|
||||
console.log('SendMsgToParam');
|
||||
console.log('SendMsgToParam', params.typesend);
|
||||
|
||||
const telegrambot = require('../telegram/telegrambot');
|
||||
|
||||
@@ -356,7 +360,7 @@ module.exports = {
|
||||
if (tools.isBitActive(params.typesend, shared_consts.TypeSend.PUSH_NOTIFICATION)) {
|
||||
const myparam = {...params};
|
||||
risult = tools.sendNotificationToUser(user._id, mytitle, mycontent, myparam.openUrl, myparam.openUrl2, myparam.tag,
|
||||
myparam.actions).
|
||||
myparam.actions, myparam.id).
|
||||
then(ris => {
|
||||
|
||||
}).
|
||||
|
||||
@@ -27,7 +27,7 @@ module.exports = {
|
||||
FILTER_ASK_ZOOM_VISTO: 32768,
|
||||
FILTER_HOURS_MYLIST: 65536,
|
||||
FILTER_HOURS_ALL: 131072,
|
||||
FILTER_MISSING_PAYMENT: 262144,
|
||||
FILTER_REPORTED: 262144,
|
||||
FILTER_TO_MAKE_MEMBERSHIP_CARD: 524288,
|
||||
FILTER_MEMBERSHIP_CARD_OK: 1048576,
|
||||
FILTER_USER_NO_VERIFIED_APORTADOR: 2097152,
|
||||
|
||||
Reference in New Issue
Block a user