mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-10-30 07:32:39 +01:00
Removed jquery usage from wysiwyg editor JS
This commit is contained in:
parent
fdd34a74ed
commit
b532ed0f86
@ -168,23 +168,24 @@ function codePlugin() {
|
||||
});
|
||||
}
|
||||
|
||||
function codeMirrorContainerToPre($codeMirrorContainer) {
|
||||
let textArea = $codeMirrorContainer[0].querySelector('textarea');
|
||||
let code = textArea.textContent;
|
||||
let lang = $codeMirrorContainer[0].getAttribute('data-lang');
|
||||
function codeMirrorContainerToPre(codeMirrorContainer) {
|
||||
const textArea = codeMirrorContainer.querySelector('textarea');
|
||||
const code = textArea.textContent;
|
||||
const lang = codeMirrorContainer.getAttribute('data-lang');
|
||||
|
||||
$codeMirrorContainer.removeAttr('contentEditable');
|
||||
let $pre = $('<pre></pre>');
|
||||
$pre.append($('<code></code>').each((index, elem) => {
|
||||
// Needs to be textContent since innerText produces BR:s
|
||||
elem.textContent = code;
|
||||
}).attr('class', `language-${lang}`));
|
||||
$codeMirrorContainer.replaceWith($pre);
|
||||
codeMirrorContainer.removeAttribute('contentEditable');
|
||||
const pre = document.createElement('pre');
|
||||
const codeElem = document.createElement('code');
|
||||
codeElem.classList.add(`language-${lang}`);
|
||||
codeElem.textContent = code;
|
||||
pre.appendChild(codeElem);
|
||||
|
||||
codeMirrorContainer.parentElement.replaceChild(pre, codeMirrorContainer);
|
||||
}
|
||||
|
||||
window.tinymce.PluginManager.add('codeeditor', function(editor, url) {
|
||||
|
||||
let $ = editor.$;
|
||||
const $ = editor.$;
|
||||
|
||||
editor.addButton('codeeditor', {
|
||||
text: 'Code block',
|
||||
@ -198,10 +199,8 @@ function codePlugin() {
|
||||
|
||||
// Convert
|
||||
editor.on('PreProcess', function (e) {
|
||||
$('div.CodeMirrorContainer', e.node).
|
||||
each((index, elem) => {
|
||||
let $elem = $(elem);
|
||||
codeMirrorContainerToPre($elem);
|
||||
$('div.CodeMirrorContainer', e.node).each((index, elem) => {
|
||||
codeMirrorContainerToPre(elem);
|
||||
});
|
||||
});
|
||||
|
||||
@ -217,10 +216,10 @@ function codePlugin() {
|
||||
$('.CodeMirrorContainer').filter((index ,elem) => {
|
||||
return typeof elem.querySelector('.CodeMirror').CodeMirror === 'undefined';
|
||||
}).each((index, elem) => {
|
||||
codeMirrorContainerToPre($(elem));
|
||||
codeMirrorContainerToPre(elem);
|
||||
});
|
||||
|
||||
let codeSamples = $('body > pre').filter((index, elem) => {
|
||||
const codeSamples = $('body > pre').filter((index, elem) => {
|
||||
return elem.contentEditable !== "false";
|
||||
});
|
||||
|
||||
@ -341,7 +340,7 @@ function drawIoPlugin() {
|
||||
});
|
||||
|
||||
editor.on('SetContent', function () {
|
||||
let drawings = editor.$('body > div[drawio-diagram]');
|
||||
const drawings = editor.$('body > div[drawio-diagram]');
|
||||
if (!drawings.length) return;
|
||||
|
||||
editor.undoManager.transact(function () {
|
||||
@ -472,9 +471,10 @@ class WysiwygEditor {
|
||||
|
||||
if (type === 'file') {
|
||||
window.EntitySelectorPopup.show(function(entity) {
|
||||
let originalField = win.document.getElementById(field_name);
|
||||
const originalField = win.document.getElementById(field_name);
|
||||
originalField.value = entity.link;
|
||||
$(originalField).closest('.mce-form').find('input').eq(2).val(entity.name);
|
||||
const mceForm = originalField.closest('.mce-form');
|
||||
mceForm.querySelectorAll('input')[2].value = entity.name;
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user