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, "
"); } }); Template.Message.events({ "click .toggleHandled": function(event, template) { //TODO: Mark the message as handled. } });