diff --git a/NEWS b/NEWS index 0510ae3506..8a90538c95 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,7 @@ Bug fixes - [web] fixed mail settings persistence when sorting by arrival date - [web] disable submit button while saving an event or a task (#3880) - [web] fixed computation of week number + - [web] fixed and improved IMAP folder subscriptions manager (#3865) 3.2.1 (2016-11-02) ------------------ diff --git a/UI/Templates/MailerUI/UIxMailFolderSubscriptions.wox b/UI/Templates/MailerUI/UIxMailFolderSubscriptions.wox index 9384fcafa0..cfec2e70ab 100644 --- a/UI/Templates/MailerUI/UIxMailFolderSubscriptions.wox +++ b/UI/Templates/MailerUI/UIxMailFolderSubscriptions.wox @@ -28,9 +28,9 @@ md-mode="indeterminate"> - +
{{subscriptions.metadataForFolder(folder).icon}}
@@ -38,11 +38,11 @@ {{subscriptions.metadataForFolder(folder).name}}

- + ng-false-value="0">
diff --git a/UI/WebServerResources/js/Mailer/Account.service.js b/UI/WebServerResources/js/Mailer/Account.service.js index d242b1cc96..38a8dd6212 100644 --- a/UI/WebServerResources/js/Mailer/Account.service.js +++ b/UI/WebServerResources/js/Mailer/Account.service.js @@ -131,7 +131,7 @@ return Account.$q.when(this.$mailboxes); } else { - return Account.$Mailbox.$find(this).then(function(data) { + return Account.$Mailbox.$find(this, options).then(function(data) { _this.$mailboxes = data; _this.$expanded = false; diff --git a/UI/WebServerResources/js/Mailer/Mailbox.service.js b/UI/WebServerResources/js/Mailer/Mailbox.service.js index 591075acf8..60db13e667 100644 --- a/UI/WebServerResources/js/Mailer/Mailbox.service.js +++ b/UI/WebServerResources/js/Mailer/Mailbox.service.js @@ -81,10 +81,10 @@ * @return a promise of the HTTP operation * @see {@link Account.$getMailboxes} */ - Mailbox.$find = function(account) { + Mailbox.$find = function(account, options) { var path, futureMailboxData; - if (account.fetchAll) + if (options && options.all) futureMailboxData = this.$$resource.fetch(account.id.toString(), 'viewAll'); else futureMailboxData = this.$$resource.fetch(account.id.toString(), 'view'); @@ -909,14 +909,14 @@ }; /** - * @function $toggleSubscribe + * @function $updateSubscribe * @memberof Mailbox.prototype - * @desc Subscribe or unsubscribe to a mailbox + * @desc Update mailbox subscription state with server. */ - Mailbox.prototype.$toggleSubscribe = function() { - if (this.subscribed) - return Mailbox.$$resource.post(this.id, 'subscribe'); + Mailbox.prototype.$updateSubscribe = function() { + var action = this.subscribed? 'subscribe' : 'unsubscribe'; + + Mailbox.$$resource.post(this.id, action); + }; - return Mailbox.$$resource.post(this.id, 'unsubscribe'); - }; })(); diff --git a/UI/WebServerResources/js/Mailer/MailboxesController.js b/UI/WebServerResources/js/Mailer/MailboxesController.js index 8ad7c5b985..bdc1414cc0 100644 --- a/UI/WebServerResources/js/Mailer/MailboxesController.js +++ b/UI/WebServerResources/js/Mailer/MailboxesController.js @@ -210,12 +210,10 @@ }); vm.close = close; - - vm.account.$getMailboxes().then(function() { + vm.account.$getMailboxes({ reload: true, all: true }).then(function() { vm.loading = false; }); - function close() { $mdDialog.cancel(); }