From 13dceb0929d5b615742df3d99f868fe49c304c4b Mon Sep 17 00:00:00 2001 From: Pedro Vereza Date: Sun, 19 Oct 2014 22:03:50 -0200 Subject: #115 - Checked mails depend on current tag --- web-ui/app/js/mail_list/ui/mail_list.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'web-ui/app/js/mail_list') diff --git a/web-ui/app/js/mail_list/ui/mail_list.js b/web-ui/app/js/mail_list/ui/mail_list.js index 7b518320..e873d279 100644 --- a/web-ui/app/js/mail_list/ui/mail_list.js +++ b/web-ui/app/js/mail_list/ui/mail_list.js @@ -75,7 +75,10 @@ define( if (data.ident) { self.attr.currentMailIdent = data.ident; } + self.attr.currentTag = data.tag || self.attr.currentTag; + + self.updateCheckAllCheckbox(); } function renderMails(mails) { @@ -132,17 +135,25 @@ define( }; this.respondWithCheckedMails = function (ev, caller) { - this.trigger(caller, events.ui.mail.hereChecked, { checkedMails : this.attr.checkedMails }); + this.trigger(caller, events.ui.mail.hereChecked, { checkedMails : this.checkedMailsForCurrentTag()}); }; this.updateCheckAllCheckbox = function () { - if (_.keys(this.attr.checkedMails).length > 0) { + if (this.checkedMailsForCurrentTag().length > 0) { this.trigger(document, events.ui.mails.hasMailsChecked, true); } else { this.trigger(document, events.ui.mails.hasMailsChecked, false); } }; + this.checkedMailsForCurrentTag = function() { + var checkedMailsForCurrentTag = _.filter(self.attr.checkedMails, function(mail) { + return _.contains(mail.tags, self.attr.currentTag); + }); + + return checkedMailsForCurrentTag.length > 0 ? checkedMailsForCurrentTag : {}; + } + this.addToSelectedMails = function (ev, data) { this.attr.checkedMails[data.mail.ident] = data.mail; this.updateCheckAllCheckbox(); -- cgit v1.2.3