Added settings and messages to manage sending web inquiries to one or more email addresses specified via the web management interface.
This commit is contained in:
95
imports/ui/Admin/Messages.js
Normal file
95
imports/ui/Admin/Messages.js
Normal file
@@ -0,0 +1,95 @@
|
||||
import './Messages.html';
|
||||
import swal from "sweetalert2";
|
||||
|
||||
const PREFIX = "Messages_";
|
||||
|
||||
Tracker.autorun(function() {
|
||||
Meteor.subscribe("contactUsMessages");
|
||||
Meteor.subscribe("Settings");
|
||||
});
|
||||
|
||||
Template.Messages.onCreated(function() {
|
||||
Session.set(PREFIX + 'selected', null);
|
||||
});
|
||||
Template.Messages.onRendered(function() {
|
||||
$(".tableContainer").mCustomScrollbar({
|
||||
scrollButtons: {enable:true},
|
||||
theme: "light-thick",
|
||||
scrollbarPosition: "outside",
|
||||
scrollEasing: "linear"
|
||||
});
|
||||
this.$(".emailEditor").select2({tags: true, tokenSeparators: [';']});
|
||||
});
|
||||
Template.Messages.helpers({
|
||||
messages: function() {
|
||||
return Meteor.collections.ContactUsMessages.find({}, {sort: {createdAt: 1}});
|
||||
},
|
||||
selected: function() {
|
||||
return Session.get(PREFIX + "selected");
|
||||
},
|
||||
emails: function() {
|
||||
let emails = [];
|
||||
let settings = Meteor.collections.Settings.findOne({});
|
||||
|
||||
//Settings might be undefined if we are still loading.
|
||||
if(settings) {
|
||||
emails = settings.forwardEmailsTo;
|
||||
|
||||
//if(emails) {
|
||||
// emails = emails.split(";");
|
||||
//}
|
||||
}
|
||||
|
||||
return emails;
|
||||
}
|
||||
});
|
||||
Template.Messages.events({
|
||||
'change .emailEditor': function(e, t) {
|
||||
let emails = t.$(".emailEditor").select2('data');
|
||||
|
||||
emails = emails.map((n)=>n.id);
|
||||
console.log(emails);
|
||||
Meteor.call("changeForwardEmailsTo", emails, function(err, result) {
|
||||
if(err) console.log(err);
|
||||
});
|
||||
},
|
||||
'click table.dataTable tr.messageDetails': function(event, template) {
|
||||
let $tr = template.$(event.currentTarget);
|
||||
|
||||
if(Session.get(PREFIX + "selected") && $tr.data('id') === Session.get(PREFIX + "selected")._id) {
|
||||
$tr.removeClass('selected');
|
||||
$tr.next().removeClass('display');
|
||||
Session.set(PREFIX + "selected", undefined);
|
||||
}
|
||||
else {
|
||||
$tr.siblings(".messageDetails").removeClass('selected');
|
||||
$tr.siblings(".fullMessage").removeClass('display');
|
||||
$tr.addClass('selected');
|
||||
$tr.next().addClass('display');
|
||||
Session.set(PREFIX + "selected", Meteor.collections.ContactUsMessages.findOne($tr.data('id')));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Template.Message.onCreated(function() {
|
||||
});
|
||||
Template.Message.helpers({
|
||||
date: function() {
|
||||
return moment(this.createdAt).format("MM/DD/YYYY");
|
||||
},
|
||||
selected: function() {
|
||||
return Session.get(PREFIX + "selected");
|
||||
},
|
||||
handledClass: function() {
|
||||
return "";
|
||||
},
|
||||
fullMessage: function() {
|
||||
return this.message.replace(/[\n\r]/g, "<br/>");
|
||||
}
|
||||
});
|
||||
Template.Message.events({
|
||||
"click .toggleHandled": function(event, template) {
|
||||
//TODO: Mark the message as handled.
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user