- Add Button Whatsapp Chat
- Fixed 'Ask Info' and 'Book' if the email arrived... - Added "Settings" table: URL_FACEBOOK, TELEGRAM_SUPPORT, URL_INSTAGRAM, WHATSAPP_CELL, INT_CODE, MAIN_EMAIL, CONTACTS_EMAIL_CELL, CALL_WORKING_DAYS, EVENTS_CAL, MSG_REPLY_AFTER_BOOKING. -
This commit is contained in:
@@ -2,6 +2,7 @@ p Ciao #{name},
|
||||
p Ti confermiamo che hai appena inviato una richiesta di prenotazione per l'evento #{event}
|
||||
span #{participants}
|
||||
p Messaggio: #{msgbooking}
|
||||
p #{msgreply_after_booking}
|
||||
|
||||
p Cordiali Saluti
|
||||
p Supporto #{nomeapp}
|
||||
|
||||
@@ -2,10 +2,6 @@ p Ciao #{name},
|
||||
p #{usernameorig} ti ha inviato questo messaggio dalla pagina
|
||||
span (#{infoevent}):
|
||||
p #{message}
|
||||
p
|
||||
p Per rispondere al messaggio clicca qui:
|
||||
div.divbtn <a href=#{strlinkreply} target="_blank">
|
||||
button.btn.btn-lg Rispondi</a>
|
||||
|
||||
p Cordiali Saluti
|
||||
p Supporto #{nomeapp}
|
||||
@@ -15,20 +11,3 @@ style(type="text/css").
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.divbtn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.btn-lg {
|
||||
padding: 5px;
|
||||
margin: 5px;
|
||||
font-size: 26px;
|
||||
cursor: pointer;
|
||||
color: white;
|
||||
background: #027be3 !important;
|
||||
border-radius: 28px;
|
||||
|
||||
}
|
||||
|
||||
34
emails/msg/sendmsgchat/it/html.pug
Normal file
34
emails/msg/sendmsgchat/it/html.pug
Normal file
@@ -0,0 +1,34 @@
|
||||
p Ciao #{name},
|
||||
p #{usernameorig} ti ha inviato questo messaggio dalla pagina
|
||||
span (#{infoevent}):
|
||||
p #{message}
|
||||
p
|
||||
p Per rispondere al messaggio clicca qui:
|
||||
div.divbtn <a href=#{strlinkreply} target="_blank">
|
||||
button.btn.btn-lg Rispondi</a>
|
||||
|
||||
p Cordiali Saluti
|
||||
p Supporto #{nomeapp}
|
||||
|
||||
style(type="text/css").
|
||||
html, body {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.divbtn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.btn-lg {
|
||||
padding: 5px;
|
||||
margin: 5px;
|
||||
font-size: 26px;
|
||||
cursor: pointer;
|
||||
color: white;
|
||||
background: #027be3 !important;
|
||||
border-radius: 28px;
|
||||
|
||||
}
|
||||
1
emails/msg/sendmsgchat/it/subject.pug
Normal file
1
emails/msg/sendmsgchat/it/subject.pug
Normal file
@@ -0,0 +1 @@
|
||||
=`${usernameorig} tu ha inviato un nuovo messaggio`
|
||||
@@ -37,6 +37,26 @@ SettingsSchema.statics.executeQueryTable = function (idapp, params) {
|
||||
return tools.executeQueryTable(this, idapp, params);
|
||||
};
|
||||
|
||||
SettingsSchema.statics.getValDbSettings = function (idapp, key) {
|
||||
return Settings.findOne({ idapp, key })
|
||||
.then((myrec) => {
|
||||
if (myrec) {
|
||||
if (myrec.type === this.FieldType.date)
|
||||
return myrec.value_date;
|
||||
if (myrec.type === this.FieldType.number)
|
||||
return myrec.value_num;
|
||||
else
|
||||
return myrec.value_str;
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
|
||||
}).catch((err) => {
|
||||
return null;
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
SettingsSchema.statics.findAllIdApp = function (idapp) {
|
||||
const Settings = this;
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ router.post('/', authenticate, (req, res) => {
|
||||
tools.mylog('crea Booking');
|
||||
const booking = new Booking(myrec);
|
||||
|
||||
const check = tools.checkUserOk(booking.userId, req.user._id);
|
||||
const check = tools.checkUserOk(booking.userId, req.user._id, res);
|
||||
if (check.exit) return check.ret;
|
||||
|
||||
// console.log('fieldtochange', fieldtochange);
|
||||
@@ -81,10 +81,12 @@ router.delete('/:id/:notify/:idapp', authenticate, (req, res) => {
|
||||
return res.status(404).send();
|
||||
}
|
||||
|
||||
if (notify === '1')
|
||||
if (notify === '1') {
|
||||
recbooking.booked = false;
|
||||
sendNotif(res, idapp, req.user, recbooking);
|
||||
}
|
||||
|
||||
tools.mylog('DELETED ', recbooking.descr, recbooking._id);
|
||||
tools.mylog('DELETED ', recbooking._id);
|
||||
|
||||
res.send({ code: server_constants.RIS_CODE_OK, msg: '', id: recbooking._id });
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ router.post('/', authenticate, (req, res) => {
|
||||
tools.mylog('crea MyEvent');
|
||||
const myevent = new MyEvent(myrec);
|
||||
|
||||
const check = tools.checkUserOk(myevent.userId, req.user._id);
|
||||
const check = tools.checkUserOk(myevent.userId, req.user._id, res);
|
||||
if (check.exit) return check.ret;
|
||||
|
||||
// Modify:
|
||||
|
||||
@@ -31,7 +31,7 @@ router.post('/', authenticate, (req, res) => {
|
||||
return res.status(400).send({ code: server_constants.RIS_CODE_LOGIN_ERR_GENERIC });
|
||||
}
|
||||
|
||||
const check = tools.checkUserOk(project.userId, req.user._id);
|
||||
const check = tools.checkUserOk(project.userId, req.user._id, res);
|
||||
if (check.exit) return check.ret;
|
||||
|
||||
tools.mylog('PROJECT POST :', project.descr, project._id);
|
||||
|
||||
@@ -42,7 +42,7 @@ router.post('/', authenticate, (req, res) => {
|
||||
tools.mylog('crea SendMsg');
|
||||
const myrecmsg = new SendMsg(body);
|
||||
|
||||
const check = tools.checkUserOk(myrecmsg.origin.username, req.user.username);
|
||||
const check = tools.checkUserOk(myrecmsg.origin.username, req.user.username, res);
|
||||
if (check.exit) return check.ret;
|
||||
|
||||
// console.log('fieldtochange', fieldtochange);
|
||||
|
||||
@@ -6,6 +6,7 @@ const Email = require('email-templates');
|
||||
|
||||
var i18n = require("i18n");
|
||||
|
||||
const { Settings } = require('./models/settings');
|
||||
|
||||
const previewEmail = require('preview-email');
|
||||
const nodemailer = require("nodemailer");
|
||||
@@ -174,6 +175,9 @@ module.exports = {
|
||||
event: recbooking.infoevent,
|
||||
};
|
||||
|
||||
return Settings.getValDbSettings(idapp, 'MSG_REPLY_AFTER_BOOKING').then((ris => {
|
||||
mylocalsconf.msgreply_after_booking = ris;
|
||||
|
||||
if (recbooking.numpeople > 1)
|
||||
mylocalsconf.participants = recbooking.numpeople.toString() + ' ' + res.__("partecipanti");
|
||||
|
||||
@@ -193,6 +197,8 @@ module.exports = {
|
||||
this.sendEmail_base('admin/'+texthtml+'/' + lang, tools.getManagerEmailByIdApp(idapp), mylocalsconf, '');
|
||||
}
|
||||
|
||||
}));
|
||||
|
||||
},
|
||||
|
||||
sendEmail_CancelBooking: function (res, lang, emailto, user, idapp, recbooking) {
|
||||
@@ -240,7 +246,13 @@ module.exports = {
|
||||
strlinkreply: tools.getHostByIdApp(idapp) + '/messages/' + recmsg._id
|
||||
};
|
||||
|
||||
return this.sendEmail_base('msg/sendmsg/' + lang, emailto, mylocalsconf, tools.getreplyToEmailByIdApp(idapp));
|
||||
let replyto = '';
|
||||
if (mylocalsconf.infoevent !== '')
|
||||
replyto = user.email;
|
||||
else
|
||||
replyto = tools.getreplyToEmailByIdApp(idapp);
|
||||
|
||||
return this.sendEmail_base('msg/sendmsg/' + lang, emailto, mylocalsconf, replyto);
|
||||
|
||||
// Send Email also to the Admin
|
||||
// this.sendEmail_base('admin/sendmsg/' + lang, tools.getAdminEmailByIdApp(idapp), mylocalsconf);
|
||||
|
||||
@@ -33,6 +33,17 @@ module.exports = {
|
||||
TYPE_PROJECT: 1,
|
||||
TYPE_TODO: 2,
|
||||
|
||||
FieldType: {
|
||||
boolean: 1,
|
||||
date: 2,
|
||||
string: 4,
|
||||
binary: 8,
|
||||
html: 16,
|
||||
select: 32,
|
||||
number: 64,
|
||||
typeinrec: 128,
|
||||
},
|
||||
|
||||
MAX_PHASES: 5,
|
||||
FIRST_PROJ: '__PROJECTS',
|
||||
EXECUTE_CALCPROJ: true,
|
||||
@@ -280,11 +291,11 @@ module.exports = {
|
||||
return sortedList;
|
||||
},
|
||||
|
||||
checkUserOk(userpassed, userauth) {
|
||||
checkUserOk(userpassed, userauth, res) {
|
||||
this.mylog('checkUserOk', userpassed, userauth);
|
||||
if (String(userpassed) !== String(userauth)) {
|
||||
// I'm trying to write something not mine!
|
||||
this.mylog('userId = ', userpassed.userId, 'req.user._id', userauth);
|
||||
this.mylog('userId = ', userpassed, 'req.user._id', userauth);
|
||||
return { exit: true, ret: res.status(404).send({ code: server_constants.RIS_CODE_TODO_CREATING_NOTMYUSER }) }
|
||||
} else {
|
||||
return { exit: false, ret: false }
|
||||
@@ -388,7 +399,7 @@ module.exports = {
|
||||
]
|
||||
}
|
||||
if (idapp > 0) {
|
||||
query.push( { $match: { idapp } } );
|
||||
query.push({ $match: { idapp } });
|
||||
}
|
||||
|
||||
// console.log('QUERYMATCH', query[0].$match.or);
|
||||
@@ -457,6 +468,6 @@ module.exports = {
|
||||
SetBit(myval, bit) {
|
||||
myval = myval & bit;
|
||||
return myval
|
||||
}
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
@@ -12,7 +12,7 @@ module.exports = {
|
||||
},
|
||||
|
||||
fieldsUserToChange() {
|
||||
return ['username', 'email', 'cell', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'img', 'ipaddr', 'lasttimeonline', 'profile']
|
||||
return ['_id', 'username', 'email', 'cell', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'img', 'ipaddr', 'lasttimeonline', 'profile']
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user