[FIX] login db loading cleanup
bzr revid: al@openerp.com-20120815164630-yzc5grk2df2bzloe
This commit is contained in:
parent
d85a88bfd2
commit
7bef5d1924
|
@ -510,11 +510,11 @@ instance.web.client_actions.add("database_manager", "instance.web.DatabaseManage
|
||||||
instance.web.Login = instance.web.Widget.extend({
|
instance.web.Login = instance.web.Widget.extend({
|
||||||
template: "Login",
|
template: "Login",
|
||||||
remember_credentials: true,
|
remember_credentials: true,
|
||||||
_db_list: null,
|
|
||||||
|
|
||||||
init: function(parent, params) {
|
init: function(parent, params) {
|
||||||
this._super(parent);
|
this._super(parent);
|
||||||
this.has_local_storage = typeof(localStorage) != 'undefined';
|
this.has_local_storage = typeof(localStorage) != 'undefined';
|
||||||
|
this.db_list = null;
|
||||||
this.selected_db = null;
|
this.selected_db = null;
|
||||||
this.selected_login = null;
|
this.selected_login = null;
|
||||||
this.params = params || {};
|
this.params = params || {};
|
||||||
|
@ -537,50 +537,41 @@ instance.web.Login = instance.web.Widget.extend({
|
||||||
self.$element.find('.oe_login_manage_db').click(function() {
|
self.$element.find('.oe_login_manage_db').click(function() {
|
||||||
self.do_action("database_manager");
|
self.do_action("database_manager");
|
||||||
});
|
});
|
||||||
return self.load_db_list().then(self.on_db_list_loaded).then(function() {
|
var d;
|
||||||
if (self.params.db) {
|
if (self.params.db) {
|
||||||
self.do_login(self.params.db, self.params.login, self.params.password);
|
d = self.do_login(self.params.db, self.params.login, self.params.password);
|
||||||
}
|
} else {
|
||||||
});
|
d = self.rpc("/web/database/get_list", {}).done(self.on_db_loaded).fail(self.on_db_failed);
|
||||||
},
|
|
||||||
load_db_list: function (force) {
|
|
||||||
var d = $.when(), self = this;
|
|
||||||
if (_.isNull(this._db_list) || force) {
|
|
||||||
d = self.rpc("/web/database/get_list", {}, function(result) {
|
|
||||||
self._db_list = _.clone(result.db_list);
|
|
||||||
}, function(error, event) {
|
|
||||||
if (error.data.fault_code === 'AccessDenied') {
|
|
||||||
event.preventDefault();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return d;
|
return d;
|
||||||
},
|
},
|
||||||
on_db_list_loaded: function () {
|
on_db_loaded: function (result) {
|
||||||
var self = this;
|
this.db_list = result.db_list;
|
||||||
var list = this._db_list;
|
this.$("[name=db]").replaceWith(QWeb.render('Login.dblist', { db_list: this.db_list, selected_db: this.selected_db}));
|
||||||
var dbdiv = this.$element.find('div.oe_login_dbpane');
|
if(this.db_list.length === 0) {
|
||||||
this.$element.find("[name=db]").replaceWith(instance.web.qweb.render('Login.dblist', { db_list: list, selected_db: this.selected_db}));
|
|
||||||
if(list.length === 0) {
|
|
||||||
this.do_action("database_manager");
|
this.do_action("database_manager");
|
||||||
} else if(list && list.length === 1) {
|
} else if(this.db_list.length === 1) {
|
||||||
dbdiv.hide();
|
this.$('div.oe_login_dbpane').hide();
|
||||||
} else {
|
} else {
|
||||||
dbdiv.show();
|
this.$('div.oe_login_dbpane').show();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
on_db_failed: function (error, event) {
|
||||||
|
if (error.data.fault_code === 'AccessDenied') {
|
||||||
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
on_submit: function(ev) {
|
on_submit: function(ev) {
|
||||||
if(ev) {
|
if(ev) {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
}
|
}
|
||||||
var $e = this.$element;
|
var db = this.$("form [name=db]").val();
|
||||||
var db = $e.find("form [name=db]").val();
|
|
||||||
if (!db) {
|
if (!db) {
|
||||||
this.do_warn("Login", "No database selected !");
|
this.do_warn("Login", "No database selected !");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var login = $e.find("form input[name=login]").val();
|
var login = this.$("form input[name=login]").val();
|
||||||
var password = $e.find("form input[name=password]").val();
|
var password = this.$("form input[name=password]").val();
|
||||||
|
|
||||||
this.do_login(db, login, password);
|
this.do_login(db, login, password);
|
||||||
},
|
},
|
||||||
|
@ -616,12 +607,6 @@ instance.web.Login = instance.web.Widget.extend({
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
show: function () {
|
|
||||||
this.$element.show();
|
|
||||||
},
|
|
||||||
hide: function () {
|
|
||||||
this.$element.hide();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
instance.web.client_actions.add("login", "instance.web.Login");
|
instance.web.client_actions.add("login", "instance.web.Login");
|
||||||
|
|
||||||
|
@ -1084,8 +1069,6 @@ instance.web.WebClient = instance.web.Client.extend({
|
||||||
this.session.session_logout().then(function () {
|
this.session.session_logout().then(function () {
|
||||||
$(window).unbind('hashchange', self.on_hashchange);
|
$(window).unbind('hashchange', self.on_hashchange);
|
||||||
self.do_push_state({});
|
self.do_push_state({});
|
||||||
//would be cool to be able to do this, but I think it will make addons do strange things
|
|
||||||
//this.show_login();
|
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue