diff options
Diffstat (limited to 'web-ui')
| -rw-r--r-- | web-ui/app/js/mail_list/ui/mail_list.js | 16 | ||||
| -rw-r--r-- | web-ui/app/js/services/mail_service.js | 21 | 
2 files changed, 18 insertions, 19 deletions
| 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 3f7a4da3..69327a57 100644 --- a/web-ui/app/js/mail_list/ui/mail_list.js +++ b/web-ui/app/js/mail_list/ui/mail_list.js @@ -43,7 +43,7 @@ define(        });        this.appendMail = function (mail) { -        var isChecked = this.attr.checkedMails[this.attr.currentTag] && mail.ident in this.attr.checkedMails[this.attr.currentTag]; +        var isChecked = mail.ident in this.attr.checkedMails;          MailItemFactory.createAndAttach(this.$node, mail, this.attr.currentMailIdent, this.attr.currentTag, isChecked);        }; @@ -117,29 +117,25 @@ define(        };        this.respondWithCheckedMails = function (ev, caller) { -        this.trigger(caller, events.ui.mail.hereChecked, {checkedMails: this.attr.checkedMails[this.attr.currentTag]}); +        this.trigger(caller, events.ui.mail.hereChecked, {checkedMails: this.attr.checkedMails});        };        this.updateCheckAllCheckbox = function () { -        debugger; -        this.trigger(document, events.ui.mails.hasMailsChecked, _.keys(this.attr.checkedMails[this.attr.currentTag]).length > 0); +        this.trigger(document, events.ui.mails.hasMailsChecked, _.keys(this.attr.checkedMails).length > 0);        };        this.addToCheckedMails = function (ev, data) { -        if (!this.attr.checkedMails[this.attr.currentTag]) { -          this.attr.checkedMails[this.attr.currentTag] = {}; -        } -        this.attr.checkedMails[this.attr.currentTag][data.mail.ident] = data.mail; +        this.attr.checkedMails[data.mail.ident] = data.mail;          this.updateCheckAllCheckbox();        };        this.removeFromCheckedMails = function (ev, data) {          if (data.mails) {            _.each(data.mails, function (mail) { -            delete this.attr.checkedMails[this.attr.currentTag][mail.ident]; +            delete this.attr.checkedMails[mail.ident];            }, this);          } else { -          delete this.attr.checkedMails[this.attr.currentTag][data.mail.ident]; +          delete this.attr.checkedMails[data.mail.ident];          }          this.updateCheckAllCheckbox();        }; diff --git a/web-ui/app/js/services/mail_service.js b/web-ui/app/js/services/mail_service.js index b8e72a7f..1fa41619 100644 --- a/web-ui/app/js/services/mail_service.js +++ b/web-ui/app/js/services/mail_service.js @@ -75,7 +75,7 @@ define(        }; -      function extractMailIds(data) { +      this.readMail = function (ev, data) {          var mailIdents;          if (data.checkedMails) {            mailIdents = _.map(data.checkedMails, function (mail) { @@ -84,25 +84,28 @@ define(          } else {            mailIdents = [data.ident];          } -        return mailIdents; -      } - -      this.readMail = function (ev, data) { -          monitoredAjax(this, '/mails/read', {            type: 'POST', -          data: JSON.stringify({idents: extractMailIds(data)}) +          data: JSON.stringify({idents: mailIdents})          }).done(this.triggerMailsRead(data.checkedMails));        };        this.unreadMail = function (ev, data) { +        var mailIdents; +        if (data.checkedMails) { +          mailIdents = _.map(data.checkedMails, function (mail) { +            return mail.ident; +          }); +        } else { +          mailIdents = [data.ident]; +        }          monitoredAjax(this, '/mails/unread', {            type: 'POST', -          data: JSON.stringify({idents: extractMailIds(data)}) +          data: JSON.stringify({idents: mailIdents})          }).done(this.triggerMailsRead(data.checkedMails));        }; -      this.triggerMailsRead = function () { +      this.triggerMailsRead = function (mails) {          return _.bind(function () {            this.refreshMails();            this.trigger(document, events.ui.mails.uncheckAll); | 
