summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorOdoo's Mergebot <xmo+roboto@odoo.com>2019-09-16 19:13:39 +0200
committerGitHub <noreply@github.com>2019-09-16 19:13:39 +0200
commitb995cd47bbc91d62252746c61dcd364dbb3cf43c (patch)
treebd8b2b419bd822a54c9f068859ce63b1ba77ad68 /addons/web/static/src/js
parentfc5934dc4541aeff4e819a9b3404a3cbb793453f (diff)
parent3b3d35e8b91fb8881be848665349828c64642e03 (diff)
[IMP] web: SearchView: Allow user to quickly search on mobile
Currently the search panel is nice for a search with filters but that was not 100% efficient for simple research without filters. The Search is now integrated in the form view, with the ability to open the Search panel to apply filters or group by. Task ID : 1924760 closes odoo/odoo#36183 Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/views/control_panel/control_panel_renderer.js1
-rw-r--r--addons/web/static/src/js/views/control_panel/mobile_control_panel_renderer.js31
2 files changed, 28 insertions, 4 deletions
diff --git a/addons/web/static/src/js/views/control_panel/control_panel_renderer.js b/addons/web/static/src/js/views/control_panel/control_panel_renderer.js
index 677f0733bc5..bdde2827e96 100644
--- a/addons/web/static/src/js/views/control_panel/control_panel_renderer.js
+++ b/addons/web/static/src/js/views/control_panel/control_panel_renderer.js
@@ -50,6 +50,7 @@ var ControlPanelRenderer = Renderer.extend({
this.$subMenus = null;
this.action = params.action;
this.displaySearchMenu = true;
+ this.isMobile = config.device.isMobile;
this.menusSetup = false;
this.searchMenuTypes = params.searchMenuTypes || [];
this.subMenus = {};
diff --git a/addons/web/static/src/js/views/control_panel/mobile_control_panel_renderer.js b/addons/web/static/src/js/views/control_panel/mobile_control_panel_renderer.js
index 23852abcf53..95b5c577587 100644
--- a/addons/web/static/src/js/views/control_panel/mobile_control_panel_renderer.js
+++ b/addons/web/static/src/js/views/control_panel/mobile_control_panel_renderer.js
@@ -9,9 +9,9 @@ if (!config.device.isMobile) {
}
ControlPanelRenderer.include({
- template:'MobileControlPanel',
events:_.extend({}, ControlPanelRenderer.prototype.events, {
- 'click .o_mobile_search_close, .o_mobile_search_show_result, .o_enable_searchview': '_toggleMobileSearchView',
+ 'click .o_mobile_search_close, .o_mobile_search_show_result, .o_toggle_searchview_full': '_toggleMobileSearchView',
+ 'click .o_enable_searchview': '_toggleMobileQuickSearchView',
'click': '_onOpenMobileSearchView',
'click .o_mobile_search_clear_facets': '_onEmptyAll',
'show.bs.dropdown .o_mobile_search_filter .o_dropdown': '_onDropdownToggle',
@@ -49,17 +49,40 @@ ControlPanelRenderer.include({
_renderSearchBar: function () {
var self = this;
return this._super.apply(this, arguments).then(function () {
- self.searchBar.$el.detach().insertAfter(self.$('.o_mobile_search_header'));
+ self._renderSearchviewInput();
});
},
+ _renderSearchviewInput: function () {
+ if (this.$('.o_toggle_searchview_full').is(':visible') && !this.$('.o_mobile_search').is(':visible')) {
+ this.$('.o_toggle_searchview_full').toggleClass('btn-secondary', !!this.state.query.length);
+ this.searchBar.$el.detach().insertAfter(this.$('.o_mobile_search'));
+ } else {
+ this.searchBar.$el.detach().insertAfter(this.$('.o_mobile_search_header'));
+ }
+ },
/**
* Toggles mobile search view screen.
*
* @private
*/
_toggleMobileSearchView: function () {
- this.$('.o_enable_searchview').toggleClass('btn-secondary', !!this.state.query.length);
this.$('.o_mobile_search').toggleClass('o_hidden');
+ this._renderSearchviewInput();
+ },
+ /**
+ * Toggles mobile quick search view on screen.
+ *
+ * @private
+ */
+ _toggleMobileQuickSearchView: function () {
+ this.$('.o_cp_searchview').toggleClass('o_searchview_quick');
+ this.$('.breadcrumb').toggleClass('o_hidden',
+ this.$('.o_cp_searchview').hasClass('o_searchview_quick'));
+ this.$('.o_toggle_searchview_full')
+ .toggleClass('o_hidden')
+ .toggleClass('btn-secondary', !!this.state.query.length);
+ this._renderSearchviewInput();
+ this.$('.o_enable_searchview').toggleClass("fa-search").toggleClass("fa-close");
},
//--------------------------------------------------------------------------