diff options
| author | Xavier Morel <xmo@openerp.com> | 2011-11-21 15:09:08 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2011-11-21 15:09:08 +0100 |
| commit | 542928adde6f74269f51d24e18896b2e8bb44fc2 (patch) | |
| tree | 77a86dfbbebe8a2a50d8510ee80678ee9fc418c6 /addons/web/static/src | |
| parent | a787b202d42994873b16629f05ad7119197f7cda (diff) | |
[ADD] protocol to allow sidebar to query its parent view for context data
bzr revid: xmo@openerp.com-20111121140908-e9b3eygtt42m9bnp
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/views.js | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 90060f47fc1..e119f2deabe 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -708,20 +708,22 @@ session.web.Sidebar = session.web.Widget.extend({ }); return false; } - var additional_context = { - active_id: ids[0], - active_ids: ids, - active_model: self.widget_parent.dataset.model - }; - self.rpc("/web/action/load", { - action_id: item.action.id, - context: additional_context - }, function(result) { - result.result.context = _.extend(result.result.context || {}, - additional_context); - result.result.flags = result.result.flags || {}; - result.result.flags.new_window = true; - self.do_action(result.result); + self.widget_parent.sidebar_context().then(function (context) { + var additional_context = _.extend({ + active_id: ids[0], + active_ids: ids, + active_model: self.widget_parent.dataset.model + }, context); + self.rpc("/web/action/load", { + action_id: item.action.id, + context: additional_context + }, function(result) { + result.result.context = _.extend(result.result.context || {}, + additional_context); + result.result.flags = result.result.flags || {}; + result.result.flags.new_window = true; + self.do_action(result.result); + }); }); }, do_fold: function() { @@ -979,6 +981,9 @@ session.web.View = session.web.Widget.extend(/** @lends session.web.View# */{ }); }, on_sidebar_view_log: function() { + }, + sidebar_context: function () { + return $.Deferred().resolve({}).promise(); } }); |
