From c421e75f5597b2c1928647c2ef93ff5193af9dfa Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 9 Nov 2024 14:49:05 +0200 Subject: [PATCH] client: Respect editor type choice --- .../app/widgets/type_widgets/editable_text.js | 14 ++++++++------ .../type_widgets/options/text_notes/editor.js | 6 ++++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/public/app/widgets/type_widgets/editable_text.js b/src/public/app/widgets/type_widgets/editable_text.js index e8c129c92..e9c32a3ea 100644 --- a/src/public/app/widgets/type_widgets/editable_text.js +++ b/src/public/app/widgets/type_widgets/editable_text.js @@ -12,7 +12,6 @@ import appContext from "../../components/app_context.js"; import dialogService from "../../services/dialog.js"; import { initSyntaxHighlighting } from "./ckeditor/syntax_highlight.js"; import options from "../../services/options.js"; -import { isSyntaxHighlightEnabled } from "../../services/syntax_highlight.js"; const ENABLE_INSPECTOR = false; @@ -131,7 +130,8 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget { async initEditor() { await libraryLoader.requireLibrary(libraryLoader.CKEDITOR); - const editorClass = CKEditor.DecoupledEditor; + const isClassicEditor = (options.get("textNoteEditorType") === "ckeditor-classic") + const editorClass = (isClassicEditor ? CKEditor.DecoupledEditor : CKEditor.BalloonEditor); const codeBlockLanguages = buildListOfLanguages(); @@ -180,10 +180,12 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget { await initSyntaxHighlighting(editor); - const $parentSplit = this.$widget.parents(".note-split.type-text"); - const $classicToolbarWidget = $parentSplit.find("> .ribbon-container .classic-toolbar-widget"); - $classicToolbarWidget.empty(); - $classicToolbarWidget[0].appendChild(editor.ui.view.toolbar.element); + if (isClassicEditor) { + const $parentSplit = this.$widget.parents(".note-split.type-text"); + const $classicToolbarWidget = $parentSplit.find("> .ribbon-container .classic-toolbar-widget"); + $classicToolbarWidget.empty(); + $classicToolbarWidget[0].appendChild(editor.ui.view.toolbar.element); + } editor.model.document.on('change:data', () => this.spacedUpdate.scheduleUpdate()); diff --git a/src/public/app/widgets/type_widgets/options/text_notes/editor.js b/src/public/app/widgets/type_widgets/options/text_notes/editor.js index 559328630..1ecbc5078 100644 --- a/src/public/app/widgets/type_widgets/options/text_notes/editor.js +++ b/src/public/app/widgets/type_widgets/options/text_notes/editor.js @@ -1,3 +1,4 @@ +import utils from "../../../../services/utils.js"; import OptionsWidget from "../options_widget.js"; const TPL = ` @@ -20,9 +21,10 @@ export default class EditorOptions extends OptionsWidget { this.$widget = $(TPL); this.$body = $("body"); this.$editorType = this.$widget.find(".editor-type-select"); - this.$editorType.on('change', () => { + this.$editorType.on('change', async () => { const newEditorType = this.$editorType.val(); - this.updateOption('textNoteEditorType', newEditorType); + await this.updateOption('textNoteEditorType', newEditorType); + utils.reloadFrontendApp("editor type change"); }); }