From b3990e7d13a412693752a9d13d5a0f8affff918b Mon Sep 17 00:00:00 2001 From: "stefanorigano (SRI)" Date: Mon, 21 Mar 2022 13:43:43 +0000 Subject: [PATCH] [IMP] web: `SearchPanel`, revamp scss This commit simplifies the component SCSS improving bootstrap integration and allowing components other than 'SearchPanel' to use the same tree-view design. Part of the overall v16 SCSS optimization/restyle, task-2704984. task-2795166 closes odoo/odoo#87687 Related: odoo/enterprise#25781 Signed-off-by: Pierre Paridans (app) --- .../src/legacy/scss/bootstrap_overridden.scss | 4 + .../src/legacy/scss/primary_variables.scss | 6 + addons/web/static/src/legacy/scss/ui.scss | 42 ++++++ .../static/src/legacy/xml/search_panel.xml | 79 +++++++---- .../src/search/search_panel/search_panel.scss | 127 +----------------- .../search_panel/search_panel.variables.scss | 5 + .../src/search/search_panel/search_panel.xml | 78 +++++++---- .../tests/legacy/views/search_panel_tests.js | 10 +- .../static/tests/search/search_panel_tests.js | 4 +- 9 files changed, 170 insertions(+), 185 deletions(-) create mode 100644 addons/web/static/src/search/search_panel/search_panel.variables.scss diff --git a/addons/web/static/src/legacy/scss/bootstrap_overridden.scss b/addons/web/static/src/legacy/scss/bootstrap_overridden.scss index 24b09f551e7..7835fab1723 100644 --- a/addons/web/static/src/legacy/scss/bootstrap_overridden.scss +++ b/addons/web/static/src/legacy/scss/bootstrap_overridden.scss @@ -159,6 +159,10 @@ $dropdown-link-disabled-color: $o-main-color-muted !default; $dropdown-item-padding-y: $o-dropdown-vpadding !default; $dropdown-item-padding-x: $o-dropdown-hpadding !default; +// List group + +$list-group-active-color: $o-list-group-active-color !default; +$list-group-active-bg: $o-list-group-active-bg !default; // Forms $custom-control-indicator-border-color: $gray-500 !default; diff --git a/addons/web/static/src/legacy/scss/primary_variables.scss b/addons/web/static/src/legacy/scss/primary_variables.scss index c6e7e606520..a9d07e6aa61 100644 --- a/addons/web/static/src/legacy/scss/primary_variables.scss +++ b/addons/web/static/src/legacy/scss/primary_variables.scss @@ -123,6 +123,12 @@ $o-statusbar-height: 33px !default; $o-label-font-size-factor: 0.8 !default; +// == List group + +$o-list-group-active-color: $o-gray-900 !default; +$o-list-group-active-bg: lighten(saturate(adjust-hue($o-info, 15), 1.8), 50) !default; + + // == Badges // Define a minimum width. This value is arbitrary and strictly font-related. diff --git a/addons/web/static/src/legacy/scss/ui.scss b/addons/web/static/src/legacy/scss/ui.scss index a4e6d3cf82f..4f47da5ad57 100644 --- a/addons/web/static/src/legacy/scss/ui.scss +++ b/addons/web/static/src/legacy/scss/ui.scss @@ -66,6 +66,48 @@ animation: catchAttention 200ms ease 0s infinite normal; } +// ---------------------------------------------------------------------------- +// Render a "tree-view" design on a set of vertical elements + +// @param {number} --treeEntry-padding-h - Entry's horizzontal padding. +// @param {number} --treeEntry-padding-v - Entry's vertical padding. +// @param {number} --treeEntry--before-top - Vertical-line top position. +// @param {string} --treeEntry--after-display - Horizzontal-line display mode. +// @param {color} --treeEntry--beforeAfter-color - Lines color +// @param {color} --treeEntry--beforeAfter-left - Lines left position +// ---------------------------------------------------------------------------- +.o_treeEntry { + $-padding-h: var(--treeEntry-padding-h, #{map-get($spacers, 4)}); + $-padding-v: var(--treeEntry-padding-v, #{map-get($spacers, 2)}); + + padding-left: $-padding-h; + position: relative; + + &:before, &:after { + position: absolute; + left: var(--treeEntry--beforeAfter-left, calc(#{$-padding-h} * .5)); + background: var(--treeEntry--beforeAfter-color, #{$border-color}); + content: ''; + } + + &:before { + top: var(--treeEntry--before-top, 0); + width: 1px; + height: 100%; + } + + &:after { + display: var(--treeEntry--after-display, initial); + top: calc(.5em + #{$-padding-v}); + width: calc(#{$-padding-h} * .5); + height: 1px; + } + + &:last-of-type:before { + height: calc(.5em + #{$-padding-v}); + } +} + // bounce effect @keyframes catchAttention { 0%, 20%, 40%, 60%, 80%, 100% { diff --git a/addons/web/static/src/legacy/xml/search_panel.xml b/addons/web/static/src/legacy/xml/search_panel.xml index 29927f9c1a9..596b1921500 100644 --- a/addons/web/static/src/legacy/xml/search_panel.xml +++ b/addons/web/static/src/legacy/xml/search_panel.xml @@ -2,12 +2,12 @@ -
+
-
- + @@ -20,14 +20,16 @@ -
  • -
    -
    +
    +
    @@ -36,12 +38,13 @@ t-attf-id="{{ section.id }}_input_{{ groupId }})" t-on-click="() => this._toggleFilterGroup(section.id, group)" /> -