diff --git a/UI/Templates/MailerUI/UIxMailMainFrame.wox b/UI/Templates/MailerUI/UIxMailMainFrame.wox index 00cc5d4ae..f24d7e09c 100644 --- a/UI/Templates/MailerUI/UIxMailMainFrame.wox +++ b/UI/Templates/MailerUI/UIxMailMainFrame.wox @@ -213,19 +213,14 @@ -
- -
-->
@@ -281,26 +276,31 @@ ng-click="$mdOpenMenu()" md-menu-origin="md-menu-origin">more_vert - + - + + + + + + @@ -428,6 +428,9 @@ star + + markunread + content_copy diff --git a/UI/WebServerResources/js/Mailer/Mailbox.service.js b/UI/WebServerResources/js/Mailer/Mailbox.service.js index 49f5247e7..e2a0c162e 100644 --- a/UI/WebServerResources/js/Mailer/Mailbox.service.js +++ b/UI/WebServerResources/js/Mailer/Mailbox.service.js @@ -338,6 +338,36 @@ return deferred.promise; }; + /** + * @function $compact + * @memberof Mailbox.prototype + * @desc Compact the mailbox + * @returns a promise of the HTTP operation + */ + Mailbox.prototype.$compact = function() { + return Mailbox.$$resource.post(this.id, 'expunge'); + }; + + /** + * @function $emptyTrash + * @memberof Mailbox.prototype + * @desc Empty the Trash folder. + * @returns a promise of the HTTP operation + */ + Mailbox.prototype.$emptyTrash = function() { + return Mailbox.$$resource.post(this.id, 'emptyTrash'); + }; + + /** + * @function $markAsRead + * @memberof Mailbox.prototype + * @desc Mark all messages from folder as read + * @returns a promise of the HTTP operation + */ + Mailbox.prototype.$markAsRead = function() { + return Mailbox.$$resource.post(this.id, 'markRead'); + }; + /** * @function $delete * @memberof Mailbox.prototype diff --git a/UI/WebServerResources/js/Mailer/MailboxesController.js b/UI/WebServerResources/js/Mailer/MailboxesController.js index 069ea424c..b25a45dd1 100644 --- a/UI/WebServerResources/js/Mailer/MailboxesController.js +++ b/UI/WebServerResources/js/Mailer/MailboxesController.js @@ -20,8 +20,11 @@ vm.revertEditing = revertEditing; vm.selectFolder = selectFolder; vm.saveFolder = saveFolder; + vm.compactFolder = compactFolder; + vm.emptyTrashFolder = emptyTrashFolder; vm.exportMails = exportMails; vm.confirmDelete = confirmDelete; + vm.markFolderRead = markFolderRead; vm.share = share; vm.iconForFolder = iconForFolder; @@ -136,6 +139,22 @@ folder.$rename(); } + function compactFolder(folder) { + folder.$compact().then(function() { + // Success + }, function(error) { + Dialog.alert(l('Warning'), error); + }); + } + + function emptyTrashFolder(folder) { + folder.$emptyTrash().then(function() { + // Success + }, function(error) { + Dialog.alert(l('Warning'), error); + }); + } + function exportMails(folder) { window.location.href = ApplicationBaseURL + '/' + folder.id + '/exportFolder'; } @@ -153,6 +172,10 @@ }); } + function markFolderRead(folder) { + folder.$markAsRead(); + } + function share(folder) { //if (addressbook.id != vm.service.selectedFolder.id) { // Counter the possibility to click on the "hidden" secondary button