summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/chrome.js31
1 files changed, 16 insertions, 15 deletions
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);