[IMP] convert login and database manager into client actions

bzr revid: al@openerp.com-20120726013628-23xi8czcxl8jymbn
This commit is contained in:
Antony Lesuisse 2012-07-26 03:36:28 +02:00
parent 3a6f429d0d
commit 678eab6132
2 changed files with 21 additions and 18 deletions

View File

@ -473,8 +473,10 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
});
},
do_exit: function () {
this.do_action("login");
}
});
instance.web.client_actions.add("database_manager", "instance.web.DatabaseManager");
instance.web.Login = instance.web.Widget.extend({
template: "Login",
@ -496,17 +498,7 @@ instance.web.Login = instance.web.Widget.extend({
}
},
open_db_manager: function(){
var self = this;
self.$element.find('.oe_login_bottom').hide();
self.$element.find('.oe_login_pane').hide();
self.databasemanager = new instance.web.DatabaseManager(self);
self.databasemanager.appendTo(self.$element);
self.databasemanager.do_exit.add_last(function() {
self.databasemanager.destroy();
self.$element.find('.oe_login_bottom').show();
self.$element.find('.oe_login_pane').show();
self.load_db_list(true).then(self.on_db_list_loaded);
});
this.do_action("database_manager");
},
start: function() {
var self = this;
@ -582,13 +574,24 @@ instance.web.Login = instance.web.Widget.extend({
localStorage.setItem('last_password_login_success', '');
}
}
self.trigger("login");
self.do_action("login_sucessful");
},function () {
self.$(".oe_login_pane").fadeIn("fast");
self.$element.addClass("oe_login_invalid");
});
}
});
instance.web.client_actions.add("login", "instance.web.Login");
instance.web.LoginSuccessful = instance.web.Widget.extend({
init: function(parent) {
this._super(parent);
},
start: function() {
this.getParent().getParent().show_application();
},
});
instance.web.client_actions.add("login_sucessful", "instance.web.LoginSuccessful");
instance.web.Menu = instance.web.Widget.extend({
template: 'Menu',
@ -964,19 +967,16 @@ instance.web.WebClient = instance.web.Client.extend({
data: {debug: file + ':' + line}
});
};
// TODO: deprecate and use login client action
self.login = new instance.web.Login(self);
self.login.on("login",self,self.show_application);
},
show_login: function() {
var self = this;
self.$('.oe_topbar').hide();
self.login.appendTo(self.$element);
self.action_manager.do_action("login");
//self.login.appendTo(self.$element);
},
show_application: function() {
var self = this;
self.$('.oe_topbar').show();
self.login.$element.hide();
self.menu = new instance.web.Menu(self);
self.menu.replace(this.$element.find('.oe_menu_placeholder'));
self.menu.on('menu_click', this, this.on_menu_action);

View File

@ -180,7 +180,10 @@ instance.web.ActionManager = instance.web.Widget.extend({
});
},
do_action: function(action, on_close) {
if (_.isNumber(action) || _.isString(action)) {
if (_.isString(action) && instance.web.client_actions.contains(action)) {
var action_client = { type: "ir.actions.client", tag: action };
return this.do_action(action_client);
} else if (_.isNumber(action) || _.isString(action)) {
var self = this;
return self.rpc("/web/action/load", { action_id: action }, function(result) {
self.do_action(result.result, on_close);