summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2012-11-28 16:25:24 +0100
committerXavier Morel <xmo@openerp.com>2012-11-28 16:25:24 +0100
commit628ed49fff4efcb39020d5992eb75f2ca93708ae (patch)
tree0033e1f5573e9b3a3df855bc46575d4668691c84
parent48b0d70fc217ce28d1b72e8440e864d8c1cc83c1 (diff)
[FIX] correctly return deferreds from all action type handlers
bzr revid: xmo@openerp.com-20121128152524-xrh6zqty0huqb732
-rw-r--r--addons/web/static/src/js/views.js34
1 files changed, 21 insertions, 13 deletions
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index 8b71989cad9..0e691ab901e 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -394,6 +394,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
options.on_close();
}
this.dialog_stop();
+ return $.when();
},
ir_actions_server: function (action, options) {
var self = this;
@@ -407,29 +408,36 @@ instance.web.ActionManager = instance.web.Widget.extend({
ir_actions_report_xml: function(action, options) {
var self = this;
instance.web.blockUI();
- instance.web.pyeval.eval_domains_and_contexts({
+ return instance.web.pyeval.eval_domains_and_contexts({
contexts: [action.context],
domains: []
- }).done(function(res) {
+ }).then(function(res) {
action = _.clone(action);
action.context = res.context;
var c = instance.webclient.crashmanager;
- self.session.get_file({
- url: '/web/report',
- data: {action: JSON.stringify(action)},
- complete: instance.web.unblockUI,
- success: function(){
- if (!self.dialog) {
- options.on_close();
+ return $.Deferred(function (d) {
+ self.session.get_file({
+ url: '/web/report',
+ data: {action: JSON.stringify(action)},
+ complete: instance.web.unblockUI,
+ success: function(){
+ if (!self.dialog) {
+ options.on_close();
+ }
+ self.dialog_stop();
+ d.resolve();
+ },
+ error: function () {
+ c.rpc_error.apply(c, arguments);
+ d.reject();
}
- self.dialog_stop();
- },
- error: c.rpc_error.bind(c)
- })
+ })
+ });
});
},
ir_actions_act_url: function (action) {
window.open(action.url, action.target === 'self' ? '_self' : '_blank');
+ return $.when();
},
});