From fd5ad1bb4f443a9d1bed228c221c8834f330ea53 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 4 Jan 2012 13:44:56 +0100 Subject: [PATCH] [imp] modified Login to be instanciated only when necessary and destroyed when not used any more bzr revid: nicolas.vanhoren@openerp.com-20120104124456-dg0ll2dyomj8fsav --- addons/web/static/src/css/base.css | 10 -------- addons/web/static/src/js/chrome.js | 38 ++++++------------------------ 2 files changed, 7 insertions(+), 41 deletions(-) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 0606027fd16..40d02e51254 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -96,16 +96,6 @@ body { /* Login page */ -.openerp .login { - display: none; -} -.openerp.login-mode .login { - display: block; -} -.openerp.login-mode .main_table { - display: none; -} - .login { padding: 0; margin: 0; diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 9c3f7e061fd..06bfcbfcf14 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -585,21 +585,11 @@ openerp.web.Login = openerp.web.Widget.extend(/** @lends openerp.web.Login# */{ }); }, - stop: function () { - this.database.stop(); - this._super(); - }, set_db_list: function (list) { this.$element.find("[name=db]").replaceWith( openerp.web.qweb.render('Login_dblist', { db_list: list, selected_db: this.selected_db})) }, - on_login_invalid: function() { - this.$element.closest(".openerp").addClass("login-mode"); - }, - on_login_valid: function() { - this.$element.closest(".openerp").removeClass("login-mode"); - }, on_submit: function(ev) { if(ev) { ev.preventDefault(); @@ -623,7 +613,6 @@ openerp.web.Login = openerp.web.Widget.extend(/** @lends openerp.web.Login# */{ this.session.on_session_invalid.add({ callback: function () { self.$element.addClass("login_invalid"); - self.on_login_invalid(); }, unique: true }); @@ -642,19 +631,8 @@ openerp.web.Login = openerp.web.Widget.extend(/** @lends openerp.web.Login# */{ localStorage.setItem('last_password_login_success', ''); } } - self.on_login_valid(); }); }, - do_ask_login: function(continuation) { - this.on_login_invalid(); - this.$element - .removeClass("login_invalid"); - this.on_login_valid.add({ - position: "last", - unique: true, - callback: continuation || function() {} - }); - } }); openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# */{ @@ -1079,21 +1057,21 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie } self.crashmanager = new openerp.web.CrashManager(); - self.notification = new openerp.web.Notification(self); self.notification.appendTo(self.$element); self.loading = new openerp.web.Loading(self); self.loading.appendTo(self.$element); - self.login = new openerp.web.Login(self); - self.login.appendTo(self.$element); - if(self.session.session_is_valid()) { - self.login.on_login_valid(); - } else { - self.login.on_login_invalid(); + if (!self.session.session_is_valid()) { + self.login = new openerp.web.Login(self); + self.login.appendTo(self.$element); } }); this.session.ready.then(function() { + if (self.login) { + self.login.stop(); + self.login = undefined; + } self.$element.append($(QWeb.render("Interface", {}))); self.header = new openerp.web.Header(self); self.header.on_logout.add(self.on_logout); @@ -1103,7 +1081,6 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie self.menu.on_action.add(self.on_menu_action); self.menu.start(); - self.login.on_login_valid(); self.header.do_update(); self.menu.do_reload(); if(self.action_manager) @@ -1130,7 +1107,6 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie }, on_logout: function() { this.session.session_logout(); - this.login.on_login_invalid(); this.header.do_update(); $(window).unbind('hashchange', this.on_hashchange); this.do_push_state({});