diff options
Diffstat (limited to 'web-ui/app')
-rw-r--r-- | web-ui/app/js/mail_view/ui/draft_button.js | 41 | ||||
-rw-r--r-- | web-ui/app/js/mixins/with_mail_edit_base.js | 4 |
2 files changed, 44 insertions, 1 deletions
diff --git a/web-ui/app/js/mail_view/ui/draft_button.js b/web-ui/app/js/mail_view/ui/draft_button.js new file mode 100644 index 00000000..1a89c414 --- /dev/null +++ b/web-ui/app/js/mail_view/ui/draft_button.js @@ -0,0 +1,41 @@ +/* +* Copyright (c) 2014 ThoughtWorks, Inc. +* +* Pixelated is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* Pixelated is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with Pixelated. If not, see <http://www.gnu.org/licenses/>. +*/ +'use strict'; + +define([ + 'flight/lib/component', + 'page/events', +], +function (defineComponent, events) { + return defineComponent(draftButton); + + function draftButton() { + this.enableButton = function () { + this.$node.prop('disabled', false); + }; + + this.disableButton = function () { + this.$node.prop('disabled', true); + }; + + this.after('initialize', function(){ + this.disableButton(); + this.on(document, events.mail.saveDraft, this.disableButton); + this.on(document, events.mail.draftSaved, this.enableButton); + }); + } +}); 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 2434df92..b4a2b0c8 100644 --- a/web-ui/app/js/mixins/with_mail_edit_base.js +++ b/web-ui/app/js/mixins/with_mail_edit_base.js @@ -23,9 +23,10 @@ define( 'page/events', 'views/i18n', 'mail_view/ui/send_button', + 'mail_view/ui/draft_button', 'flight/lib/utils' ], - function(viewHelper, Recipients, DraftSaveStatus, events, i18n, SendButton, utils) { + function(viewHelper, Recipients, DraftSaveStatus, events, i18n, SendButton, DraftButton, utils) { 'use strict'; function withMailEditBase() { @@ -94,6 +95,7 @@ define( this.on(this.select('draftButton'), 'click', this.buildAndSaveDraft); this.on(this.select('trashButton'), 'click', this.trashMail); SendButton.attachTo(this.select('sendButton')); + DraftButton.attachTo(this.select('draftButton')); this.warnSendButtonOfRecipients(); }; |