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) {
|
function codeMirrorContainerToPre(codeMirrorContainer) {
|
||||||
let textArea = $codeMirrorContainer[0].querySelector('textarea');
|
const textArea = codeMirrorContainer.querySelector('textarea');
|
||||||
let code = textArea.textContent;
|
const code = textArea.textContent;
|
||||||
let lang = $codeMirrorContainer[0].getAttribute('data-lang');
|
const lang = codeMirrorContainer.getAttribute('data-lang');
|
||||||
|
|
||||||
$codeMirrorContainer.removeAttr('contentEditable');
|
codeMirrorContainer.removeAttribute('contentEditable');
|
||||||
let $pre = $('<pre></pre>');
|
const pre = document.createElement('pre');
|
||||||
$pre.append($('<code></code>').each((index, elem) => {
|
const codeElem = document.createElement('code');
|
||||||
// Needs to be textContent since innerText produces BR:s
|
codeElem.classList.add(`language-${lang}`);
|
||||||
elem.textContent = code;
|
codeElem.textContent = code;
|
||||||
}).attr('class', `language-${lang}`));
|
pre.appendChild(codeElem);
|
||||||
$codeMirrorContainer.replaceWith($pre);
|
|
||||||
|
codeMirrorContainer.parentElement.replaceChild(pre, codeMirrorContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
window.tinymce.PluginManager.add('codeeditor', function(editor, url) {
|
window.tinymce.PluginManager.add('codeeditor', function(editor, url) {
|
||||||
|
|
||||||
let $ = editor.$;
|
const $ = editor.$;
|
||||||
|
|
||||||
editor.addButton('codeeditor', {
|
editor.addButton('codeeditor', {
|
||||||
text: 'Code block',
|
text: 'Code block',
|
||||||
@ -198,10 +199,8 @@ function codePlugin() {
|
|||||||
|
|
||||||
// Convert
|
// Convert
|
||||||
editor.on('PreProcess', function (e) {
|
editor.on('PreProcess', function (e) {
|
||||||
$('div.CodeMirrorContainer', e.node).
|
$('div.CodeMirrorContainer', e.node).each((index, elem) => {
|
||||||
each((index, elem) => {
|
codeMirrorContainerToPre(elem);
|
||||||
let $elem = $(elem);
|
|
||||||
codeMirrorContainerToPre($elem);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -217,10 +216,10 @@ function codePlugin() {
|
|||||||
$('.CodeMirrorContainer').filter((index ,elem) => {
|
$('.CodeMirrorContainer').filter((index ,elem) => {
|
||||||
return typeof elem.querySelector('.CodeMirror').CodeMirror === 'undefined';
|
return typeof elem.querySelector('.CodeMirror').CodeMirror === 'undefined';
|
||||||
}).each((index, elem) => {
|
}).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";
|
return elem.contentEditable !== "false";
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -341,7 +340,7 @@ function drawIoPlugin() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
editor.on('SetContent', function () {
|
editor.on('SetContent', function () {
|
||||||
let drawings = editor.$('body > div[drawio-diagram]');
|
const drawings = editor.$('body > div[drawio-diagram]');
|
||||||
if (!drawings.length) return;
|
if (!drawings.length) return;
|
||||||
|
|
||||||
editor.undoManager.transact(function () {
|
editor.undoManager.transact(function () {
|
||||||
@ -472,9 +471,10 @@ class WysiwygEditor {
|
|||||||
|
|
||||||
if (type === 'file') {
|
if (type === 'file') {
|
||||||
window.EntitySelectorPopup.show(function(entity) {
|
window.EntitySelectorPopup.show(function(entity) {
|
||||||
let originalField = win.document.getElementById(field_name);
|
const originalField = win.document.getElementById(field_name);
|
||||||
originalField.value = entity.link;
|
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