diff options
| author | Xavier Morel <xmo@openerp.com> | 2012-01-24 15:19:27 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2012-01-24 15:19:27 +0100 |
| commit | 084bf9fb3fee99f1049fc9e0a3865ad242edcfd0 (patch) | |
| tree | 1caaaec3f70f55bf2b04332947189c8e174cd0e6 /addons/web/static/src/js/core.js | |
| parent | b39e6ae7f122c98afb79e5bcb4ced467f472cbc5 (diff) | |
[FIX] in m2o fields, abort previous name_get when new one (for same field) arrives in order to limit the number of requests in-flight
lp bug: https://launchpad.net/bugs/920884 fixed
bzr revid: xmo@openerp.com-20120124141927-wznbkd2tf3mngq31
Diffstat (limited to 'addons/web/static/src/js/core.js')
| -rw-r--r-- | addons/web/static/src/js/core.js | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index c735f113991..098c6da104a 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -443,7 +443,9 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. }; var deferred = $.Deferred(); this.on_rpc_request(); - this.rpc_function(url, payload).then( + var aborter = params.aborter; + delete params.aborter; + var request = this.rpc_function(url, payload).then( function (response, textStatus, jqXHR) { self.on_rpc_response(); if (!response.error) { @@ -469,6 +471,16 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. }; deferred.reject(error, $.Event()); }); + if (aborter) { + aborter.abort_last = function () { + if (!(request.isResolved() || request.isRejected())) { + deferred.fail(function (error, event) { + event.preventDefault(); + }); + request.abort(); + } + }; + } // Allow deferred user to disable on_rpc_error in fail deferred.fail(function() { deferred.fail(function(error, event) { |
