mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-08-08 16:33:22 +00:00
(feat) ability to set folders as drafts/trash/sent
This commit is contained in:
@@ -256,9 +256,9 @@
|
||||
ng-dblclick="app.editFolder(folder)"
|
||||
ui-sref="mail.account.mailbox({accountId: account.id, mailboxId: (folder.path | encodeUri)})"
|
||||
ui-sref-active="sg-active">
|
||||
<md-icon ng-class="'sg-child-level-' + folder.level">{{app.iconForFolder(folder)}}</md-icon>
|
||||
<md-icon ng-class="'sg-child-level-' + folder.level">{{app.metadataForFolder(folder).icon}}</md-icon>
|
||||
<p class="sg-item-name"
|
||||
ng-show="app.editMode != folder.path">{{folder.name}}</p>
|
||||
ng-show="app.editMode != folder.path">{{app.metadataForFolder(folder).name}}</p>
|
||||
<md-input-container class="md-flex md-tile-content"
|
||||
ng-show="app.editMode == folder.path">
|
||||
<input class="folder-name" type="text"
|
||||
@@ -275,7 +275,7 @@
|
||||
<md-icon label:aria-label="Options"
|
||||
ng-click="$mdOpenMenu()"
|
||||
md-menu-origin="md-menu-origin">more_vert</md-icon>
|
||||
<md-menu-content width="2">
|
||||
<md-menu-content width="3">
|
||||
<md-menu-item>
|
||||
<md-button type="button" ng-click="app.markFolderRead(folder)">
|
||||
<var:string label:value="Mark Folder Read"/>
|
||||
@@ -306,11 +306,22 @@
|
||||
<var:string label:value="Export"/>
|
||||
</md-button>
|
||||
</md-menu-item>
|
||||
<!-- <md-menu-item>
|
||||
<md-button type="button" ng-click="TODO">
|
||||
<var:string label:value="Use This Folder For"/>
|
||||
<md-menu-divider ng-show="folder.type == 'folder'"><!-- divider --></md-menu-divider>
|
||||
<md-menu-item ng-show="folder.type == 'folder'">
|
||||
<md-button type="button" ng-click="app.setFolderAs(folder, 'Drafts')">
|
||||
<var:string label:value="Set as Drafts"/>
|
||||
</md-button>
|
||||
</md-menu-item> -->
|
||||
</md-menu-item>
|
||||
<md-menu-item ng-show="folder.type == 'folder'">
|
||||
<md-button type="button" ng-click="app.setFolderAs(folder, 'Sent')">
|
||||
<var:string label:value="Set as Sent"/>
|
||||
</md-button>
|
||||
</md-menu-item>
|
||||
<md-menu-item ng-show="folder.type == 'folder'">
|
||||
<md-button type="button" ng-click="app.setFolderAs(folder, 'Trash')">
|
||||
<var:string label:value="Set as Trash"/>
|
||||
</md-button>
|
||||
</md-menu-item>
|
||||
<md-menu-divider ng-show="folder.type != 'additional'"><!-- divider --></md-menu-divider>
|
||||
<md-menu-item ng-show="folder.type != 'additional'">
|
||||
<md-button type="button" ng-click="app.share(folder)">
|
||||
|
||||
@@ -377,6 +377,16 @@
|
||||
return Mailbox.$$resource.post(this.id, 'expunge');
|
||||
};
|
||||
|
||||
/**
|
||||
* @function $setFolderAs
|
||||
* @memberof Mailbox.prototype
|
||||
* @desc Set a folder as Drafts/Sent/Trash
|
||||
* @returns a promise of the HTTP operation
|
||||
*/
|
||||
Mailbox.prototype.$setFolderAs = function(type) {
|
||||
return Mailbox.$$resource.post(this.id, 'setAs' + type + 'Folder');
|
||||
};
|
||||
|
||||
/**
|
||||
* @function $emptyTrash
|
||||
* @memberof Mailbox.prototype
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
vm.confirmDelete = confirmDelete;
|
||||
vm.markFolderRead = markFolderRead;
|
||||
vm.share = share;
|
||||
vm.iconForFolder = iconForFolder;
|
||||
vm.metadataForFolder = metadataForFolder;
|
||||
vm.setFolderAs = setFolderAs;
|
||||
|
||||
if ($state.current.name == 'mail' && vm.accounts.length > 0 && vm.accounts[0].$mailboxes.length > 0) {
|
||||
// Redirect to first mailbox of first account if no mailbox is selected
|
||||
@@ -276,22 +277,30 @@
|
||||
}
|
||||
} // share
|
||||
|
||||
function iconForFolder(folder) {
|
||||
function metadataForFolder(folder) {
|
||||
if (folder.type == 'inbox')
|
||||
return 'inbox';
|
||||
return {name: folder.name, icon:'inbox'};
|
||||
else if (folder.type == 'draft')
|
||||
return 'drafts';
|
||||
return {name: l('DraftsFolderName'), icon: 'drafts'};
|
||||
else if (folder.type == 'sent')
|
||||
return 'send';
|
||||
return {name: l('SentFolderName'), icon: 'send'};
|
||||
else if (folder.type == 'trash')
|
||||
return 'delete';
|
||||
return {name: l('TrashFolderName'), icon: 'delete'};
|
||||
else if (folder.type == 'additional')
|
||||
return 'folder_shared';
|
||||
return {name: folder.name, icon: 'folder_shared'};
|
||||
|
||||
//if ($rootScope.currentFolder == folder)
|
||||
// return 'folder_open';
|
||||
|
||||
return 'folder';
|
||||
return {name: folder.name, icon: 'folder'};
|
||||
}
|
||||
|
||||
function setFolderAs(folder, type) {
|
||||
folder.$setFolderAs(type).then(function() {
|
||||
folder.$account.$getMailboxes({reload: true});
|
||||
}, function(error) {
|
||||
Dialog.alert(l('Warning'), error);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user