diff --git a/UI/Templates/MailerUI/UIxMailMainFrame.wox b/UI/Templates/MailerUI/UIxMailMainFrame.wox index afa838b4c..1ac3a55b9 100644 --- a/UI/Templates/MailerUI/UIxMailMainFrame.wox +++ b/UI/Templates/MailerUI/UIxMailMainFrame.wox @@ -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"> - {{app.iconForFolder(folder)}} + {{app.metadataForFolder(folder).icon}}

{{folder.name}}

+ ng-show="app.editMode != folder.path">{{app.metadataForFolder(folder).name}}

more_vert - + @@ -306,11 +306,22 @@ - + + + - --> + + + + + + + + + + + diff --git a/UI/WebServerResources/js/Mailer/Mailbox.service.js b/UI/WebServerResources/js/Mailer/Mailbox.service.js index f8fc1bf6b..ff30b9ab9 100644 --- a/UI/WebServerResources/js/Mailer/Mailbox.service.js +++ b/UI/WebServerResources/js/Mailer/Mailbox.service.js @@ -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 diff --git a/UI/WebServerResources/js/Mailer/MailboxesController.js b/UI/WebServerResources/js/Mailer/MailboxesController.js index c1881cf60..6f7e4aebf 100644 --- a/UI/WebServerResources/js/Mailer/MailboxesController.js +++ b/UI/WebServerResources/js/Mailer/MailboxesController.js @@ -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); + }); } }