diff options
Diffstat (limited to 'addons/web/static/src/js')
| -rw-r--r-- | addons/web/static/src/js/views/abstract_view.js | 11 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/search_panel.js | 10 |
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. |
