[imp] modified Login to be instanciated only when necessary and destroyed when not...
authorniv-openerp <nicolas.vanhoren@openerp.com>
Wed, 4 Jan 2012 12:44:56 +0000 (13:44 +0100)
committerniv-openerp <nicolas.vanhoren@openerp.com>
Wed, 4 Jan 2012 12:44:56 +0000 (13:44 +0100)
bzr revid: nicolas.vanhoren@openerp.com-20120104124456-dg0ll2dyomj8fsav

addons/web/static/src/css/base.css
addons/web/static/src/js/chrome.js

index 0606027..40d02e5 100644 (file)
@@ -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;
index 9c3f7e0..06bfcbf 100644 (file)
@@ -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({});