[imp] simplified WebClient
bzr revid: nicolas.vanhoren@openerp.com-20120104181150-0zm2b3m6e89yb2zp
This commit is contained in:
parent
5abc71cf20
commit
deef3f37b5
|
@ -226,8 +226,20 @@ openerp.web.Loading = openerp.web.Widget.extend(/** @lends openerp.web.Loading#
|
||||||
this._super(parent);
|
this._super(parent);
|
||||||
this.count = 0;
|
this.count = 0;
|
||||||
this.blocked_ui = false;
|
this.blocked_ui = false;
|
||||||
this.session.on_rpc_request.add_first(this.on_rpc_event, 1);
|
var self = this;
|
||||||
this.session.on_rpc_response.add_last(this.on_rpc_event, -1);
|
this.request_call = function() {
|
||||||
|
self.on_rpc_event(1);
|
||||||
|
};
|
||||||
|
this.response_call = function() {
|
||||||
|
self.on_rpc_event(-1);
|
||||||
|
};
|
||||||
|
this.session.on_rpc_request.add_first(this.request_call);
|
||||||
|
this.session.on_rpc_response.add_last(this.response_call);
|
||||||
|
},
|
||||||
|
stop: function() {
|
||||||
|
this.session.on_rpc_request.remove(this.request_call);
|
||||||
|
this.session.on_rpc_response.remove(this.response_call);
|
||||||
|
this._super();
|
||||||
},
|
},
|
||||||
on_rpc_event : function(increment) {
|
on_rpc_event : function(increment) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
@ -1056,31 +1068,12 @@ 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);
|
|
||||||
|
|
||||||
if (!self.session.session_is_valid()) {
|
if (!self.session.session_is_valid()) {
|
||||||
self.login = new openerp.web.Login(self);
|
self.show_login();
|
||||||
self.login.appendTo(self.$element);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.session.ready.then(function() {
|
this.session.ready.then(function() {
|
||||||
if (self.login) {
|
self.show_application();
|
||||||
self.login.stop();
|
|
||||||
self.login = undefined;
|
|
||||||
}
|
|
||||||
self.$table = $(QWeb.render("Interface", {}));
|
|
||||||
self.$element.append(self.$table);
|
|
||||||
self.header = new openerp.web.Header(self);
|
|
||||||
self.header.on_logout.add(self.on_logout);
|
|
||||||
self.header.on_action.add(self.on_menu_action);
|
|
||||||
self.header.appendTo($("#oe_header"));
|
|
||||||
self.menu = new openerp.web.Menu(self, "oe_menu", "oe_secondary_menu");
|
|
||||||
self.menu.on_action.add(self.on_menu_action);
|
|
||||||
self.menu.start();
|
|
||||||
|
|
||||||
self.header.do_update();
|
self.header.do_update();
|
||||||
self.menu.do_reload();
|
self.menu.do_reload();
|
||||||
|
@ -1095,6 +1088,40 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
show_login: function() {
|
||||||
|
var self = this;
|
||||||
|
this.destroy_content();
|
||||||
|
this.show_common();
|
||||||
|
self.login = new openerp.web.Login(self);
|
||||||
|
self.login.appendTo(self.$element);
|
||||||
|
},
|
||||||
|
show_application: function() {
|
||||||
|
var self = this;
|
||||||
|
this.destroy_content();
|
||||||
|
this.show_common();
|
||||||
|
self.$table = $(QWeb.render("Interface", {}));
|
||||||
|
self.$element.append(self.$table);
|
||||||
|
self.header = new openerp.web.Header(self);
|
||||||
|
self.header.on_logout.add(self.on_logout);
|
||||||
|
self.header.on_action.add(self.on_menu_action);
|
||||||
|
self.header.appendTo($("#oe_header"));
|
||||||
|
self.menu = new openerp.web.Menu(self, "oe_menu", "oe_secondary_menu");
|
||||||
|
self.menu.on_action.add(self.on_menu_action);
|
||||||
|
self.menu.start();
|
||||||
|
},
|
||||||
|
show_common: function() {
|
||||||
|
var self = this;
|
||||||
|
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);
|
||||||
|
},
|
||||||
|
destroy_content: function() {
|
||||||
|
_.each(_.clone(this.widget_children), function(el) {
|
||||||
|
el.stop();
|
||||||
|
});
|
||||||
|
},
|
||||||
do_reload: function() {
|
do_reload: function() {
|
||||||
return this.session.session_init().pipe(_.bind(function() {this.menu.do_reload();}, this));
|
return this.session.session_init().pipe(_.bind(function() {this.menu.do_reload();}, this));
|
||||||
},
|
},
|
||||||
|
@ -1111,22 +1138,7 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie
|
||||||
this.header.do_update();
|
this.header.do_update();
|
||||||
$(window).unbind('hashchange', this.on_hashchange);
|
$(window).unbind('hashchange', this.on_hashchange);
|
||||||
this.do_push_state({});
|
this.do_push_state({});
|
||||||
if(this.action_manager) {
|
this.show_login();
|
||||||
this.action_manager.stop();
|
|
||||||
this.action_manager = undefined;
|
|
||||||
}
|
|
||||||
if (this.menu) {
|
|
||||||
this.menu.stop();
|
|
||||||
this.menu = undefined;
|
|
||||||
}
|
|
||||||
if (this.header) {
|
|
||||||
this.header.stop();
|
|
||||||
this.header = undefined;
|
|
||||||
}
|
|
||||||
if (this.$table) {
|
|
||||||
this.$table.remove();
|
|
||||||
this.$table = undefined;
|
|
||||||
}
|
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
},
|
},
|
||||||
bind_hashchange: function() {
|
bind_hashchange: function() {
|
||||||
|
|
|
@ -160,6 +160,12 @@ openerp.web.callback = function(obj, method) {
|
||||||
position: "last"
|
position: "last"
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
callback.remove = function(f) {
|
||||||
|
callback.callback_chain = _.difference(callback.callback_chain, _.filter(callback.callback_chain, function(el) {
|
||||||
|
return el.callback === f;
|
||||||
|
}));
|
||||||
|
return callback;
|
||||||
|
};
|
||||||
|
|
||||||
return callback.add({
|
return callback.add({
|
||||||
callback: method,
|
callback: method,
|
||||||
|
|
Loading…
Reference in New Issue