From 906574974170175be446da825d21132d2c068749 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Mon, 20 Jan 2020 16:29:58 +0100 Subject: [PATCH] OO-4478: add link in the HTML editor's toolbar of video markers --- .../core/gui/components/form/flexible/FormUIFactory.java | 6 +++--- .../impl/elements/richText/RichTextConfiguration.java | 8 ++++++-- .../form/flexible/impl/elements/richText/TinyConfig.java | 7 +++++++ .../ui/editor/interactions/MatchEditorController.java | 2 +- .../ui/editor/interactions/TrueFalseEditorController.java | 2 +- .../modules/video/ui/marker/MarkerEditController.java | 2 +- 6 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java b/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java index 2aa7fc91e42..2b16115c08c 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java @@ -854,14 +854,14 @@ public class FormUIFactory { return rte; } - public RichTextElement addRichTextElementForQTI21Match(String name, String i18nLabel, String initialHTMLValue, int rows, - int cols, VFSContainer baseContainer, FormItemContainer formLayout, UserSession usess, WindowControl wControl) { + public RichTextElement addRichTextElementVeryMinimalistic(String name, String i18nLabel, String initialHTMLValue, int rows, + int cols, boolean withLinks, VFSContainer baseContainer, FormItemContainer formLayout, UserSession usess, WindowControl wControl) { // Create rich text element with bare bone configuration RichTextElement rte = new RichTextElementImpl(name, initialHTMLValue, rows, cols, formLayout.getRootForm(), formLayout.getTranslator().getLocale()); setLabelIfNotNull(i18nLabel, rte); // Now configure editor Theme theme = wControl.getWindowBackOffice().getWindow().getGuiTheme(); - rte.getEditorConfiguration().setConfigProfileFormVeryMinimalisticConfigEditor(usess, theme, baseContainer); + rte.getEditorConfiguration().setConfigProfileFormVeryMinimalisticConfigEditor(usess, theme, baseContainer, withLinks); rte.getEditorConfiguration().setInvalidElements(RichTextConfiguration.INVALID_ELEMENTS_FORM_FULL_VALUE_UNSAVE_WITH_SCRIPT); rte.getEditorConfiguration().setExtendedValidElements("script[src|type|defer]"); rte.getEditorConfiguration().disableTinyMedia(); diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextConfiguration.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextConfiguration.java index d01ca545e98..1e0704d5b66 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextConfiguration.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextConfiguration.java @@ -274,7 +274,7 @@ public class RichTextConfiguration implements Disposable { * @param guiTheme * @param baseContainer */ - public void setConfigProfileFormVeryMinimalisticConfigEditor(UserSession usess, Theme guiTheme, VFSContainer baseContainer) { + public void setConfigProfileFormVeryMinimalisticConfigEditor(UserSession usess, Theme guiTheme, VFSContainer baseContainer, boolean withLinks) { setConfigBasics(guiTheme); // Add additional plugins TinyMCECustomPluginFactory customPluginFactory = CoreSpringFactory.getImpl(TinyMCECustomPluginFactory.class); @@ -285,7 +285,11 @@ public class RichTextConfiguration implements Disposable { // Don't allow javascript or iframes, if the file browser is there allow also media elements (the full values) setQuotedConfigValue(INVALID_ELEMENTS, (baseContainer == null ? INVALID_ELEMENTS_FORM_SIMPLE_VALUE_UNSAVE : INVALID_ELEMENTS_FORM_FULL_VALUE_UNSAVE)); - tinyConfig = TinyConfig.veryMinimalisticConfig; + if(withLinks) { + tinyConfig = TinyConfig.veryMinimalisticWithLinksConfig; + } else { + tinyConfig = TinyConfig.veryMinimalisticConfig; + } setPathInStatusBar(false); // Setup file and link browser diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TinyConfig.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TinyConfig.java index 0b13271d5a8..b0937013b11 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TinyConfig.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TinyConfig.java @@ -32,6 +32,7 @@ public class TinyConfig { protected static final TinyConfig editorCompactConfig; protected static final TinyConfig fileEditorConfig; protected static final TinyConfig minimalisticConfig; + protected static final TinyConfig veryMinimalisticWithLinksConfig; protected static final TinyConfig veryMinimalisticConfig; protected static final TinyConfig paragraphEditorConfig; @@ -72,6 +73,12 @@ public class TinyConfig { String tools1 = "bold italic underline | image olatmatheditor"; veryMinimalisticConfig = new TinyConfig(plugins, null, tools1); } + static { + String plugins = "contextmenu,colorpicker,textcolor,hr,charmap,image,insertdatetime,table,visualchars,visualblocks,noneditable,olatsmileys,paste,link,quotespliter,olatmatheditor,olatmovieviewer,tabfocus,visualchars,visualblocks,noneditable,media"; + String tools1 = "bold italic underline | image olatmatheditor | link unlink"; + veryMinimalisticWithLinksConfig = new TinyConfig(plugins, null, tools1); + } + //paragraph editor for content editor static { String plugins = "lists,contextmenu,textcolor,hr,noneditable,paste,link,olatmatheditor,tabfocus,noneditable"; diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MatchEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MatchEditorController.java index 5c0f56bb12a..a1425dda370 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MatchEditorController.java +++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MatchEditorController.java @@ -233,7 +233,7 @@ public class MatchEditorController extends FormBasicController { List<FlowStatic> choiceFlow = choice.getFlowStatics(); String choiceContent = itemBuilder.getHtmlHelper().flowStaticString(choiceFlow); String choiceId = "answer" + count++; - RichTextElement choiceEl = uifactory.addRichTextElementForQTI21Match(choiceId, "form.imd.answer", choiceContent, 4, -1, itemContainer, + RichTextElement choiceEl = uifactory.addRichTextElementVeryMinimalistic(choiceId, "form.imd.answer", choiceContent, 4, -1, false, itemContainer, answersCont, ureq.getUserSession(), getWindowControl()); choiceEl.setUserObject(choice); choiceEl.setEnabled(!readOnly); diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/TrueFalseEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/TrueFalseEditorController.java index 3c414afd1cf..a42d65b1966 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/TrueFalseEditorController.java +++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/TrueFalseEditorController.java @@ -175,7 +175,7 @@ public class TrueFalseEditorController extends FormBasicController { List<FlowStatic> choiceFlow = choice.getFlowStatics(); String choiceContent = itemBuilder.getHtmlHelper().flowStaticString(choiceFlow); String choiceId = "answer" + count++; - RichTextElement choiceEl = uifactory.addRichTextElementForQTI21Match(choiceId, "form.imd.answer", choiceContent, 4, -1, itemContainer, + RichTextElement choiceEl = uifactory.addRichTextElementVeryMinimalistic(choiceId, "form.imd.answer", choiceContent, 4, -1, false, itemContainer, answersCont, ureq.getUserSession(), getWindowControl()); choiceEl.setUserObject(choice); choiceEl.setEnabled(!readOnly); diff --git a/src/main/java/org/olat/modules/video/ui/marker/MarkerEditController.java b/src/main/java/org/olat/modules/video/ui/marker/MarkerEditController.java index 307315fa238..f3a7a42ef1e 100644 --- a/src/main/java/org/olat/modules/video/ui/marker/MarkerEditController.java +++ b/src/main/java/org/olat/modules/video/ui/marker/MarkerEditController.java @@ -118,7 +118,7 @@ public class MarkerEditController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - markerTextEl = uifactory.addRichTextElementForQTI21Match("text", "video.marker.text", "", 4, -1, null, + markerTextEl = uifactory.addRichTextElementVeryMinimalistic("text", "video.marker.text", "", 4, -1, true, null, formLayout, ureq.getUserSession(), getWindowControl()); markerTextEl.getEditorConfiguration().disableImageAndMovie(); markerTextEl.getEditorConfiguration().setSimplestTextModeAllowed(TextMode.oneLine); -- GitLab