diff --git a/addons/account/static/src/components/bills_upload/bills_upload.xml b/addons/account/static/src/components/bills_upload/bills_upload.xml index a08f66c94e8..e01e7159fc7 100644 --- a/addons/account/static/src/components/bills_upload/bills_upload.xml +++ b/addons/account/static/src/components/bills_upload/bills_upload.xml @@ -51,13 +51,13 @@ - + - + diff --git a/addons/base_import/static/src/import_action/import_action.js b/addons/base_import/static/src/import_action/import_action.js index ae46e037e93..c9cddf052cc 100644 --- a/addons/base_import/static/src/import_action/import_action.js +++ b/addons/base_import/static/src/import_action/import_action.js @@ -63,11 +63,7 @@ export class ImportAction extends Component { get display() { return { - controlPanel: { - "top-right": false, - "bottom-left": true, - "bottom-right": false, - }, + controlPanel: {}, }; } diff --git a/addons/data_recycle/static/src/views/data_recycle_list_view.xml b/addons/data_recycle/static/src/views/data_recycle_list_view.xml index 86a1054c87e..928e49fd915 100644 --- a/addons/data_recycle/static/src/views/data_recycle_list_view.xml +++ b/addons/data_recycle/static/src/views/data_recycle_list_view.xml @@ -1,7 +1,7 @@ - + - - - - - - - diff --git a/addons/hr_expense/static/src/views/list.xml b/addons/hr_expense/static/src/views/list.xml index f0d4a4b115f..559da464693 100644 --- a/addons/hr_expense/static/src/views/list.xml +++ b/addons/hr_expense/static/src/views/list.xml @@ -3,7 +3,8 @@ - + + @@ -11,32 +12,15 @@ t-on-click="() => this.action_show_expenses_to_submit()"> Create Report - - - - - - - - - - - - - - - - - diff --git a/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.xml b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.xml index 6e0872fba22..ea1285f857b 100644 --- a/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.xml +++ b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.xml @@ -1,7 +1,7 @@ - + - + diff --git a/addons/mrp_subcontracting/static/src/subcontracting_portal/picking_form_controller.xml b/addons/mrp_subcontracting/static/src/subcontracting_portal/picking_form_controller.xml index d0fc1b01abc..e51056dd86e 100644 --- a/addons/mrp_subcontracting/static/src/subcontracting_portal/picking_form_controller.xml +++ b/addons/mrp_subcontracting/static/src/subcontracting_portal/picking_form_controller.xml @@ -2,7 +2,7 @@ - + diff --git a/addons/project/static/src/components/project_control_panel/project_control_panel.xml b/addons/project/static/src/components/project_control_panel/project_control_panel.xml index 0d4555ec9ac..e722be06f8b 100644 --- a/addons/project/static/src/components/project_control_panel/project_control_panel.xml +++ b/addons/project/static/src/components/project_control_panel/project_control_panel.xml @@ -10,45 +10,18 @@ -
  • +
    -
  • -
  • + +
    -
  • +
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/addons/spreadsheet_dashboard/static/src/bundle/dashboard_action/dashboard_action.js b/addons/spreadsheet_dashboard/static/src/bundle/dashboard_action/dashboard_action.js index cdccf0f7e43..a3eb8ce5292 100644 --- a/addons/spreadsheet_dashboard/static/src/bundle/dashboard_action/dashboard_action.js +++ b/addons/spreadsheet_dashboard/static/src/bundle/dashboard_action/dashboard_action.js @@ -17,12 +17,7 @@ import { Component, onWillStart, useState, useEffect } from "@odoo/owl"; export class SpreadsheetDashboardAction extends Component { setup() { this.Status = Status; - this.controlPanelDisplay = { - "top-left": true, - "top-right": true, - "bottom-left": false, - "bottom-right": false, - }; + this.controlPanelDisplay = {}; this.orm = useService("orm"); this.router = useService("router"); // Use the non-protected orm service (`this.env.services.orm` instead of `useService("orm")`) diff --git a/addons/stock/static/src/client_actions/stock_traceability_report_backend.js b/addons/stock/static/src/client_actions/stock_traceability_report_backend.js index d86818eac2f..6d800be21e9 100644 --- a/addons/stock/static/src/client_actions/stock_traceability_report_backend.js +++ b/addons/stock/static/src/client_actions/stock_traceability_report_backend.js @@ -63,7 +63,7 @@ export class TraceabilityReport extends Component { }); this.display = { - controlPanel: { "top-right": false, "bottom-right": false }, + controlPanel: {}, searchPanel: false, }; } diff --git a/addons/stock/static/src/components/reception_report_main/stock_reception_report_main.js b/addons/stock/static/src/components/reception_report_main/stock_reception_report_main.js index d017274736a..c42c12a7197 100644 --- a/addons/stock/static/src/components/reception_report_main/stock_reception_report_main.js +++ b/addons/stock/static/src/components/reception_report_main/stock_reception_report_main.js @@ -9,10 +9,7 @@ const { Component, onWillStart, useState } = owl; export class ReceptionReportMain extends Component { setup() { - this.controlPanelDisplay = { - "top-right": false, - "bottom-right": false, - }; + this.controlPanelDisplay = {}; this.ormService = useService("orm"); this.actionService = useService("action"); this.reportName = "stock.report_reception"; diff --git a/addons/stock/static/src/views/list/inventory_report_list.xml b/addons/stock/static/src/views/list/inventory_report_list.xml index 81eb95d6f97..2763c591e03 100644 --- a/addons/stock/static/src/views/list/inventory_report_list.xml +++ b/addons/stock/static/src/views/list/inventory_report_list.xml @@ -2,7 +2,7 @@ - + diff --git a/addons/web/static/src/core/dropdown/dropdown.xml b/addons/web/static/src/core/dropdown/dropdown.xml index dbdb86bc844..dbcd24aff1b 100644 --- a/addons/web/static/src/core/dropdown/dropdown.xml +++ b/addons/web/static/src/core/dropdown/dropdown.xml @@ -29,7 +29,7 @@ t-att-aria-expanded="state.open ? 'true' : 'false'" t-ref="togglerRef" > - +
    .dropdown-item", ":scope > .dropdown"]; +const MENU_ELEMENTS_SELECTORS = [ + ":scope > .dropdown-item", + ":scope > .dropdown", + ":scope > .o_dropdown_container > .dropdown-item", + ":scope > .o_dropdown_container > .dropdown", +]; const NEXT_ACTIVE_INDEX_FNS = { FIRST: () => 0, LAST: (list) => list.length - 1, diff --git a/addons/web/static/src/core/pager/pager.xml b/addons/web/static/src/core/pager/pager.xml index c93c719a2f1..5a61dd59b3f 100644 --- a/addons/web/static/src/core/pager/pager.xml +++ b/addons/web/static/src/core/pager/pager.xml @@ -18,7 +18,7 @@ - +
    + +
    +
    - -
    - - - - - - -
    -
    -
    - - -
    -
    - - - - - - -
    -
    -
    - - - - - - - - +
    + +
    + + +
    + +
    + + + - - + + + Unnamed
    diff --git a/addons/web/static/src/search/layout.js b/addons/web/static/src/search/layout.js index 53db5b820c1..4703959384e 100644 --- a/addons/web/static/src/search/layout.js +++ b/addons/web/static/src/search/layout.js @@ -26,8 +26,6 @@ export class Layout extends Component { } get controlPanelSlots() { const slots = { ...this.props.slots }; - slots["control-panel-bottom-left-buttons"] = slots["layout-buttons"]; - delete slots["layout-buttons"]; delete slots.default; return slots; } @@ -38,11 +36,7 @@ export class Layout extends Component { } return { ...this.props.display, - controlPanel: { - ...controlPanel, - "top-left": false, - "bottom-left-buttons": false, - }, + controlPanel, }; } } diff --git a/addons/web/static/src/search/search_bar/search_bar.js b/addons/web/static/src/search/search_bar/search_bar.js index cfef3d9bb32..f5d5fae2ca6 100644 --- a/addons/web/static/src/search/search_bar/search_bar.js +++ b/addons/web/static/src/search/search_bar/search_bar.js @@ -8,8 +8,16 @@ import { useAutofocus, useBus, useService } from "@web/core/utils/hooks"; import { DomainSelectorDialog } from "@web/core/domain_selector_dialog/domain_selector_dialog"; import { fuzzyTest } from "@web/core/utils/search"; import { _t } from "@web/core/l10n/translation"; +import { SearchBarMenu } from "../search_bar_menu/search_bar_menu"; -import { Component, useExternalListener, useRef, useState } from "@odoo/owl"; +import { + Component, + onMounted, + onWillUnmount, + useExternalListener, + useRef, + useState, +} from "@odoo/owl"; const parsers = registry.category("parsers"); const CHAR_FIELDS = ["char", "html", "many2many", "many2one", "one2many", "text", "properties"]; @@ -29,6 +37,7 @@ export class SearchBar extends Component { expanded: [], focusedIndex: 0, query: "", + showSearchBar: !this.env.isSmall, }); // derived state @@ -363,9 +372,9 @@ export class SearchBar extends Component { // Handlers //--------------------------------------------------------------------- - onFacetClick(target, facet) { + onFacetLabelClick(target, facet) { const { domain, groupId } = facet; - if (!target.classList.contains("o_searchview_facet_label") || !domain) { + if (!domain) { return; } const { resModel } = this.env.searchModel; @@ -543,6 +552,10 @@ export class SearchBar extends Component { } } + onToggleSearchBar() { + this.state.showSearchBar = !this.state.showSearchBar; + } + /** * @param {MouseEvent} ev */ @@ -563,4 +576,7 @@ export class SearchBar extends Component { } SearchBar.template = "web.SearchBar"; +SearchBar.components = { + SearchBarMenu, +}; SearchBar.props = {}; diff --git a/addons/web/static/src/search/search_bar/search_bar.scss b/addons/web/static/src/search/search_bar/search_bar.scss index b0004d41cea..9a7151d97da 100644 --- a/addons/web/static/src/search/search_bar/search_bar.scss +++ b/addons/web/static/src/search/search_bar/search_bar.scss @@ -2,16 +2,12 @@ // ============================================================================ .o_searchview_facet { - cursor: default; - .o_facet_values { - border: $border-width solid var(--SearchBar-facet-background, #{$o-brand-odoo}); + @keyframes animate { + from { + opacity: .5; + transform: translateY(20%); + } } - .o_searchview_facet_label { - background: var(--SearchBar-facet-background, #{$o-brand-odoo}); - color: var(--SearchBar-facet-color, #{$o-white}); - } - &.o_facet_with_domain:hover .o_searchview_facet_label { - cursor: pointer; - background: var(--SearchBar-facet-background, $primary); - } -} + + animation: animate .25s ease-out; +} \ No newline at end of file diff --git a/addons/web/static/src/search/search_bar/search_bar.xml b/addons/web/static/src/search/search_bar/search_bar.xml index d1ddfe33ba1..2e8fa11aea7 100644 --- a/addons/web/static/src/search/search_bar/search_bar.xml +++ b/addons/web/static/src/search/search_bar/search_bar.xml @@ -3,41 +3,45 @@ -