Files
AVEF/imports/ui/Admin/Messages.js

94 lines
2.4 KiB
JavaScript
Raw Normal View History

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.
}
});