From 137f4369c2e1194da3bb733193b8636f7ae4c028 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Sun, 20 Oct 2019 23:21:17 +0200 Subject: include CodeMirror in edit page - add npm prerequisite - add codemirror through npm - add webpack trough npm to build the js bundles - add first codemirror enhenced textarea --- assets/js/edit.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'assets/js/edit.js') diff --git a/assets/js/edit.js b/assets/js/edit.js index efd29d6..7df75de 100644 --- a/assets/js/edit.js +++ b/assets/js/edit.js @@ -1,11 +1,20 @@ +import CodeMirror from "codemirror"; +import "codemirror/lib/codemirror.css"; +import "codemirror/mode/markdown/markdown.js"; + let form; let unsavedChanges = false; const pageurl = basepath + pageid; +let myCodeMirror = CodeMirror.fromTextArea(document.getElementById('main'), { + mode: 'markdown', + lineNumbers: true, +}); + window.onload = () => { form = document.getElementById('update'); let inputs = form.elements; - for (i = 0; i < inputs.length; i++) { + for (let i = 0; i < inputs.length; i++) { inputs[i].oninput = changeHandler; } -- cgit v1.2.3 From 9250000af69b5c0ddc73537ec40573df68283dcc Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Mon, 21 Oct 2019 19:44:52 +0200 Subject: move js sources to /src/ & remove old worker stuff --- assets/js/edit.js | 93 ------------------------------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 assets/js/edit.js (limited to 'assets/js/edit.js') diff --git a/assets/js/edit.js b/assets/js/edit.js deleted file mode 100644 index 7df75de..0000000 --- a/assets/js/edit.js +++ /dev/null @@ -1,93 +0,0 @@ -import CodeMirror from "codemirror"; -import "codemirror/lib/codemirror.css"; -import "codemirror/mode/markdown/markdown.js"; - -let form; -let unsavedChanges = false; -const pageurl = basepath + pageid; - -let myCodeMirror = CodeMirror.fromTextArea(document.getElementById('main'), { - mode: 'markdown', - lineNumbers: true, -}); - -window.onload = () => { - form = document.getElementById('update'); - let inputs = form.elements; - for (let i = 0; i < inputs.length; i++) { - inputs[i].oninput = changeHandler; - } - - form.addEventListener("submit", function (event) { - event.preventDefault(); - submitHandler(this); - }); - window.onkeydown = keyboardHandler; - window.onbeforeunload = confirmExit; -}; - -/** - * Manage a keyboardEvent - * @param {KeyboardEvent} e - */ -function keyboardHandler(e) { - if (e.composed) { - if (e.ctrlKey) { - switch (e.key) { - // ctrl + s - case 's': - submitHandler(form); - break; - // ctrl + d - case 'd': - url = document.getElementById('update').getAttribute('href'); - window.open(url); - break; - default: - return true; - } - e.preventDefault(); - return false; - } - } -} - -/** - * Manage change event - * @param {InputEvent} e - */ -function changeHandler(e) { - if(e.target.classList.contains("toggle")||e.target.classList.contains("checkboxtab")) { - return; - } - unsavedChanges = true; -} - -/** - * Manage submit event - * @param {HTMLFormElement} form - */ -function submitHandler(form) { - var xhr = new XMLHttpRequest(); - var fd = new FormData(form); - - xhr.addEventListener("load", function(event) { - unsavedChanges = false; - alert("updated"); - }); - xhr.addEventListener("error", function(event) { - alert('Error while trying to update.'); - }); - xhr.open(form.method, form.action); - xhr.send(fd); -} - -/** - * Manage a beforeUnloadEvent - * @param {BeforeUnloadEvent} e - */ -function confirmExit(e) { - if (unsavedChanges) { - return 'You have unsaved changes, do you really want to leave this page?'; - } -} -- cgit v1.2.3