[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) <qsm@odoo.com>
This commit is contained in:
qsm-odoo
2021-09-06 18:28:53 +00:00
parent 0ebf956edb
commit 9f33d7dcac
4 changed files with 22 additions and 20 deletions
@@ -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;
@@ -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;
@@ -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;
}
@@ -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