(js) Allow to fetch unseen count of all mailboxes

Fixes #522, #2776, #4276
This commit is contained in:
Francis Lachapelle
2019-03-22 11:57:57 -04:00
parent c50f22962a
commit efde4b5a5c
3 changed files with 33 additions and 10 deletions
+1
View File
@@ -3,6 +3,7 @@
Enhancements
- [web] show calendar names of subscriptions in events blocks
- [web] allow to fetch unseen count of all mailboxes (#522, #2776, #4276)
Bug fixes
- [web] fixed wrong translation of custom calendar categories
@@ -568,6 +568,16 @@
</md-checkbox>
</div>
<div>
<md-checkbox
ng-model="app.preferences.defaults.SOGoMailFetchAllUnseenCountFolders"
ng-true-value="1"
ng-false-value="0"
label:aria-label="Fetch count of unseen messages for all mailboxes">
<var:string label:value="Fetch count of unseen messages for all mailboxes"/>
</md-checkbox>
</div>
<div class="ng-hide">
<md-checkbox
ng-model="app.preferences.defaults.SOGoMailSortByThreads"
@@ -267,19 +267,31 @@
}; // delegate
this.refreshUnseenCount = function() {
var unseenCountFolders = $window.unseenCountFolders, refreshViewCheck;
var unseenCountFolders, refreshViewCheck;
if (Preferences.defaults.SOGoMailFetchAllUnseenCountFolders === 1)
unseenCountFolders = [];
else
unseenCountFolders = $window.unseenCountFolders;
_.forEach(vm.accounts, function(account) {
// Always include the INBOX
if (!_.includes(unseenCountFolders, account.id + '/folderINBOX'))
unseenCountFolders.push(account.id + '/folderINBOX');
_.forEach(account.$$flattenMailboxes, function(mailbox) {
if (angular.isDefined(mailbox.unseenCount) &&
!_.includes(unseenCountFolders, mailbox.id))
if (Preferences.defaults.SOGoMailFetchAllUnseenCountFolders === 1) {
// Include all mailboxes
_.forEach(account.$$flattenMailboxes, function(mailbox) {
unseenCountFolders.push(mailbox.id);
});
});
}
else {
// Always include the INBOX
if (!_.includes(unseenCountFolders, account.id + '/folderINBOX'))
unseenCountFolders.push(account.id + '/folderINBOX');
_.forEach(account.$$flattenMailboxes, function(mailbox) {
if (angular.isDefined(mailbox.unseenCount) &&
!_.includes(unseenCountFolders, mailbox.id))
unseenCountFolders.push(mailbox.id);
});
}
});
Account.$$resource.post('', 'unseenCount', {mailboxes: unseenCountFolders}).then(function(data) {