summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2012-01-13 16:16:38 +0100
committerXavier Morel <xmo@openerp.com>2012-01-13 16:16:38 +0100
commit33c42c76cd2d6cf691191e2b3535fa3353f163b5 (patch)
tree47febfe70dc3c9d5ec04d746d2f6f08afb02575f /addons/web/static/src
parent0a04e3640dc43c0348f5d42a45460c011dffd8f6 (diff)
parent1eff27c138e45cb868e1a665ad9f1eea01591dd5 (diff)
[FIX] loading of new modules after installation
bzr revid: xmo@openerp.com-20120113151638-qoa0vlhunxiq1g2p
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/chrome.js7
-rw-r--r--addons/web/static/src/js/core.js19
2 files changed, 17 insertions, 9 deletions
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index 7af729205be..32a70d587a7 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -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;
diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js
index 0584c49f6b2..b36e576ae47 100644
--- a/addons/web/static/src/js/core.js
+++ b/addons/web/static/src/js/core.js
@@ -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();
+ }
});
});
},
@@ -738,6 +742,7 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp.
_.each(files, function(file) {
self.qweb_mutex.exec(function() {
return self.rpc('/web/proxy/load', {path: file}).pipe(function(xml) {
+ if (!xml) { return; }
openerp.web.qweb.add_template(_.str.trim(xml));
});
});