import DiscourseController from 'discourse/controllers/controller'; export default DiscourseController.extend({ /** Is the "send test email" button disabled? @property sendTestEmailDisabled **/ sendTestEmailDisabled: Em.computed.empty('testEmailAddress'), /** Clears the 'sentTestEmail' property on successful send. @method testEmailAddressChanged **/ testEmailAddressChanged: function() { this.set('sentTestEmail', false); }.observes('testEmailAddress'), actions: { /** Sends a test email to the currently entered email address @method sendTestEmail **/ sendTestEmail: function() { this.setProperties({ sendingEmail: true, sentTestEmail: false }); var self = this; Discourse.ajax("/admin/email/test", { type: 'POST', data: { email_address: this.get('testEmailAddress') } }).then(function () { self.set('sentTestEmail', true); }, function(e) { if (e.responseJSON && e.responseJSON.errors) { bootbox.alert(I18n.t('admin.email.error', { server_error: e.responseJSON.errors[0] })); } else { bootbox.alert(I18n.t('admin.email.test_error')); } }).finally(function() { self.set('sendingEmail', false); }); } } });