1
0
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:
Dan Brown 2019-06-07 19:21:38 +01:00
parent fdd34a74ed
commit b532ed0f86
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9

View File

@ -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;
});
}