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