Skip to content
Snippets Groups Projects
Commit a0b4395b authored by Marcus Eibrink-Lunzenauer's avatar Marcus Eibrink-Lunzenauer Committed by David Siegfried
Browse files

Un-hack the customization of CKE5, refs #1513

Closes #1513

Merge request studip/studip!998
parent 417b56d7
No related branches found
No related tags found
No related merge requests found
...@@ -53,7 +53,6 @@ import Mathematics from 'ckeditor5-math/src/math'; ...@@ -53,7 +53,6 @@ import Mathematics from 'ckeditor5-math/src/math';
import StudipA11YDialog, { updateVoiceLabel } from '../cke/studip-a11y-dialog/a11y-dialog.js'; import StudipA11YDialog, { updateVoiceLabel } from '../cke/studip-a11y-dialog/a11y-dialog.js';
import StudipBlockQuote from '../cke/studip-quote/StudipBlockQuote.js'; import StudipBlockQuote from '../cke/studip-quote/StudipBlockQuote.js';
import StudipUpload from '../cke/StudipUpload.js'; import StudipUpload from '../cke/StudipUpload.js';
import StudipWikiLink from '../cke/wiki-link/wiki-link.js';
import SpecialCharactersEmojiFood from '../cke/special_characters/SpecialCharactersEmojiFood.js'; import SpecialCharactersEmojiFood from '../cke/special_characters/SpecialCharactersEmojiFood.js';
import SpecialCharactersEmojiNature from '../cke/special_characters/SpecialCharactersEmojiNature.js'; import SpecialCharactersEmojiNature from '../cke/special_characters/SpecialCharactersEmojiNature.js';
import SpecialCharactersEmojiObjects from '../cke/special_characters/SpecialCharactersEmojiObjects.js'; import SpecialCharactersEmojiObjects from '../cke/special_characters/SpecialCharactersEmojiObjects.js';
...@@ -123,7 +122,6 @@ ClassicEditor.builtinPlugins = [ ...@@ -123,7 +122,6 @@ ClassicEditor.builtinPlugins = [
Underline, Underline,
FileRepository, FileRepository,
StudipA11YDialog, StudipA11YDialog,
StudipWikiLink,
]; ];
const customColorPalette = [ const customColorPalette = [
......
...@@ -35,7 +35,9 @@ class StudipUploadAdapter { ...@@ -35,7 +35,9 @@ class StudipUploadAdapter {
} }
export default function StudipUpload(editor) { export default function StudipUpload(editor) {
editor.plugins.get('FileRepository').createUploadAdapter = (loader) => { if (editor.plugins.has('FileRepository')) {
return new StudipUploadAdapter(loader); editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {
}; return new StudipUploadAdapter(loader);
};
}
} }
...@@ -134,4 +134,8 @@ class RemoveStudipQuoteCommand extends Command { ...@@ -134,4 +134,8 @@ class RemoveStudipQuoteCommand extends Command {
}); });
} }
} }
static get pluginName() {
return 'StudipBlockQuote';
}
} }
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
* wysiwyg.js - Replace HTML textareas with WYSIWYG editor. * wysiwyg.js - Replace HTML textareas with WYSIWYG editor.
*/ */
import parseOptions from './parse_options.js'; import parseOptions from './parse_options.js';
import WikiLink from '../cke/wiki-link/wiki-link.js';
const wysiwyg = { const wysiwyg = {
// NOTE keep this function in sync with Markup class // NOTE keep this function in sync with Markup class
...@@ -59,8 +60,24 @@ function replaceTextarea(textarea) { ...@@ -59,8 +60,24 @@ function replaceTextarea(textarea) {
setEditor(textarea, {}); setEditor(textarea, {});
const $textarea = textarea instanceof jQuery ? textarea : $(textarea); const $textarea = textarea instanceof jQuery ? textarea : $(textarea);
// fetch ckeditor configuration let options = {};
const options = $textarea.attr('data-editor') ? parseOptions($textarea.attr('data-editor')) : null; if ($textarea.attr('data-editor')) {
const parsed = parseOptions($textarea.attr('data-editor'));
if (parsed.removePlugins) {
options.removePlugins = parsed.removePlugins.split(",")
}
if (parsed.extraPlugins) {
const pluginMap = { WikiLink };
options.extraPlugins = parsed.extraPlugins.split(",").reduce((memo, plugin) => {
if (plugin in pluginMap) {
memo.push(pluginMap[plugin]);
}
return memo;
}, []);
}
}
return STUDIP.loadChunk('wysiwyg') return STUDIP.loadChunk('wysiwyg')
.then(loadMathJax) .then(loadMathJax)
...@@ -70,10 +87,7 @@ function replaceTextarea(textarea) { ...@@ -70,10 +87,7 @@ function replaceTextarea(textarea) {
.then(emitLoadEvent); .then(emitLoadEvent);
function createEditor(ClassicEditor) { function createEditor(ClassicEditor) {
// TODO: Das ist einfach nur gehackt. return ClassicEditor.create(textarea, options);
const config = { removePlugins: options?.extraPlugins === 'studip-wiki' ? [] : ['WikiLink'] };
return ClassicEditor.create(textarea, config);
} }
function setEditorInstance(ckeditor) { function setEditorInstance(ckeditor) {
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<input type="hidden" name="cmd" value="show"> <input type="hidden" name="cmd" value="show">
<br> <br>
<textarea name="body" class="wiki-editor add_toolbar wysiwyg size-l" data-editor="extraPlugins=studip-wiki" <textarea name="body" class="wiki-editor add_toolbar wysiwyg size-l" data-editor="extraPlugins=WikiLink"
><?= wysiwygReady($body) ?></textarea> ><?= wysiwygReady($body) ?></textarea>
</fieldset> </fieldset>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment