summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/core.js
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2012-01-24 15:19:27 +0100
committerXavier Morel <xmo@openerp.com>2012-01-24 15:19:27 +0100
commit084bf9fb3fee99f1049fc9e0a3865ad242edcfd0 (patch)
tree1caaaec3f70f55bf2b04332947189c8e174cd0e6 /addons/web/static/src/js/core.js
parentb39e6ae7f122c98afb79e5bcb4ced467f472cbc5 (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.js14
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) {