From bee36814e514354a749b104e13e87b3cf3919a69 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Tue, 21 Jul 2015 09:28:54 -0400 Subject: [PATCH] (feat) added many missing actions on mail folders --- UI/Templates/MailerUI/UIxMailMainFrame.wox | 29 ++++++++++-------- .../js/Mailer/Mailbox.service.js | 30 +++++++++++++++++++ .../js/Mailer/MailboxesController.js | 23 ++++++++++++++ 3 files changed, 69 insertions(+), 13 deletions(-) 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