diff --git a/app/assets/javascripts/discourse/controllers/create_account_controller.js b/app/assets/javascripts/discourse/controllers/create_account_controller.js index 553d5365c49..e9c393545e3 100644 --- a/app/assets/javascripts/discourse/controllers/create_account_controller.js +++ b/app/assets/javascripts/discourse/controllers/create_account_controller.js @@ -18,6 +18,22 @@ Discourse.CreateAccountController = Discourse.Controller.extend(Discourse.ModalF rejectedPasswords: Em.A([]), prefilledUsername: null, + resetForm: function() { + this.setProperties({ + accountName: '', + accountEmail: '', + accountUsername: '', + accountPassword: '', + authOptions: null, + globalNicknameExists: false, + complete: false, + formSubmitted: false, + rejectedEmails: Em.A([]), + rejectedPasswords: Em.A([]), + prefilledUsername: null + }); + }, + submitDisabled: function() { if (this.get('formSubmitted')) return true; if (this.get('nameValidation.failed')) return true; @@ -37,7 +53,6 @@ Discourse.CreateAccountController = Discourse.Controller.extend(Discourse.ModalF // Validate the name nameValidation: function() { - // If blank, fail without a reason if (this.blank('accountName')) return Discourse.InputValidation.create({ failed: true }); @@ -101,6 +116,10 @@ Discourse.CreateAccountController = Discourse.Controller.extend(Discourse.ModalF }); }.property('accountEmail', 'rejectedEmails.@each'), + emailValidated: function() { + return this.get('authOptions.email') === this.get("accountEmail") && this.get('authOptions.email_valid'); + }.property('accountEmail', 'authOptions.email', 'authOptions.email_valid'), + prefillUsername: function() { if (this.get('prefilledUsername')) { // If username field has been filled automatically, and email field just changed, diff --git a/app/assets/javascripts/discourse/controllers/login_controller.js b/app/assets/javascripts/discourse/controllers/login_controller.js index 4146fd8ced1..79601e16748 100644 --- a/app/assets/javascripts/discourse/controllers/login_controller.js +++ b/app/assets/javascripts/discourse/controllers/login_controller.js @@ -12,6 +12,11 @@ Discourse.LoginController = Discourse.Controller.extend(Discourse.ModalFunctiona authenticate: null, loggingIn: false, + resetForm: function() { + this.set('authenticate', null); + this.set('loggingIn', false); + }, + site: function() { return Discourse.Site.current(); }.property(), @@ -89,6 +94,12 @@ Discourse.LoginController = Discourse.Controller.extend(Discourse.ModalFunctiona window.open(Discourse.getURL("/auth/" + name), "_blank", "menubar=no,status=no,height=" + height + ",width=" + width + ",left=" + left + ",top=" + top); } + }, + + createAccount: function() { + var createAccountController = this.get('controllers.createAccount'); + createAccountController.resetForm(); + this.send('showCreateAccount'); } }, diff --git a/app/assets/javascripts/discourse/routes/application_route.js b/app/assets/javascripts/discourse/routes/application_route.js index 2783dfcef14..68eb310921b 100644 --- a/app/assets/javascripts/discourse/routes/application_route.js +++ b/app/assets/javascripts/discourse/routes/application_route.js @@ -11,6 +11,7 @@ Discourse.ApplicationRoute = Em.Route.extend({ actions: { showLogin: function() { Discourse.Route.showModal(this, 'login'); + this.controllerFor('login').resetForm(); }, showCreateAccount: function() { diff --git a/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars b/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars index 9ac36a4fefa..e3977d27544 100644 --- a/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars +++ b/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars @@ -18,7 +18,7 @@ - {{input value=accountEmail id="new-account-email"}} + {{input value=accountEmail id="new-account-email" disabled=emailValidated}}  {{inputTip validation=emailValidation}} @@ -70,6 +70,8 @@ {{#if formSubmitted}}   + {{else}} +   {{i18n cancel}} {{/if}} {{/unless}} \ No newline at end of file diff --git a/app/assets/javascripts/discourse/templates/modal/login.js.handlebars b/app/assets/javascripts/discourse/templates/modal/login.js.handlebars index ff5950f2b24..1c6f17ec6ff 100644 --- a/app/assets/javascripts/discourse/templates/modal/login.js.handlebars +++ b/app/assets/javascripts/discourse/templates/modal/login.js.handlebars @@ -53,7 +53,7 @@ {{#if showSignupLink}}   {{i18n create_account.invite}} - + {{i18n create_account.action}} {{/if}}