diff options
| author | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-12-19 17:14:41 +0100 |
|---|---|---|
| committer | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-12-19 17:14:41 +0100 |
| commit | 10bd9f1aee190f34391775e2c119e5f289d64fa8 (patch) | |
| tree | 1298c2cc76f8e2a8cb4b8cf0a0297a809ee75eed /addons/web/static/src/js/core.js | |
| parent | 95a3f109056357731fd927b1b196dd60efc37651 (diff) | |
[imp] implemented synchronized mode to be used in the o2m
bzr revid: nicolas.vanhoren@openerp.com-20111219161441-1117wec0btanqii2
Diffstat (limited to 'addons/web/static/src/js/core.js')
| -rw-r--r-- | addons/web/static/src/js/core.js | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index 3bbf94379cf..bb3c209a8c3 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -462,6 +462,8 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. data: JSON.stringify(payload), processData: false, }, url); + if (this.synch) + ajax.async = false; return $.ajax(ajax); }, rpc_jsonp: function(url, payload) { @@ -479,6 +481,8 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. cache: false, data: data }, url); + if (this.synch) + ajax.async = false; var payload_str = JSON.stringify(payload); var payload_url = $.param({r:payload_str}); if(payload_url.length < 2000) { @@ -805,7 +809,16 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. } }; timer = setTimeout(waitLoop, CHECK_INTERVAL); - } + }, + synchronized_mode: function(to_execute) { + var synch = this.synch; + this.synch = true; + try { + return to_execute(); + } finally { + this.synch = synch; + } + }, }); /** @@ -1220,6 +1233,15 @@ $.async_when = function() { return def; }; +// special tweak for the web client +var old_async_when = $.async_when; +$.async_when = function() { + if (openerp.connection.synch) + return $.when.apply(this, arguments); + else + return old_async_when.apply(this, arguments); +}; + }; // vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: |
