From 15f4b2505acd19228d051ce79d8459d58e944f76 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 19 Dec 2011 15:34:06 +0100 Subject: [PATCH] [FIX] Use $.Mutex for qweb loading bzr revid: fme@openerp.com-20111219143406-mdscr8htgto5zcw5 --- addons/web/static/src/js/core.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index 32cb5efdb73..e2c84aaa92f 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -359,6 +359,7 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. this.debug = ($.deparam($.param.querystring()).debug != undefined); // TODO: session store in cookie should be optional this.name = openerp._session_id; + this.qweb_mutex = new $.Mutex(); }, bind: function(origin) { var window_origin = location.protocol+"//"+location.host; @@ -688,15 +689,14 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. }, do_load_qweb: function(files) { var self = this; - if (files.length != 0) { - var file = files.shift(); - return self.rpc('/web/proxy/load', {path: file}).pipe(function(xml) { - openerp.web.qweb.add_template(_.str.trim(xml)); - return self.do_load_qweb(files); + _.each(files, function(file) { + self.qweb_mutex.exec(function() { + return self.rpc('/web/proxy/load', {path: file}).pipe(function(xml) { + openerp.web.qweb.add_template(_.str.trim(xml)); + }); }); - } else { - return $.when(); - } + }); + return self.qweb_mutex.def; }, on_modules_loaded: function() { for(var j=0; j