From dd34b8f0770b1e29681aa6c05144f8a86782d888 Mon Sep 17 00:00:00 2001 From: Arunmozhi Date: Fri, 18 Nov 2022 21:33:32 +0530 Subject: [PATCH 1/2] feat: override TinyMCE config using settings The TinyMCE's configuration can be overridden by defining the TINYMCE_CONFIG_OVERRIDES key in the JS_ENV_EXTRA_CONFIG. --- xmodule/js/src/html/edit.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/xmodule/js/src/html/edit.js b/xmodule/js/src/html/edit.js index bb92d8c848d9..88863d8e2a03 100644 --- a/xmodule/js/src/html/edit.js +++ b/xmodule/js/src/html/edit.js @@ -208,6 +208,12 @@ } }); } + + // apply configuration overrides if have been defined + var tinyMceConfigOverrides = process.env.JS_ENV_EXTRA_CONFIG.TINYMCE_CONFIG_OVERRIDES; + if (tinyMceConfigOverrides) { + Object.assign(tinyMceConfig, tinyMceConfigOverrides); + } } this.tiny_mce_textarea = $(".tiny-mce", this.element).tinymce(tinyMceConfig); From e7ebe6a0d590da98037cd30ab73a8c792798caa4 Mon Sep 17 00:00:00 2001 From: Arunmozhi Date: Fri, 18 Nov 2022 21:40:01 +0530 Subject: [PATCH 2/2] docs: add a note about TINYMCE_CONFIG_OVERRIDES --- cms/envs/common.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cms/envs/common.py b/cms/envs/common.py index 10aaa3d09689..cb5e32491f7c 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -1243,6 +1243,8 @@ ##### custom vendor plugin variables ##### # JavaScript code can access this data using `process.env.JS_ENV_EXTRA_CONFIG` # One of the current use cases for this is enabling custom TinyMCE plugins +# (TINYMCE_ADDITIONAL_PLUGINS) and overriding the TinyMCE configuration +# (TINYMCE_CONFIG_OVERRIDES). JS_ENV_EXTRA_CONFIG = {} ############################### PIPELINE #######################################