From 3d3ee5da8141ec282e69be60eed020b44e3abf86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com> Date: Fri, 20 Dec 2019 08:24:15 +0100 Subject: [PATCH] monaco: support non editable mode by setting "readOnly" to true. Monaco also supports applying its style to a <pre> element (like on https://microsoft.github.io/monaco-editor/playground.html#creating-the-editor-syntax-highlighting-for-html-elements ) but it would be a too big architecture change, a readOnly editor is enough. --- .../portal_skins/erp5_monaco_editor/monaco-editor.gadget.js.js | 2 ++ .../SkinTemplateItem/portal_skins/erp5_core/gadget_editor.js.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/bt5/erp5_monaco_editor/SkinTemplateItem/portal_skins/erp5_monaco_editor/monaco-editor.gadget.js.js b/bt5/erp5_monaco_editor/SkinTemplateItem/portal_skins/erp5_monaco_editor/monaco-editor.gadget.js.js index bfd6704ea7..bdbfc3610e 100644 --- a/bt5/erp5_monaco_editor/SkinTemplateItem/portal_skins/erp5_monaco_editor/monaco-editor.gadget.js.js +++ b/bt5/erp5_monaco_editor/SkinTemplateItem/portal_skins/erp5_monaco_editor/monaco-editor.gadget.js.js @@ -171,6 +171,8 @@ .push(addExtraLibrary('./monaco-renderjs.d.ts', 'renderjs')) .push(addExtraLibrary('./monaco-jio.d.ts', 'jio')); } + if (modification_dict.hasOwnProperty('editable')){ + gadget.editor.updateOptions({readOnly: !this.state.editable}); } return queue; }) diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/gadget_editor.js.js b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/gadget_editor.js.js index b24a85c4fa..dfc467049e 100644 --- a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/gadget_editor.js.js +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/gadget_editor.js.js @@ -112,6 +112,7 @@ lockGadgetInQueue, unlockGadgetInQueue, unlockGadgetInFailedQueue*/ (editor_dict.hasOwnProperty(gadget.state.editor))) || (!gadget.state.editable && gadget.state.editor === 'fck_editor') || (!gadget.state.editable && gadget.state.editor === 'jsmd_editor') || + (!gadget.state.editable && gadget.state.editor === 'monaco') || (gadget.state.editor === 'pdf')) { queue .push(function () { @@ -143,6 +144,7 @@ lockGadgetInQueue, unlockGadgetInQueue, unlockGadgetInFailedQueue*/ (editor_dict.hasOwnProperty(gadget.state.editor))) || (!gadget.state.editable && gadget.state.editor === 'fck_editor') || (!gadget.state.editable && gadget.state.editor === 'jsmd_editor') || + (!gadget.state.editable && gadget.state.editor === 'monaco') || (gadget.state.editor === 'pdf')) { queue .push(function () { -- 2.30.9