(feat) added many missing actions on mail folders

This commit is contained in:
Ludovic Marcotte
2015-07-21 09:28:54 -04:00
parent a75524af9f
commit bee36814e5
3 changed files with 69 additions and 13 deletions
+16 -13
View File
@@ -213,19 +213,14 @@
</ul>
</div>
<div class="f-dropdown" id="imageMenu">
<ul>
<li id="save_image"><var:string label:value="Save Image"/></li>
</ul>
</div>
-->
<!--
MAIN CONTENT ROW
Content of the application view injected injected in the element bellow
Content of the application view injected injected in the element below
MUST be the first html element after body
SHOULD be a main tag (with role="main")
Templates script tag wrappers goes next
Templates script tag wrappers go next
-->
<main class="view md-layout-fill" ui-view="mailboxes" layout="row" ng-controller="navController"><!-- mailboxes list --></main>
@@ -281,26 +276,31 @@
ng-click="$mdOpenMenu()"
md-menu-origin="md-menu-origin">more_vert</md-icon>
<md-menu-content width="2">
<!-- <md-menu-item>
<md-button type="button" ng-click="TODO">
<md-menu-item>
<md-button type="button" ng-click="app.markFolderRead(folder)">
<var:string label:value="Mark Folder Read"/>
</md-button>
</md-menu-item> -->
</md-menu-item>
<md-menu-item>
<md-button type="button" ng-click="app.newFolder(folder)">
<var:string label:value="New Subfolder..."/>
</md-button>
</md-menu-item>
<!-- <md-menu-item>
<md-button type="button" ng-click="TODO">
<md-menu-item>
<md-button type="button" ng-click="app.compactFolder(folder)">
<var:string label:value="Compact"/>
</md-button>
</md-menu-item> -->
</md-menu-item>
<md-menu-item>
<md-button type="button" ng-click="app.confirmDelete(folder)">
<var:string label:value="Delete"/>
</md-button>
</md-menu-item>
<md-menu-item ng-show="folder.type == 'trash'">
<md-button type="button" ng-click="app.emptyTrashFolder(folder)">
<var:string label:value="Empty Trash"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button type="button" ng-click="app.exportMails(folder)">
<var:string label:value="Export"/>
@@ -428,6 +428,9 @@
<md-button class="sg-icon-button">
<md-icon>star</md-icon>
</md-button>
<md-button class="sg-icon-button">
<md-icon>markunread</md-icon>
</md-button>
<md-menu>
<md-button class="sg-icon-button" label:aria-label="Copy messages" ng-click="$mdOpenMenu()">
<md-icon>content_copy</md-icon>
@@ -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
@@ -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