From f3955000e7ba714cf1ca5d94b37227234bf9fedb Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Thu, 22 Nov 2012 15:29:42 +0100 Subject: [PATCH] [FIX] auth_openid: properly inherit Login.start and return a `deferred` bzr revid: odo@openerp.com-20121122142942-jz8chz5xtf2lj7t4 --- .../auth_openid/static/src/js/auth_openid.js | 66 ++++++++++--------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/addons/auth_openid/static/src/js/auth_openid.js b/addons/auth_openid/static/src/js/auth_openid.js index a8901ee80f1..f8615481a40 100644 --- a/addons/auth_openid/static/src/js/auth_openid.js +++ b/addons/auth_openid/static/src/js/auth_openid.js @@ -5,42 +5,44 @@ var QWeb = instance.web.qweb; instance.web.Login = instance.web.Login.extend({ start: function() { - this._super.apply(this, arguments); var self = this; - - this._default_error_message = this.$el.find('.oe_login_error_message').text(); - - this.$openid_selected_button = $(); - this.$openid_selected_input = $(); - this.$openid_selected_provider = null; - - - var openIdProvider = null; - if (this.has_local_storage && this.remember_credentials) { - openIdProvider = localStorage.getItem('openid-provider'); - } - - if (openIdProvider) { - $openid_selected_provider = openIdProvider; - this.do_openid_select('a[href="#' + openIdProvider + '"]', openIdProvider, true); - - if (this.has_local_storage && this.remember_credentials) { - this.$openid_selected_input.find('input').val(localStorage.getItem('openid-login')); + var d = self._super.apply(this, arguments).done(function() { + + self._default_error_message = self.$el.find('.oe_login_error_message').text(); + + self.$openid_selected_button = $(); + self.$openid_selected_input = $(); + self.$openid_selected_provider = null; + + + var openIdProvider = null; + if (self.has_local_storage && self.remember_credentials) { + openIdProvider = localStorage.getItem('openid-provider'); } - } - else { - this.do_openid_select('a[data-url=""]', 'login,password', true); - } - - this.$el.find('a[data-url]').click(function (event) { - event.preventDefault(); - var selected_oidh = $(this).attr('href').substr(1); - if (selected_oidh != self.$openid_selected_provider) { - self.do_openid_select(this, selected_oidh); + + if (openIdProvider) { + $openid_selected_provider = openIdProvider; + self.do_openid_select('a[href="#' + openIdProvider + '"]', openIdProvider, true); + + if (self.has_local_storage && self.remember_credentials) { + self.$openid_selected_input.find('input').val(localStorage.getItem('openid-login')); + } } + else { + self.do_openid_select('a[data-url=""]', 'login,password', true); + } + + self.$el.find('a[data-url]').click(function (event) { + event.preventDefault(); + var selected_oidh = $(this).attr('href').substr(1); + if (selected_oidh != self.$openid_selected_provider) { + self.do_openid_select(this, selected_oidh); + } + }); + + self._check_error(); }); - - this._check_error(); + return d; },