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