summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/views/abstract_view.js11
-rw-r--r--addons/web/static/src/js/views/search_panel.js10
2 files changed, 15 insertions, 6 deletions
diff --git a/addons/web/static/src/js/views/abstract_view.js b/addons/web/static/src/js/views/abstract_view.js
index fc8e73136d8..d581f84308a 100644
--- a/addons/web/static/src/js/views/abstract_view.js
+++ b/addons/web/static/src/js/views/abstract_view.js
@@ -205,11 +205,11 @@ var AbstractView = Factory.extend({
if (this.withSearchPanel) {
var spProto = this.config.SearchPanel.prototype;
var viewInfo = this.controlPanelParams.viewInfo;
- var sections = spProto.computeSearchPanelParams(viewInfo, this.viewType);
- if (sections) {
- this.searchPanelParams.sections = sections;
+ var searchPanelParams = spProto.computeSearchPanelParams(viewInfo, this.viewType);
+ if (searchPanelParams.sections) {
+ this.searchPanelParams.sections = searchPanelParams.sections;
this.rendererParams.withSearchPanel = true;
- spDef = Promise.resolve(cpDef).then(this._createSearchPanel.bind(this, parent));
+ spDef = Promise.resolve(cpDef).then(this._createSearchPanel.bind(this, parent, searchPanelParams));
}
}
@@ -283,7 +283,7 @@ var AbstractView = Factory.extend({
* @param {Widget} parent
* @returns {Promise<SearchPanel>} resolved when the searchPanel is ready
*/
- _createSearchPanel: async function (parent) {
+ _createSearchPanel: async function (parent, params) {
var defaultValues = {};
Object.keys(this.loadParams.context).forEach((key) => {
let match = /^searchpanel_default_(.*)$/.exec(key);
@@ -299,6 +299,7 @@ var AbstractView = Factory.extend({
searchDomain: controlPanelDomain,
sections: this.searchPanelParams.sections,
state: this.searchPanelParams.state,
+ classes: params.classes || [],
});
this.controllerParams.searchPanel = searchPanel;
this.controllerParams.controlPanelDomain = controlPanelDomain;
diff --git a/addons/web/static/src/js/views/search_panel.js b/addons/web/static/src/js/views/search_panel.js
index f09ef071f79..32bfda12594 100644
--- a/addons/web/static/src/js/views/search_panel.js
+++ b/addons/web/static/src/js/views/search_panel.js
@@ -99,6 +99,7 @@ var SearchPanel = Widget.extend({
this.defaultValues = params.defaultValues || {};
this.fields = params.fields;
this.model = params.model;
+ this.className = params.classes.concat(['o_search_panel']).join(' ');
this.searchDomain = params.searchDomain;
},
/**
@@ -157,6 +158,7 @@ var SearchPanel = Widget.extend({
*/
computeSearchPanelParams: function (viewInfo, viewType) {
var searchPanelSections;
+ var classes;
if (viewInfo) {
var arch = viewUtils.parseArch(viewInfo.arch);
viewType = viewType === 'list' ? 'tree' : viewType;
@@ -167,13 +169,19 @@ var SearchPanel = Widget.extend({
if (attrs.view_types) {
viewTypes = attrs.view_types.split(',');
}
+ if (attrs.class) {
+ classes = attrs.class.split(' ');
+ }
if (viewTypes.indexOf(viewType) !== -1) {
searchPanelSections = _processSearchPanelNode(node, viewInfo.fields);
}
}
});
}
- return searchPanelSections;
+ return {
+ sections: searchPanelSections,
+ classes: classes,
+ }
},
/**
* Export the current state (categories and filters) of the searchpanel.