2022-07-30 16:24:28 +02:00
|
|
|
import EasyMDE from "easymde";
|
|
|
|
|
|
|
|
import {InjectCSS, register, ReplaceElements} from '@fortawesome/fontawesome-svg-core/plugins'
|
|
|
|
import {
|
|
|
|
faArrowsAlt,
|
|
|
|
faBold,
|
|
|
|
faColumns,
|
|
|
|
faEye,
|
|
|
|
faHeading,
|
|
|
|
faImage,
|
|
|
|
faItalic,
|
|
|
|
faLink,
|
|
|
|
faListOl,
|
|
|
|
faListUl,
|
|
|
|
faQuestionCircle,
|
|
|
|
faQuoteLeft
|
|
|
|
} from '@fortawesome/free-solid-svg-icons'
|
|
|
|
|
|
|
|
|
|
|
|
const api = register([InjectCSS, ReplaceElements])
|
|
|
|
api.library.add(
|
|
|
|
faBold, faItalic, faHeading, faQuoteLeft, faListUl, faListOl, faLink, faImage,
|
|
|
|
faEye, faColumns, faArrowsAlt, faQuestionCircle,
|
|
|
|
)
|
2021-08-28 19:52:07 +02:00
|
|
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function () {
|
2022-07-30 16:24:28 +02:00
|
|
|
|
2022-07-04 00:35:01 +02:00
|
|
|
const csrftoken = document.querySelector('[name=csrfmiddlewaretoken]').value;
|
2021-08-28 19:52:07 +02:00
|
|
|
const ids = ["id_description_md"];
|
|
|
|
ids.forEach(function (id) {
|
|
|
|
const element = document.getElementById(id);
|
|
|
|
if (!element) {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
const easyMDE = new EasyMDE({
|
|
|
|
element: element,
|
|
|
|
forceSync: true, // for "required" to work
|
|
|
|
spellChecker: false,
|
|
|
|
nativeSpellcheck: true,
|
|
|
|
autoDownloadFontAwesome: false,
|
|
|
|
autosave: {
|
|
|
|
delay: 1000,
|
|
|
|
submit_delay: 5000,
|
|
|
|
timeFormat: {
|
|
|
|
locale: 'de-AT',
|
|
|
|
format: {
|
|
|
|
year: 'numeric',
|
|
|
|
month: 'long',
|
|
|
|
day: '2-digit',
|
|
|
|
hour: '2-digit',
|
|
|
|
minute: '2-digit',
|
|
|
|
second: '2-digit',
|
|
|
|
},
|
|
|
|
},
|
2022-07-04 00:35:01 +02:00
|
|
|
},
|
|
|
|
inputStyle: "contenteditable",
|
|
|
|
status: ["lines", "words", "cursor", "saveStatus"],
|
2021-08-28 19:52:07 +02:00
|
|
|
});
|
2022-07-04 00:35:01 +02:00
|
|
|
window.editor = easyMDE
|
|
|
|
setInterval(function () {
|
|
|
|
const content = easyMDE.value();
|
|
|
|
fetch("/api/draft/save", {
|
|
|
|
method: "POST",
|
|
|
|
body: JSON.stringify({
|
|
|
|
"draft_md": content
|
|
|
|
}),
|
|
|
|
headers: {'X-CSRFToken': csrftoken},
|
|
|
|
})
|
|
|
|
.then(response => response.json())
|
|
|
|
.then(data => {
|
|
|
|
easyMDE.updateStatusBar("saveStatus", data.message)
|
|
|
|
setTimeout(e => easyMDE.updateStatusBar("saveStatus", ""), 5000)
|
|
|
|
}).catch(e => {
|
|
|
|
easyMDE.updateStatusBar("saveStatus", "error saving draft")
|
|
|
|
})
|
|
|
|
|
|
|
|
}, 1000 * 30)
|
2021-08-28 19:52:07 +02:00
|
|
|
});
|
2022-07-30 16:24:28 +02:00
|
|
|
api.dom.i2svg()
|
2021-08-28 19:52:07 +02:00
|
|
|
});
|