[FIX] remember to load not-yet-loaded modules after they've been installed, improve load_modules to be incremental (load only modules which are not installed)
bzr revid: xmo@openerp.com-20120113150829-s7ejfivy5kyqvy3f
This commit is contained in:
parent
c54d3337e6
commit
1eff27c138
|
@ -1124,8 +1124,11 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie
|
|||
this.$element.children().remove();
|
||||
},
|
||||
do_reload: function() {
|
||||
return this.session.session_reload().pipe(
|
||||
$.proxy(this.menu, 'do_reload'));
|
||||
var self = this;
|
||||
return this.session.session_reload().pipe(function () {
|
||||
openerp.connection.load_modules(true).pipe(
|
||||
self.menu.proxy('do_reload')); });
|
||||
|
||||
},
|
||||
do_notify: function() {
|
||||
var n = this.notification;
|
||||
|
|
|
@ -676,27 +676,31 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp.
|
|||
},
|
||||
/**
|
||||
* Load additional web addons of that instance and init them
|
||||
*
|
||||
* @param {Boolean} [no_session_valid_signal=false] prevents load_module from triggering ``on_session_valid``.
|
||||
*/
|
||||
load_modules: function() {
|
||||
load_modules: function(no_session_valid_signal) {
|
||||
var self = this;
|
||||
return this.rpc('/web/session/modules', {}).pipe(function(result) {
|
||||
self.module_list = result;
|
||||
var lang = self.user_context.lang;
|
||||
var params = { mods: ["web"].concat(result), lang: lang};
|
||||
var modules = self.module_list.join(',');
|
||||
var to_load = _.difference(result, self.module_list).join(',');
|
||||
self.module_list = result;
|
||||
return $.when(
|
||||
self.rpc('/web/webclient/csslist', {mods: modules}, self.do_load_css),
|
||||
self.rpc('/web/webclient/qweblist', {mods: modules}).pipe(self.do_load_qweb),
|
||||
self.rpc('/web/webclient/csslist', {mods: to_load}, self.do_load_css),
|
||||
self.rpc('/web/webclient/qweblist', {mods: to_load}).pipe(self.do_load_qweb),
|
||||
self.rpc('/web/webclient/translations', params).pipe(function(trans) {
|
||||
openerp.web._t.database.set_bundle(trans);
|
||||
var file_list = ["/web/static/lib/datejs/globalization/" + lang.replace("_", "-") + ".js"];
|
||||
return self.rpc('/web/webclient/jslist', {mods: modules}).pipe(function(files) {
|
||||
return self.rpc('/web/webclient/jslist', {mods: to_load}).pipe(function(files) {
|
||||
return self.do_load_js(file_list.concat(files));
|
||||
});
|
||||
})
|
||||
).then(function() {
|
||||
self.on_modules_loaded();
|
||||
self.on_session_valid();
|
||||
if (!no_session_valid_signal) {
|
||||
self.on_session_valid();
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue