summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-03-06 12:28:30 +0100
committerChristophe Simonis <chs@odoo.com>2018-03-06 12:28:30 +0100
commitac890231555cb0a130d55ae66fdbd8d70971fe6e (patch)
tree27ee40ca527ad78d24f22380492e8832b9c5280d /addons/web/static/src/js
parent108d22ecdffad7abed0a6931142adeb48401e422 (diff)
parent5e6bb745e8bbd6c8bfb7ea50fe68fba02ac41a15 (diff)
[MERGE] forward port branch 10.0 up to 5e6bb745e8b
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/view_manager.js22
-rw-r--r--addons/web/static/src/js/views/form_common.js20
-rw-r--r--addons/web/static/src/js/views/pivot_view.js5
-rw-r--r--addons/web/static/src/js/views/search_menus.js16
4 files changed, 54 insertions, 9 deletions
diff --git a/addons/web/static/src/js/view_manager.js b/addons/web/static/src/js/view_manager.js
index a351a813263..490b2d5cfba 100644
--- a/addons/web/static/src/js/view_manager.js
+++ b/addons/web/static/src/js/view_manager.js
@@ -15,6 +15,9 @@ var _t = core._t;
var ViewManager = Widget.extend(ControlPanelMixin, {
className: "o_view_manager_content",
+ custom_events: {
+ get_controller_context: '_onGetControllerContext',
+ },
/**
* Called each time the view manager is attached into the DOM
*/
@@ -474,6 +477,25 @@ var ViewManager = Widget.extend(ControlPanelMixin, {
}
return this._super.apply(this, arguments);
},
+
+ //--------------------------------------------------------------------------
+ // Handlers
+ //--------------------------------------------------------------------------
+
+ // ONLY FORWARDPORT THIS COMMIT UP TO SAAS-15
+ /**
+ * Handles a context request: provides to the caller the context of the
+ * active view.
+ *
+ * @private
+ * @param {OdooEvent} ev
+ * @param {function} ev.data.callback used to send the requested context
+ */
+ _onGetControllerContext: function (ev) {
+ var controller = this.active_view && this.active_view.controller;
+ var context = controller && controller.get_context();
+ ev.data.callback(context);
+ },
});
return ViewManager;
diff --git a/addons/web/static/src/js/views/form_common.js b/addons/web/static/src/js/views/form_common.js
index c562bebd83e..43a061aee74 100644
--- a/addons/web/static/src/js/views/form_common.js
+++ b/addons/web/static/src/js/views/form_common.js
@@ -976,6 +976,9 @@ var SelectCreateListView = ListView.extend({
* Search dialog (displays a list of records and permits to create a new one by switching to a form view)
*/
var SelectCreateDialog = ViewDialog.extend({
+ custom_events: {
+ get_controller_context: '_onGetControllerContext',
+ },
/**
* options:
* - initial_ids
@@ -1106,6 +1109,23 @@ var SelectCreateDialog = ViewDialog.extend({
return new FormViewDialog(this.__parentedParent, this.options).open();
},
on_view_list_loaded: function() {},
+
+ //--------------------------------------------------------------------------
+ // Handlers
+ //--------------------------------------------------------------------------
+
+ /**
+ * Handles a context request: provides to the caller the context of the
+ * list view.
+ *
+ * @private
+ * @param {OdooEvent} ev
+ * @param {function} ev.data.callback used to send the requested context
+ */
+ _onGetControllerContext: function (ev) {
+ var context = this.view_list.get_context();
+ ev.data.callback(context);
+ },
});
return {
diff --git a/addons/web/static/src/js/views/pivot_view.js b/addons/web/static/src/js/views/pivot_view.js
index c40d17b41e2..395a07a1016 100644
--- a/addons/web/static/src/js/views/pivot_view.js
+++ b/addons/web/static/src/js/views/pivot_view.js
@@ -819,7 +819,7 @@ var PivotView = View.extend({
framework.blockUI();
var nbr_measures = this.active_measures.length,
headers = this.compute_headers(),
- measure_row = nbr_measures > 1 ? _.last(headers) : [],
+ measure_row = nbr_measures >= 1 ? _.last(headers) : [],
rows = this.compute_rows(),
i, j, value;
headers[0].splice(0,1);
@@ -845,7 +845,8 @@ var PivotView = View.extend({
title: this.title,
};
if(table.measure_row.length + 1 > 256) {
- c.show_message(_t("For Excel compatibility, data cannot be exported if there are more than 256 columns.\n\nTip: try to flip axis, filter further or reduce the number of measures."));
+ crash_manager.show_message(_t("For Excel compatibility, data cannot be exported if there are more than 256 columns.\n\nTip: try to flip axis, filter further or reduce the number of measures."));
+ framework.unblockUI();
return;
}
session.get_file({
diff --git a/addons/web/static/src/js/views/search_menus.js b/addons/web/static/src/js/views/search_menus.js
index a8ce7274256..6c7069312aa 100644
--- a/addons/web/static/src/js/views/search_menus.js
+++ b/addons/web/static/src/js/views/search_menus.js
@@ -93,13 +93,15 @@ return Widget.extend({
this.$inputs.first().focus();
return;
}
- var search = this.searchview.build_search_data(),
- view_manager = this.findAncestor(function (a) {
- // HORRIBLE HACK. PLEASE SAVE ME FROM MYSELF (BUT IN A PAINLESS WAY IF POSSIBLE)
- return 'active_view' in a;
- }),
- view_context = view_manager ? view_manager.active_view.controller.get_context() : {},
- results = pyeval.sync_eval_domains_and_contexts({
+ var search = this.searchview.build_search_data();
+ // ONLY FORWARDPORT THIS COMMIT UP TO SAAS-15
+ var view_context;
+ this.trigger_up('get_controller_context', {
+ callback: function (ctx) {
+ view_context = ctx;
+ },
+ });
+ var results = pyeval.sync_eval_domains_and_contexts({
domains: search.domains,
contexts: search.contexts.concat(view_context || []),
group_by_seq: search.groupbys || [],