diff --git a/addons/web/static/src/search/control_panel/control_panel.js b/addons/web/static/src/search/control_panel/control_panel.js index abc0491cb45..8d9e26ca18b 100644 --- a/addons/web/static/src/search/control_panel/control_panel.js +++ b/addons/web/static/src/search/control_panel/control_panel.js @@ -70,6 +70,28 @@ export class ControlPanel extends Component { this.lastScrollTop = 0; this.initialScrollTop = this.getScrollingElement().scrollTop; }); + + this.mainButtons = useRef("mainButtons"); + + useEffect(() => { + if (!this.env.isSmall) { + return; + } + // on small screen, clean-up the dropdown elements + const dropdownButtons = this.mainButtons.el.querySelectorAll(".dropdown-menu button"); + if (!dropdownButtons.length) { + this.mainButtons.el + .querySelectorAll(".dropdown-menu, .dropdown-toggle") + .forEach((el) => el.classList.add("d-none")); + return; + } + for (const button of dropdownButtons) { + for (const cl of Array.from(button.classList)) { + button.classList.toggle(cl, !cl.startsWith("btn-")); + } + button.classList.add("dropdown-item", "btn", "btn-link"); + } + }); } getScrollingElement() { diff --git a/addons/web/static/src/search/control_panel/control_panel.xml b/addons/web/static/src/search/control_panel/control_panel.xml index 6c99958b23a..2fcb36a0d1c 100644 --- a/addons/web/static/src/search/control_panel/control_panel.xml +++ b/addons/web/static/src/search/control_panel/control_panel.xml @@ -4,11 +4,25 @@
-
-
- - - +
+
+ +
+ + + +
+
+ + + + +
@@ -26,22 +40,38 @@
-
+
- + + + +
@@ -53,26 +83,34 @@ -
- +