diff --git a/src/server/locales/it.json b/src/server/locales/it.json
index efc5d92..324411a 100644
--- a/src/server/locales/it.json
+++ b/src/server/locales/it.json
@@ -4,11 +4,13 @@
"Good": "Bene",
"Service": "Servizio",
"Hosp": "Ospitalità",
+ "Hosp %s": "Ospitalità: %s",
+ "Event": "Evento",
"Good: %s": "Bene: %s",
"Service: %s": "Servizio: %s",
- "NEW_GOOD": "❇️ %s ha aggiunto un nuovo Bene: \n%s",
- "NEW_SERVICE": "❇️ %s ha aggiunto un nuovo Servizio: \n%s",
- "NEW_HOSP": "❇️ %s ha aggiunto una nuova Ospitalità: \n%s",
+ "NEW_GOOD": "❇️ %s ha aggiunto un nuovo Bene: \n%s a %s",
+ "NEW_SERVICE": "❇️ %s ha aggiunto un nuovo Servizio: \n%s a %s",
+ "NEW_HOSP": "❇️ %s ha aggiunto una nuova Ospitalità: \n%s a %s",
"NEW_EVENT": "❇️ %s ha aggiunto un nuovo Evento: \n%s\n%s\n%s",
"NEW_EVENT_TELEGRAM": "%s\n\n❇️ %s\n\n%s\n\n%s",
"NEW_ANNUNCIO_TELEGRAM": "❇️ %s\n\n%s\n\n%s",
@@ -56,6 +58,8 @@
"CIRCUIT_OPEN_RISITALIA": "Apri il Circuito RIS Italia e chiedi di entrare",
"CIRCUIT_REQUEST_TO_ENTER": "%s è entrato nel %s (con %s iscritti) ed è in attesa di essere abilitato alla Fiducia\n🙎🏻♂️ Invitato da %s",
"CIRCUIT_REQUEST_TO_ENTER_ASKMANAGER": "%s ha fatto richiesta di entrare nel %s (con %s iscritti)\n🙎🏻♂️ Invitato da %s",
+ "CIRCUIT_REQUEST_TO_ENTER_ASKMANAGER_SHORT": "%s ha fatto richiesta di entrare nel %s (con %s iscritti)\n🙎🏻♂️ Invitato da %s",
+ "CIRCUIT_REQUEST_TO_ENTER_ASKMANAGER_TITLE": "++ Nuova Richiesta di %s",
"CIRCUIT_ADMINS": "Gli amministratori del circuito sono %s:\n%s",
"CIRCUIT_WHERE_IS_PRESENT": "\nAttualmente è presente in: %s",
"CIRCUIT_REQUEST_TO_ENTER_WITH_GROUP": "il gruppo %s ha chiesto di entrare nel %s (con %s iscritti)",
diff --git a/src/server/models/circuit.js b/src/server/models/circuit.js
index 8fca7d9..1cc0df1 100755
--- a/src/server/models/circuit.js
+++ b/src/server/models/circuit.js
@@ -264,7 +264,7 @@ CircuitSchema.statics.findAllIdApp = async function (idapp) {
const whatToShow = this.getWhatToShow(idapp, '');
- return await Circuit.find(myfind, whatToShow).sort({ status: -1, numMembers: -1, name: 1 });
+ return await Circuit.find(myfind, whatToShow).lean().sort({ name: 1 });
};
CircuitSchema.statics.isCircuitAdmin = async function (idrec, username) {
@@ -450,7 +450,7 @@ CircuitSchema.statics.getCircuitsByUsername = async function (idapp, username, u
$or: [
{ deleted: { $exists: false } },
{ deleted: { $exists: true, $eq: false } }],
- }, whatToShow_Unknown).sort({ status: -1, numMembers: -1, name: 1 }).lean();
+ }, whatToShow_Unknown).sort({ name: 1 }).lean();
let asked_circuits = await Circuit.find({
idapp,
@@ -970,6 +970,15 @@ CircuitSchema.statics.getNameByCircuitId = async function (circuitId) {
return '';
+};
+CircuitSchema.statics.getPathByCircuitName = async function (idapp, circuitName) {
+
+ let circuit = await Circuit.findOne({ idapp, name: circuitName }).lean();
+ if (circuit)
+ return '/' + shared_consts.getDirectoryByTable('circuits') + '/' + circuit.path;
+
+ return '';
+
};
CircuitSchema.statics.getCircuitByCircuitId = async function (circuitId) {
diff --git a/src/server/models/mygroup.js b/src/server/models/mygroup.js
index 7f6180d..7fafd31 100755
--- a/src/server/models/mygroup.js
+++ b/src/server/models/mygroup.js
@@ -174,7 +174,7 @@ MyGroupSchema.statics.findAllGroups = async function (idapp) {
$or: [
{ deleted: { $exists: false } },
{ deleted: { $exists: true, $eq: false } }],
- }, whatToShow);
+ }, whatToShow).lean();
};
// Rimuovo la Richiesta del Gruppo
diff --git a/src/server/models/sendnotif.js b/src/server/models/sendnotif.js
index 030cc53..b9b186f 100755
--- a/src/server/models/sendnotif.js
+++ b/src/server/models/sendnotif.js
@@ -216,31 +216,33 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif, us
const { User } = require('../models/user');
try {
+ let dovestr = '';
if (recnotif.myrectableorig) {
myidrec = recnotif.myrectableorig._id;
mydescr = recnotif.myrectableorig.descr ? tools.firstchars(recnotif.myrectableorig.descr, numchars) : '';
+ dovestr = tools.getDoveStrByAnnuncio(recnotif.myrectableorig);
}
if (recnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_BACHECA) {
let tablerec = '';
if (recnotif.typeid === shared_consts.TypeNotifs.ID_BACHECA_NEW_GOOD) {
- newdescr = i18n.__('NEW_GOOD', userorig, mydescr);
+ newdescr = i18n.__('NEW_GOOD', userorig, mydescr, dovestr);
recnotif.openUrl = shared_consts.getDirectoryByTable(shared_consts.TABLES_MYGOODS, true) + myidrec;
tag = 'newgood';
tablerec = 'mygoods';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_BACHECA_NEW_SERVICE) {
- newdescr = i18n.__('NEW_SERVICE', userorig, mydescr);
+ newdescr = i18n.__('NEW_SERVICE', userorig, mydescr, dovestr);
recnotif.openUrl = shared_consts.getDirectoryByTable(shared_consts.TABLES_MYSKILLS, true) + myidrec;
tag = 'newservice';
tablerec = 'myskills';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_BACHECA_NEW_HOSP) {
- newdescr = i18n.__('NEW_HOSP', userorig, mydescr);
+ newdescr = i18n.__('NEW_HOSP', userorig, mydescr, dovestr);
recnotif.openUrl = shared_consts.getDirectoryByTable(shared_consts.TABLES_MYHOSPS, true) + myidrec;
tag = 'newhosp';
tablerec = 'myhosps';
}
let eventobj = await tools.getAnnuncioForTelegram(recnotif.myrectableorig, tablerec, mydescr, userorig, true);
- newdescr = eventobj.newdescr;
+ // newdescr = eventobj.descrperNotif;
recnotif.textcontent_Telegram = eventobj.newdescrtelegram;
recnotif.linkaddTelegram = '';
} else if (recnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_EVENTS) {
@@ -249,7 +251,7 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif, us
if (recnotif.typeid === shared_consts.TypeNotifs.ID_EVENTS_NEW_REC) {
// let eventobj = await tools.getEventForTelegram(recnotif.myrectableorig, mydescr, userorig);
let eventobj = await tools.getAnnuncioForTelegram(recnotif.myrectableorig, shared_consts.TABLES_MYBACHECAS, mydescr, userorig, true);
- newdescr = eventobj.newdescr;
+ newdescr = eventobj.descrperNotif;
newdescrtelegram = eventobj.newdescrtelegram;
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_EVENTS_SEND_MSG) {
newdescr = i18n.__('EVENT_SEND_MSG', userorig, recnotif.title, recnotif.msg);
@@ -597,10 +599,11 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif, us
recnotif.tag = recnotif.tag ? recnotif.tag : tag;
- if (!recnotif.descr) {
+ if (!recnotif.descr) {
recnotif.descr = newdescr;
}
+
return recnotif;
} catch (e) {
console.error(e);
diff --git a/src/server/models/user.js b/src/server/models/user.js
index b9b7d55..ffe3503 100755
--- a/src/server/models/user.js
+++ b/src/server/models/user.js
@@ -822,6 +822,19 @@ UserSchema.statics.findByCredentials = function (idapp, username, password, pwdc
} else {
return !user.deleted || (user.deleted && user.subaccount) ? user : null;
}
+ }).then((user) => {
+ if (!user) {
+ // Check with username telegram
+ return User.findOne({
+ idapp,
+ 'profile.username_telegram': username.toLowerCase(),
+ $or: [
+ { deleted: { $exists: false } },
+ { deleted: { $exists: true, $eq: false } }],
+ });
+ } else {
+ return !user.deleted || (user.deleted && user.subaccount) ? user : null;
+ }
}).then(user => {
if (!user)
return null;
diff --git a/src/server/sendemail.js b/src/server/sendemail.js
index 31ff63e..2d05ac1 100755
--- a/src/server/sendemail.js
+++ b/src/server/sendemail.js
@@ -132,38 +132,43 @@ module.exports = {
});
},
- sendEmail_Normale: async function (to, subject, html, replyTo) {
+ sendEmail_Normale: async function (mylocalsconf, to, subject, html, replyTo) {
- // setup e-mail data with unicode symbols
- var mailOptions = {
- from: tools.getEmailByIdApp(mylocalsconf.idapp), // sender address
- dataemail: await this.getdataemail(idapp),
- to: to,
- generateTextFromHTML: true,
- subject: subject,
- html: html,
- };
+ try {
+ // setup e-mail data with unicode symbols
+ var mailOptions = {
+ from: tools.getEmailByIdApp(mylocalsconf.idapp), // sender address
+ dataemail: await this.getdataemail(mylocalsconf.idapp),
+ to: to,
+ generateTextFromHTML: true,
+ subject: subject,
+ html: html,
+ };
- if (replyTo)
- mailOptions['reply-to'] = replyTo;
+ if (replyTo)
+ mailOptions['reply-to'] = replyTo;
- const smtpTransport = this.getTransport(mylocalsconf);
+ const smtpTransport = this.getTransport(mylocalsconf);
- if (process.env.SEND_EMAIL === '1') {
- // console.log("SEND EMAIL...");
- // send mail with defined transport object
- smtpTransport.sendMail(mailOptions, function (error, response) {
- if (error) {
- console.log('Email Inviata ERRORE RISPOSTA: ' + error);
- } else {
- // console.log("Email Inviata RISPOSTA: " + response);
- }
- });
- } else {
- if (process.env.PROVA_EMAIL_TEMPLATE !== '1')
- previewEmail(mailOptions).then(console.log).catch(console.error);
- else
- transport_preview.sendMail(mailOptions).then(console.log).catch(console.error);
+ if (process.env.SEND_EMAIL === '1') {
+ // console.log("SEND EMAIL...");
+ // send mail with defined transport object
+ smtpTransport.sendMail(mailOptions, function (error, response) {
+ if (error) {
+ console.log('Email Inviata ERRORE RISPOSTA: ' + error);
+ } else {
+ // console.log("Email Inviata RISPOSTA: " + response);
+ }
+ });
+ } else {
+ if (process.env.PROVA_EMAIL_TEMPLATE !== '1')
+ previewEmail(mailOptions).then(console.log).catch(console.error);
+ else
+ transport_preview.sendMail(mailOptions).then(console.log).catch(console.error);
+ }
+
+ } catch (e) {
+ console.error('Errore Sendmail', e);
}
},
@@ -497,27 +502,31 @@ module.exports = {
sendEmail_ByText: async function (lang, emailto, user, idapp, rec) {
- tools.mylog('sendEmail_ByText');
+ try {
+ tools.mylog('sendEmail_ByText');
- let mylocalsconf = {
- idapp,
- dataemail: await this.getdataemail(idapp),
- locale: lang,
- nomeapp: tools.getNomeAppByIdApp(idapp),
- usernameorig: user.name + ' ' + user.surname,
- };
+ let mylocalsconf = {
+ idapp,
+ dataemail: await this.getdataemail(idapp),
+ locale: lang,
+ nomeapp: tools.getNomeAppByIdApp(idapp),
+ usernameorig: user.name + ' ' + user.surname,
+ };
- mylocalsconf = this.setParamsForTemplate(user, mylocalsconf);
- mylocalsconf.emailto = emailto;
+ mylocalsconf = this.setParamsForTemplate(user, mylocalsconf);
+ mylocalsconf.emailto = emailto;
- mylocalsconf.dataemail.emailbody = rec.emailbody;
- mylocalsconf.dataemail.emailtitle = rec.emailtitle;
+ mylocalsconf.dataemail.emailbody = rec.emailbody;
+ mylocalsconf.dataemail.emailtitle = rec.emailtitle;
- if (!!mylocalsconf.dataemail.emailtitle && !!mylocalsconf.dataemail.emailbody) {
- const replyto = tools.getreplyToEmailByIdApp(idapp);
+ if (!!mylocalsconf.dataemail.emailtitle && !!mylocalsconf.dataemail.emailbody) {
+ const replyto = tools.getreplyToEmailByIdApp(idapp);
- //return this.sendEmail_base('standard', emailto, mylocalsconf, replyto);
- return await this.sendEmail_Normale(emailto, mylocalsconf.dataemail.emailtitle, mylocalsconf.dataemail.emailbody, replyto);
+ //return this.sendEmail_base('standard', emailto, mylocalsconf, replyto);
+ return await this.sendEmail_Normale(mylocalsconf, emailto, mylocalsconf.dataemail.emailtitle, mylocalsconf.dataemail.emailbody, replyto);
+ }
+ } catch (e) {
+ console.error('Errore sendEmail_ByText', e);
}
// Send Email also to the Admin
@@ -547,7 +556,7 @@ module.exports = {
const replyto = tools.getreplyToEmailByIdApp(idapp);
//return this.sendEmail_base('standard', emailto, mylocalsconf, replyto);
- return await this.sendEmail_Normale(emailto, mylocalsconf.dataemail.emailtitle, mylocalsconf.dataemail.emailbody, replyto);
+ return await this.sendEmail_Normale(mylocalsconf, emailto, mylocalsconf.dataemail.emailtitle, mylocalsconf.dataemail.emailbody, replyto);
}
// Send Email also to the Admin
diff --git a/src/server/tools/general.js b/src/server/tools/general.js
index 4ffd84d..191f777 100755
--- a/src/server/tools/general.js
+++ b/src/server/tools/general.js
@@ -1185,6 +1185,9 @@ module.exports = {
let arrris = [];
+ const userOrig = await User.findOne({ idapp, username: usernameOrig },
+ { _id: 1, lang: 1, aportador_solidario: 1, name: 1, surname: 1, username: 1 });
+
const user = await User.findOne({ idapp, username: usernameDest },
{ _id: 1, lang: 1 });
@@ -1238,9 +1241,31 @@ module.exports = {
if (mycircuit && mycircuit.askManagerToEnter) {
cmdrichiesta = shared_consts.CallFunz.RICHIESTA_CIRCUIT;
}
-
+
telegrambot.askConfirmationUser(idapp, cmdrichiesta, myuserdata, usernameDest, circuitname,
myreccircuit._id, '', extrarec.groupname);
+
+ if (mycircuit.sendEmailAfterAskingToEnter) {
+ const { Circuit } = require('../models/circuit');
+
+ const path = await Circuit.getPathByCircuitName(idapp, circuitname);
+ let myapp = this.getHostByIdApp(idapp);
+ let linkcirc = myapp + path;
+ let messaggio = '';
+ let mytitle = i18n.__('CIRCUIT_REQUEST_TO_ENTER_ASKMANAGER_TITLE', usernameOrig);
+ messaggio = i18n.__('CIRCUIT_REQUEST_TO_ENTER_ASKMANAGER_SHORT', usernameOrig, '' + circuitname + '', numuserincircuit, userOrig.aportador_solidario);
+ messaggio += '\n\n';
+ messaggio += 'Clicca qui per entrare sul Circuito\n';
+
+ const sendemail = require('../sendemail');
+
+ const email = myuserdata.email;
+
+ sendemail.sendEmail_ByText(lang, email, myuserdata, idapp, {
+ emailbody: messaggio,
+ emailtitle: mytitle,
+ })
+ }
onlysave = false;
} else if (cmd === shared_consts.CIRCUITCMD.ADDADMIN) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_ADDED_ADMIN;
@@ -4950,10 +4975,12 @@ module.exports = {
return '🗓 ' + mystr;
},
- getDoveStrByEvent(myrec) {
+ getDoveStrByAnnuncio(myrec) {
let dove = '🏠 ';
if (myrec.mycities && myrec.mycities.length > 0) {
- dove += myrec.mycities[0].comune + ' (' + myrec.mycities[0].prov + ')'
+ dove += myrec.mycities.map(city => {
+ return `${city.comune} (${city.prov})`;
+ }).join(', ');
}
return dove;
},
@@ -4971,7 +4998,7 @@ module.exports = {
async getEventForTelegram(myrec, mydescr, userorig) {
try {
let datastr = this.getstrDateTimeEvent(myrec);
- let dovestr = this.getDoveStrByEvent(myrec);
+ let dovestr = this.getDoveStrByAnnuncio(myrec);
let descrestesa = await this.getDescrEstesaStrByEvent(myrec);
let organizedby = myrec.organisedBy;
let contributo = myrec.contribstr;
@@ -5259,6 +5286,8 @@ module.exports = {
let img = '';
+ let descrperNotif = '';
+
if ((tablerec === shared_consts.TABLES_MYGOODS) || (tablerec === shared_consts.TABLES_MYSKILLS)) {
iconascambio = this.getIconByAdType(myrec.adType);
if (myrec.adType === shared_consts.AdType.OFFRO)
@@ -5284,12 +5313,20 @@ module.exports = {
if (tablerec === shared_consts.TABLES_MYGOODS) {
newdescr = i18n.__('Good', userorig, mydescr);
+ descrperNotif = i18n.__('Good: %', mydescr);
} else if (tablerec === shared_consts.TABLES_MYSKILLS) {
newdescr = i18n.__('Service', userorig, mydescr);
+ descrperNotif = i18n.__('Service: %', mydescr);
} else if (tablerec === shared_consts.TABLES_MYHOSPS) {
newdescr = i18n.__('Hosp', userorig, mydescr);
+ descrperNotif = i18n.__('Hosp %s', userorig, mydescr);
+ } else if (tablerec === shared_consts.TABLES_MYBACHECAS) {
+ newdescr = i18n.__('Event', userorig, mydescr);
+ let dovestr = this.getDoveStrByAnnuncio(myrec);
+ descrperNotif = i18n.__('NEW_EVENT', userorig, datastr, mydescr, dovestr);
}
+
let contatto = userorig;
let contatto_telegram = '';
try {
@@ -5422,7 +5459,7 @@ module.exports = {
// out += i18n.__('ADDED_FROM', );
- return { newdescr, newdescrtelegram: out, img };
+ return { newdescr, newdescrtelegram: out, img, descrperNotif };
} catch (e) {
console.error('Error', e);
}