diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index a207d37dd41..4226463b90d 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -622,6 +622,7 @@ instance.web.Login = instance.web.Widget.extend({ self.on('change:database_selector', this, function() { var params = $.deparam.querystring(); params.db = self.get('database_selector'); + self.remember_last_used_database(params.db); self.$('.oe_login_dbpane').empty().text(_t('Loading...')); window.location = '/?' + $.param(params); }); @@ -639,18 +640,26 @@ instance.web.Login = instance.web.Widget.extend({ if (self.params.db && self.params.login && self.params.password) { d = self.do_login(self.params.db, self.params.login, self.params.password); } else { - // TODO: removing following code breaks portal anonymous - //if (self.params.db) { - // self.on_db_loaded([self.params.db]) - //} else { - d = self.rpc("/web/database/get_list", {}).done(self.on_db_loaded).fail(self.on_db_failed); - //} + d = self.rpc("/web/database/get_list", {}).done(self.on_db_loaded).fail(self.on_db_failed); } return d; }, + remember_last_used_database: function(db) { + // This cookie will be used server side in order to avoid db reloading on first visit + var ttl = 24 * 60 * 60 * 365; + document.cookie = [ + 'last_used_database=' + db, + 'path=/', + 'max-age=' + ttl, + 'expires=' + new Date(new Date().getTime() + ttl * 1000).toGMTString() + ].join(';'); + }, on_db_loaded: function (result) { var self = this; this.db_list = result; + if (!this.selected_db) { + this.selected_db = result[0]; + } this.$("[name=db]").replaceWith(QWeb.render('Login.dblist', { db_list: this.db_list, selected_db: this.selected_db})); this.$('select[name=db]').on('change', function(ev) { self.set('database_selector', $(this).val()); @@ -694,15 +703,7 @@ instance.web.Login = instance.web.Widget.extend({ self.hide_error(); self.$(".oe_login_pane").fadeOut("slow"); return this.session.session_authenticate(db, login, password).then(function() { - // This cookie will be used server side in order to avoid db reloading on next visit - var ttl = 24 * 60 * 60 * 365; - document.cookie = [ - 'last_db_login_success=' + db, - 'path=/', - 'max-age=' + ttl, - 'expires=' + new Date(new Date().getTime() + ttl * 1000).toGMTString() - ].join(';'); - + self.remember_last_used_database(db); if (self.has_local_storage) { if(self.remember_credentials) { localStorage.setItem('last_db_login_success', db);