diff --git a/browserid/static/dialog/controllers/authenticate_controller.js b/browserid/static/dialog/controllers/authenticate_controller.js index 1472bf4a3e0a56991ed888ba1f71cf1d854acf97..2ebe697ef56e72c50abcf5fab6aaed1cf8c968b1 100644 --- a/browserid/static/dialog/controllers/authenticate_controller.js +++ b/browserid/static/dialog/controllers/authenticate_controller.js @@ -190,20 +190,29 @@ PageController.extend("Authenticate", {}, { - init: function() { + init: function(el, options) { + options = options || {}; + this._super({ bodyTemplate: "authenticate.ejs", bodyVars: { sitename: identities.getOrigin(), - siteicon: '/i/times.gif' + siteicon: "/i/times.gif", + email: options.email || "" } }); + this.submit = checkEmail; + // If we already have an email address, check if it is valid, if so, show + // password. + if(options.email) { + this.submit(); + } }, "#email keyup": enterEmailState, "#forgotPassword click": forgotPasswordState, - '#cancel_forgot_password click': cancelForgotPassword + "#cancel_forgot_password click": cancelForgotPassword }); }()); diff --git a/browserid/static/dialog/controllers/checkregistration_controller.js b/browserid/static/dialog/controllers/checkregistration_controller.js index 1a6300fe13b951635a91bc60a772e4a0addb4921..e7ec8093816d9e7846c6f4107a52c88b2c8fe0fa 100644 --- a/browserid/static/dialog/controllers/checkregistration_controller.js +++ b/browserid/static/dialog/controllers/checkregistration_controller.js @@ -63,7 +63,7 @@ }); } else if (status === "mustAuth") { - me.close("auth"); + me.close("auth", { email: me.email }); } }, me.getErrorDialog(BrowserID.Errors.registration)); } diff --git a/browserid/static/dialog/controllers/dialog_controller.js b/browserid/static/dialog/controllers/dialog_controller.js index 003e9adf3d33b67aa625ef9f4622666605344580..748ce889717be2fc72006fd0846f9ee4b26dfcc9 100644 --- a/browserid/static/dialog/controllers/dialog_controller.js +++ b/browserid/static/dialog/controllers/dialog_controller.js @@ -109,8 +109,12 @@ PageController.extend("Dialog", {}, { self.doNotMe(); }); - hub.subscribe("auth", function() { - self.doAuthenticate(); + hub.subscribe("auth", function(msg, info) { + info = info || {}; + + self.doAuthenticate({ + email: info.email + }); }); hub.subscribe("start", function() { @@ -144,8 +148,8 @@ PageController.extend("Dialog", {}, { this.element.pickemail(); }, - doAuthenticate: function() { - this.element.authenticate(); + doAuthenticate: function(info) { + this.element.authenticate(info); }, doForgotPassword: function(email) { diff --git a/browserid/static/dialog/controllers/page_controller.js b/browserid/static/dialog/controllers/page_controller.js index aee8e85b1005e935fed0c8e3bad4b572a5092b30..61b9f4d21f0398c125cfb7f93a6a558da8f24a81 100644 --- a/browserid/static/dialog/controllers/page_controller.js +++ b/browserid/static/dialog/controllers/page_controller.js @@ -38,6 +38,7 @@ "use strict"; var bid = BrowserID, + ANIMATION_TIME = 250, identities = bid.Identities; @@ -75,7 +76,7 @@ if (body) { var bodyHtml = $.View("//dialog/views/" + body, body_vars); - $("#dialog").html(bodyHtml).hide().fadeIn(300, function() { + $("#dialog").html(bodyHtml).hide().fadeIn(ANIMATION_TIME, function() { $("#dialog input").eq(0).focus(); }); } @@ -126,7 +127,7 @@ $("body").removeClass("authenticated").addClass("error"); - $("#error_dialog").fadeIn(500); + $("#error_dialog").fadeIn(ANIMATION_TIME); }, /** diff --git a/browserid/static/dialog/views/authenticate.ejs b/browserid/static/dialog/views/authenticate.ejs index 6675f15a5bb3caf696b1e3d09fd6a092b01da7aa..81150fcbab15c53b08bb085340f91acd6e70b671 100644 --- a/browserid/static/dialog/views/authenticate.ejs +++ b/browserid/static/dialog/views/authenticate.ejs @@ -22,7 +22,7 @@ <li> <label for="email" class="serif">Email</label> - <input id="email" class="sans" type="email" autocapitalize="off" autocorrect="off" x-moz-errormessage="an email address is required"> + <input id="email" class="sans" type="email" autocapitalize="off" autocorrect="off" value="<%= email %>" /> <div id="email_format" class="tooltip" for="email"> This field must be an email address.