From 9f33d7dcac043a26f129bb7699ac6d30debc27b1 Mon Sep 17 00:00:00 2001 From: qsm-odoo Date: Mon, 6 Sep 2021 16:13:28 +0000 Subject: [PATCH] [REF] website, web_editor: confine 'NULL' "hack" into website Commit [1] introduced a "hack" to transform `'NULL'` values into `null` values in some maps as normally-defined `null` values are automatically removed (replaced by a fallback). This hack did not need to be general and in web_editor but can rather be confined to website only for the user palette maps (especially since the fix made by the parent of this commit here). [1]: https://github.com/odoo/odoo/commit/a48a30f954afcb6ff3a59c4f32b05fd0c2cfcd2b closes odoo/odoo#76033 Signed-off-by: Quentin Smetz (qsm) --- .../static/src/scss/secondary_variables.scss | 3 --- .../static/src/scss/web_editor.variables.scss | 15 --------------- .../static/src/scss/primary_variables.scss | 16 ++++++++++++++++ .../static/src/scss/secondary_variables.scss | 8 ++++++-- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/addons/web_editor/static/src/scss/secondary_variables.scss b/addons/web_editor/static/src/scss/secondary_variables.scss index 421e6670aa5..1785bb09591 100644 --- a/addons/web_editor/static/src/scss/secondary_variables.scss +++ b/addons/web_editor/static/src/scss/secondary_variables.scss @@ -21,7 +21,6 @@ $o-color-palette: map-get($o-color-palettes, $o-color-palette-name) or (); // Original color palette can contain override of the default combinations (so keep 'null' values for this merge) $o-color-palette: map-merge($-combination-additions, $o-color-palette); $o-color-palette: map-merge($o-base-color-palette, $o-color-palette); -$o-color-palette: o-map-force-nulls($o-color-palette); // Theme colors $o-theme-color-palette: map-get($o-theme-color-palettes, $o-theme-color-palette-name) or () !default; @@ -43,7 +42,6 @@ $o-theme-color-palette: map-merge(( 'dark': darken(desaturate($-main-color, 80%), min(70%, max(0%, $-main-color-lightness - 10%))), // Does not lower under 10% lightness ), $o-theme-color-palette); $o-theme-color-palette: map-merge($o-base-theme-color-palette, $o-theme-color-palette); -$o-theme-color-palette: o-map-force-nulls($o-theme-color-palette); // Gray colors // Extend grays with transparent ones (for some reason, BS4 create black-50 and @@ -51,7 +49,6 @@ $o-theme-color-palette: o-map-force-nulls($o-theme-color-palette); $o-gray-color-palette: map-get($o-gray-color-palettes, $o-gray-color-palette-name) or () !default; $o-gray-color-palette: map-merge($o-transparent-grays, $o-gray-color-palette); $o-gray-color-palette: map-merge($o-base-gray-color-palette, $o-gray-color-palette); -$o-gray-color-palette: o-map-force-nulls($o-gray-color-palette); $o-color-system-initialized: false; diff --git a/addons/web_editor/static/src/scss/web_editor.variables.scss b/addons/web_editor/static/src/scss/web_editor.variables.scss index 5a0365e1cf9..904dfe72d4d 100644 --- a/addons/web_editor/static/src/scss/web_editor.variables.scss +++ b/addons/web_editor/static/src/scss/web_editor.variables.scss @@ -446,21 +446,6 @@ $o-we-sidebar-content-field-toggle-control-shadow: 0 2px 3px 0 $o-we-bg-darkest // Edited content //------------------------------------------------------------------------------ -// Useful to force null values (in website, null values set by the user -// are removed to act as "removing the user custo and resetting to theme -// default": ideally, we should review that system to actually removing the -// custos in that case instead of setting a null value but this cannot be -// migrated at the moment). -@function o-map-force-nulls($map) { - $-map: (); - @each $key, $value in $map { - $-map: map-merge($-map, ( - $key: if($value == 'NULL', null, $value), - )); - } - @return $-map; -} - $o-support-13-0-color-system: false !default; $o-checklist-margin-left: 20px; diff --git a/addons/website/static/src/scss/primary_variables.scss b/addons/website/static/src/scss/primary_variables.scss index 12c0d432f39..ef0c3a8d00d 100644 --- a/addons/website/static/src/scss/primary_variables.scss +++ b/addons/website/static/src/scss/primary_variables.scss @@ -2055,3 +2055,19 @@ $o-theme-font-configs: ( background-image: $-gradient; } }; + +// Replaces 'NULL' string values in a map by the sass null value (this is useful +// as a "hack" to allow users to define null values in their custom palette as +// normal null values are immediately removed to act as "removing the user custo +// and resetting to theme default": ideally, we should review that system to +// actually removing the custos in those cases instead of setting a null value +// but this cannot be migrated at the moment). +@function o-map-force-nulls($map) { + $-map: (); + @each $key, $value in $map { + $-map: map-merge($-map, ( + $key: if($value == 'NULL', null, $value), + )); + } + @return $-map; +} diff --git a/addons/website/static/src/scss/secondary_variables.scss b/addons/website/static/src/scss/secondary_variables.scss index 14c27077550..cef3c0e5f93 100644 --- a/addons/website/static/src/scss/secondary_variables.scss +++ b/addons/website/static/src/scss/secondary_variables.scss @@ -53,9 +53,10 @@ $o-fonts-similar: ( // By default, most website palette values are null. Each null value is // automatically replaced with corresponsing values in chosen default values // palette. +$o-user-website-values: o-map-force-nulls($o-user-website-values); +$o-user-website-values: o-map-font-aliases($o-user-website-values); $-website-values-default: o-safe-nth($o-website-values-palettes, $o-website-values-palette-number, ()); $-website-values-default: map-merge($o-base-website-values-palette, $-website-values-default); -$o-user-website-values: o-map-font-aliases($o-user-website-values); $-actual-user-website-values-palette: map-merge($-website-values-default, $o-user-website-values); // Default font selection + User font selection have been merged, now need to // add the right associated font default config @@ -67,7 +68,7 @@ $o-website-values-palettes: append($o-website-values-palettes, $-actual-user-web // Enable last website values palette, which is now the user customized one $o-website-values-palette-number: length($o-website-values-palettes); -$o-website-values: o-map-force-nulls($-actual-user-website-values-palette) !default; +$o-website-values: $-actual-user-website-values-palette !default; @function o-website-value($key) { @return map-get($o-website-values, $key); } @@ -132,6 +133,7 @@ $o-has-customized-colors: // By default, most user color palette values are null. Each null value is // automatically replaced with corresponsing colors in chosen default color // palette. +$o-user-color-palette: o-map-force-nulls($o-user-color-palette); $-palette-default: map-get($o-color-palettes, $o-color-palette-name) or (); $-actual-user-color-palette: map-merge($-palette-default, $o-user-color-palette); // Compatibility with old values in old names @@ -162,6 +164,7 @@ $o-color-palettes: map-merge($o-color-palettes, ('user-palette': $-actual-user-c // By default, most user gray palette values are null. Each null value is // automatically replaced with corresponsing colors in chosen default color // palette. +$o-user-gray-color-palette: o-map-force-nulls($o-user-gray-color-palette); $-palette-default: map-get($o-gray-color-palettes, $o-gray-color-palette-name) or (); $-actual-user-gray-color-palette: map-merge($-palette-default, $o-user-gray-color-palette); $o-gray-color-palettes: map-merge($o-gray-color-palettes, ('user-palette': $-actual-user-gray-color-palette)); @@ -184,6 +187,7 @@ $-alpha: map-get($o-user-theme-color-palette, 'alpha'); // By default, all user theme color palette values are null. Each null value is // automatically replaced with corresponsing colors in chosen default theme // color palette. +$o-user-theme-color-palette: o-map-force-nulls($o-user-theme-color-palette); $-palette-default: map-get($o-theme-color-palettes, $o-theme-color-palette-name) or (); $-actual-user-theme-color-palette: map-merge($-palette-default, $o-user-theme-color-palette); // Always remove the primary/secondary which were customizable in some theme