From f6d676f39b8b1c6f79069964714f81adaa00ff5d Mon Sep 17 00:00:00 2001 From: Lisa Junger Date: Fri, 20 Mar 2015 16:30:48 +0100 Subject: fix: send button no longer stuck on sending for invalid email addresses. -Issue #189 --- web-ui/app/js/mail_view/ui/send_button.js | 2 +- web-ui/app/js/mixins/with_mail_edit_base.js | 1 + web-ui/test/spec/mail_view/ui/send_button.spec.js | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/web-ui/app/js/mail_view/ui/send_button.js b/web-ui/app/js/mail_view/ui/send_button.js index 8f168ecc..6f5add2a 100644 --- a/web-ui/app/js/mail_view/ui/send_button.js +++ b/web-ui/app/js/mail_view/ui/send_button.js @@ -77,10 +77,10 @@ define([ this.off(document, events.ui.mail.recipientsUpdated); }.bind(this))); - this.trigger(document, events.ui.recipients.doCompleteInput); this.disableButton(); this.$node.text(viewHelper.i18n('sending-mail')); + this.trigger(document, events.ui.recipients.doCompleteInput); }; this.forceEnableButton = function () { 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 3332da91..9942e747 100644 --- a/web-ui/app/js/mixins/with_mail_edit_base.js +++ b/web-ui/app/js/mixins/with_mail_edit_base.js @@ -136,6 +136,7 @@ define( events.ui.userAlerts.displayMessage, {message: i18n.get('One or more of the recipients are not valid emails')} ); + this.trigger(events.mail.send_failed); } }; diff --git a/web-ui/test/spec/mail_view/ui/send_button.spec.js b/web-ui/test/spec/mail_view/ui/send_button.spec.js index 4109e923..dca8f02c 100644 --- a/web-ui/test/spec/mail_view/ui/send_button.spec.js +++ b/web-ui/test/spec/mail_view/ui/send_button.spec.js @@ -63,6 +63,14 @@ describeComponent('mail_view/ui/send_button', function () { expect(this.$node).toBeDisabled(); }); + + it('gets disabled if recipients:updated with invalid email', function () { + $(document).trigger(Pixelated.events.ui.recipients.inputHasMail, { name: 'to' }); + $(document).trigger(Pixelated.events.ui.recipients.updated, { newRecipients: ['InvalidEmail']}); + + expect(this.$node).not.toBeDisabled(); + expect(this.$node.text()).toBe('Send'); + }); }); describe('on click', function () { -- cgit v1.2.3