diff options
| author | Christophe Simonis <chs@odoo.com> | 2014-10-16 16:04:39 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2014-10-16 16:04:39 +0200 |
| commit | 52fee2811d658031a34257b911b1d2b40bfa0c04 (patch) | |
| tree | 61a625efad5e5ffe237e712bf1db2a840b71cb4a /addons/web/static/src/js/openerpframework.js | |
| parent | 904adc8b51abd3a0fc29c979884f845d6641da3c (diff) | |
| parent | 2b192bef2242c71d0ff3a45b9efb9e717fd364c4 (diff) | |
[MERGE] forward port of branch 8.0 up to 2b192be
Diffstat (limited to 'addons/web/static/src/js/openerpframework.js')
| -rw-r--r-- | addons/web/static/src/js/openerpframework.js | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/addons/web/static/src/js/openerpframework.js b/addons/web/static/src/js/openerpframework.js index 77be9fd6ba8..fd13bea49cb 100644 --- a/addons/web/static/src/js/openerpframework.js +++ b/addons/web/static/src/js/openerpframework.js @@ -258,24 +258,24 @@ openerp.ParentedMixin = { current object is destroyed. */ alive: function(promise, reject) { - var def = $.Deferred(); var self = this; - promise.done(function() { - if (! self.isDestroyed()) { - if (! reject) + return $.Deferred(function (def) { + promise.then(function () { + if (!self.isDestroyed()) { def.resolve.apply(def, arguments); - else - def.reject(); - } - }).fail(function() { - if (! self.isDestroyed()) { - if (! reject) + } + }, function () { + if (!self.isDestroyed()) { def.reject.apply(def, arguments); - else + } + }).always(function () { + if (reject) { + // noop if def already resolved or rejected def.reject(); - } - }); - return def.promise(); + } + // otherwise leave promise in limbo + }); + }).promise(); }, /** * Inform the object it should destroy itself, releasing any |
