From d9984480886e7eb76ea10e30151250430e2c0ea4 Mon Sep 17 00:00:00 2001 From: florian <f.spreckelsen@inidscale.com> Date: Wed, 15 Dec 2021 10:36:27 +0100 Subject: [PATCH] DRAFT: Add more ideas, todos, and non-working code --- src/core/js/ext_editmode_wysiwyg_text.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/core/js/ext_editmode_wysiwyg_text.js b/src/core/js/ext_editmode_wysiwyg_text.js index b3cb8a87..f87e5cd5 100644 --- a/src/core/js/ext_editmode_wysiwyg_text.js +++ b/src/core/js/ext_editmode_wysiwyg_text.js @@ -67,7 +67,28 @@ var ext_editmode_wysiwyg_text = function ($, logger, ClassicEditor, edit_mode, g editor.updateSourceElement(); }); // TODO(fspreck): Add an event listener to save also changes made in - // source mode. What event can we listen to? + // source mode. What event can we listen to? The following doesn't + // work either. + // document.body.addEventListener("input", e => { + // console.log("Saving after input..."); + // editor.updateSourceElement(); + // }, true); + const sourceEditingPlugin = editor.plugins.get("SourceEditing"); + sourceEditingPlugin.on("change:isSourceEditingMode", (e, name, isSourceEditingMode) => { + if (isSourceEditingMode) { + // Maybe this helps? + console.log("Entering source editing"); + const [domSourceEditingElementWrapper] = sourceEditingPlugin._replacedRoots.values(); + const textarea = domSourceEditingElementWrapper.querySelector('textarea'); + + // TODO(fspreck) this has to be more intelligent since it + // leads to an infinite update loop... + textarea.addEventListener("input", (e) => { + console.log("Input in source mode"); + // sourceEditingPlugin._updateEditorData(); + }); + } + }); } catch (error) { logger.error(error.stack); } -- GitLab