summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2011-11-21 15:09:08 +0100
committerXavier Morel <xmo@openerp.com>2011-11-21 15:09:08 +0100
commit542928adde6f74269f51d24e18896b2e8bb44fc2 (patch)
tree77a86dfbbebe8a2a50d8510ee80678ee9fc418c6 /addons/web/static/src
parenta787b202d42994873b16629f05ad7119197f7cda (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.js33
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();
}
});