summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js/widgets/theme.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website/static/src/js/widgets/theme.js')
-rw-r--r--addons/website/static/src/js/widgets/theme.js20
1 files changed, 12 insertions, 8 deletions
diff --git a/addons/website/static/src/js/widgets/theme.js b/addons/website/static/src/js/widgets/theme.js
index 9fc2f0e1c21..416f9eaba8d 100644
--- a/addons/website/static/src/js/widgets/theme.js
+++ b/addons/website/static/src/js/widgets/theme.js
@@ -504,13 +504,8 @@ var ThemeCustomizeDialog = Dialog.extend({
}).then(function (data) {
var files = data.scss[0][1];
var file = _.find(files, function (file) {
- switch (colorType) {
- case 'theme':
- return file.url === '/website/static/src/scss/options/colors/user_theme_color_palette.scss';
- case 'typo':
- return file.url === '/website/static/src/scss/options/colors/user_color_palette_typo.scss';
- }
- return file.url === '/website/static/src/scss/options/colors/user_color_palette_' + colorName + '.scss';
+ var baseURL = '/website/static/src/scss/options/colors/';
+ return file.url === _.str.sprintf('%suser_%scolor_palette.scss', baseURL, (colorType ? (colorType + '_') : ''));
});
var colors = {};
@@ -524,7 +519,16 @@ var ThemeCustomizeDialog = Dialog.extend({
var updatedFileContent = file.arch;
_.each(colors, function (colorValue, colorName) {
- updatedFileContent = updatedFileContent.replace(new RegExp(colorName + ': (?:null|#[a-fA-F0-9]{6}),'), colorName + ': ' + colorValue + ',');
+ var pattern = _.str.sprintf("'%s': %%s,\n", colorName);
+ var regex = new RegExp(_.str.sprintf(pattern, ".+"));
+ var replacement = _.str.sprintf(pattern, colorValue);
+ if (regex.test(updatedFileContent)) {
+ updatedFileContent = updatedFileContent
+ .replace(regex, replacement);
+ } else {
+ updatedFileContent = updatedFileContent
+ .replace(/( *)(.*hook.*)/, _.str.sprintf('$1%s$1$2', replacement));
+ }
});
return self._rpc({