94 lines
2.4 KiB
JavaScript
94 lines
2.4 KiB
JavaScript
import './Messages.html';
|
|
|
|
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.
|
|
}
|
|
}); |