diff --git a/UI/WebServerResources/js/Mailer/Account.service.js b/UI/WebServerResources/js/Mailer/Account.service.js index f930fabcc..9548399a4 100644 --- a/UI/WebServerResources/js/Mailer/Account.service.js +++ b/UI/WebServerResources/js/Mailer/Account.service.js @@ -269,12 +269,14 @@ return Account.$$resource.fetch(this.id.toString(), 'compose').then(function(data) { Account.$log.debug('New message (compose): ' + JSON.stringify(data, undefined, 2)); var message = new Account.$Message(data.accountId, _this.$getMailboxByPath(data.mailboxPath), data); + message.isNew = true; return message; }).then(function(message) { // Fetch draft initial data return Account.$$resource.fetch(message.$absolutePath({asDraft: true}), 'edit').then(function(data) { Account.$log.debug('New message (edit): ' + JSON.stringify(data, undefined, 2)); angular.extend(message.editable, data); + message.isNew = true; return message; }); }); diff --git a/UI/WebServerResources/js/Mailer/Message.service.js b/UI/WebServerResources/js/Mailer/Message.service.js index 96c262996..d91bbe5c1 100644 --- a/UI/WebServerResources/js/Mailer/Message.service.js +++ b/UI/WebServerResources/js/Mailer/Message.service.js @@ -566,6 +566,7 @@ Message.$log.debug('save = ' + JSON.stringify(response, undefined, 2)); _this.$setUID(response.uid); _this.$reload({asDraft: false}); // fetch a new viewable version of the message + _this.isNew = false; }); }; diff --git a/UI/WebServerResources/js/Mailer/MessageEditorController.js b/UI/WebServerResources/js/Mailer/MessageEditorController.js index 0342fbc0b..6a71eb65a 100644 --- a/UI/WebServerResources/js/Mailer/MessageEditorController.js +++ b/UI/WebServerResources/js/Mailer/MessageEditorController.js @@ -133,10 +133,12 @@ } function cancel() { - // TODO: delete draft? if (vm.autosave) $timeout.cancel(vm.autosave); + if (vm.message.isNew && vm.message.attachmentAttrs) + vm.message.$mailbox.$deleteMessages([vm.message]); + $mdDialog.cancel(); }