diff options
Diffstat (limited to 'web-ui/app/js/mixins')
-rw-r--r-- | web-ui/app/js/mixins/with_compose_inline.js | 4 | ||||
-rw-r--r-- | web-ui/app/js/mixins/with_mail_edit_base.js | 19 |
2 files changed, 18 insertions, 5 deletions
diff --git a/web-ui/app/js/mixins/with_compose_inline.js b/web-ui/app/js/mixins/with_compose_inline.js index cd5dcd8b..b39201ae 100644 --- a/web-ui/app/js/mixins/with_compose_inline.js +++ b/web-ui/app/js/mixins/with_compose_inline.js @@ -65,6 +65,10 @@ define( this.attr.mail.ident = data.ident; }; + this.discardDraft = function() { + this.trashReply(); + }; + this.after('initialize', function () { this.on(document, events.mail.sent, this.openMail); this.on(document, events.mail.deleted, this.trashReply); diff --git a/web-ui/app/js/mixins/with_mail_edit_base.js b/web-ui/app/js/mixins/with_mail_edit_base.js index da92ad29..a3c88e66 100644 --- a/web-ui/app/js/mixins/with_mail_edit_base.js +++ b/web-ui/app/js/mixins/with_mail_edit_base.js @@ -118,10 +118,14 @@ define( this.trashMail = function() { this.cancelPostponedSaveDraft(); - this.trigger(document, events.mail.save, { - mail: this.buildMail(), - callback: this.deleteMail.bind(this) - }); + if (this.attr.ident) { + this.trigger(document, events.mail.save, { + mail: this.buildMail(), + callback: this.deleteMail.bind(this) + }); + } else { + this.trigger(document, events.ui.mail.discard); + } }; this.trim_recipient = function(recipients) { @@ -133,7 +137,7 @@ define( this.sendMail = function () { this.cancelPostponedSaveDraft(); var mail = this.buildMail('sent'); - + if (allRecipientsAreEmails(mail)) { mail.header.to = this.trim_recipient(mail.header.to); mail.header.cc = this.trim_recipient(mail.header.cc); @@ -219,6 +223,10 @@ define( }); }; + this.before('initialize', function () { + this.discardDraft = function () {}; + }); + this.after('initialize', function () { this.on(document, events.dispatchers.rightPane.clear, this.teardown); this.on(document, events.ui.recipients.updated, this.recipientsUpdated); @@ -227,6 +235,7 @@ define( this.on(document, events.ui.mail.send, this.sendMail); + this.on(document, events.ui.mail.discard, this.discardDraft); this.on(document, events.ui.tag.selected, this.saveTag); this.on(document, events.ui.tag.select, this.saveTag); }); |