aboutsummaryrefslogtreecommitdiffstats
path: root/templates/wiki/page_edit.html
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-06-17 13:34:24 +0100
committerGravatar Gareth Coles <[email protected]>2018-06-17 13:34:24 +0100
commite4fd198634c9924beae796b870f43dc960d18199 (patch)
tree33812fcaecee6eafed42175ae796537678ca1e64 /templates/wiki/page_edit.html
parentredeployment (diff)
[Wiki] Quick-fix for broken editor
Diffstat (limited to 'templates/wiki/page_edit.html')
-rw-r--r--templates/wiki/page_edit.html140
1 files changed, 71 insertions, 69 deletions
diff --git a/templates/wiki/page_edit.html b/templates/wiki/page_edit.html
index 70f426e1..7293b5f5 100644
--- a/templates/wiki/page_edit.html
+++ b/templates/wiki/page_edit.html
@@ -35,101 +35,103 @@
<script type="application/javascript">
"use strict";
- let csrf_token = "{{ csrf_token() }}";
+ window.onload = () => {
+ let csrf_token = "{{ csrf_token() }}";
- function do_preview(_) {
- let oReq = new XMLHttpRequest();
+ function do_preview(_) {
+ let oReq = new XMLHttpRequest();
- oReq.addEventListener("load", function() {
- let response = JSON.parse(this.responseText);
+ oReq.addEventListener("load", function () {
+ let response = JSON.parse(this.responseText);
- if (response.error !== undefined) {
- document.getElementById("submit").disabled = true;
+ if (response.error !== undefined) {
+ document.getElementById("submit").disabled = true;
- if (response.error_lines !== undefined) {
- editor.session.setAnnotations(response.error_lines);
- document.getElementById("preview-div").innerHTML ="<h3>Error - see editor margin</h3>";
+ if (response.error_lines !== undefined) {
+ editor.session.setAnnotations(response.error_lines);
+ document.getElementById("preview-div").innerHTML = "<h3>Error - see editor margin</h3>";
+ } else {
+ console.log("Error: " + response.error);
+ document.getElementById("preview-div").innerHTML = "<h3>Error</h3><p>" + response.error + "<p>";
+ }
} else {
- console.log("Error: " + response.error);
- document.getElementById("preview-div").innerHTML ="<h3>Error</h3><p>" + response.error + "<p>";
+ document.getElementById("submit").disabled = false;
+ document.getElementById("preview-div").innerHTML = response.data;
+
+ editor.session.setAnnotations([]);
}
- } else {
- document.getElementById("submit").disabled = false;
- document.getElementById("preview-div").innerHTML = response.data;
+ });
- editor.session.setAnnotations([]);
+ let data = editor.getValue();
+
+ if (data.replace("\s", "").length < 1 || document.getElementById("title").value.length < 1) {
+ document.getElementById("submit").disabled = true;
+ return false;
}
- });
- let data = editor.getValue();
+ oReq.open("POST", "/render");
- if (data.replace("\s", "").length < 1 || document.getElementById("title").value.length < 1) {
- document.getElementById("submit").disabled = true;
- return false;
- }
+ oReq.setRequestHeader("Content-type", "application/json");
+ oReq.setRequestHeader("X-CSRFToken", csrf_token);
- oReq.open("POST", "/render");
+ oReq.send(JSON.stringify({"data": editor.getValue()}));
- oReq.setRequestHeader("Content-type", "application/json");
- oReq.setRequestHeader("X-CSRFToken", csrf_token);
+ return false;
+ }
- oReq.send(JSON.stringify({"data": editor.getValue()}));
+ document.getElementById("preview").onclick = do_preview;
- return false;
- }
+ let editor = ace.edit("editor");
+ let timer;
- document.getElementById("preview").onclick = do_preview;
+ editor.session.setMode("ace/mode/rst");
+ editor.session.setUseWrapMode(true);
- let editor = ace.edit("editor");
- let timer;
+ editor.setTheme("ace/theme/iplastic");
+ editor.setShowPrintMargin(false);
- editor.session.setMode("ace/mode/rst");
- editor.session.setUseWrapMode(true);
+ editor.on("input", function () {
+ document.getElementById("submit").disabled = true;
+ document.getElementById("rst").value = editor.getValue();
- editor.setTheme("ace/theme/iplastic");
- editor.setShowPrintMargin(false);
+ if (timer !== undefined) {
+ clearTimeout(timer);
+ }
+ timer = setTimeout(do_preview, 1000);
+ });
- editor.on("input", function() {
- document.getElementById("submit").disabled = true;
- document.getElementById("rst").value = editor.getValue();
+ document.getElementById("title").oninput = function () {
+ if (document.getElementById("title").value.length < 1) {
+ document.getElementById("submit").disabled = true;
+ }
- if (timer !== undefined) {
- clearTimeout(timer);
- }
- timer = setTimeout(do_preview, 1000);
- });
+ document.getElementById("preview-title").textContent = document.getElementById("title").value;
- document.getElementById("title").oninput = function() {
- if (document.getElementById("title").value.length < 1) {
- document.getElementById("submit").disabled = true;
- }
+ document.getElementById("rst").value = editor.getValue();
- document.getElementById("preview-title").textContent = document.getElementById("title").value;
+ if (timer !== undefined) {
+ clearTimeout(timer);
+ }
+ timer = setTimeout(do_preview, 1000);
+ };
- document.getElementById("rst").value = editor.getValue();
+ function refreshLock() {
+ console.log("Refreshing lock");
+ let xhttp = new XMLHttpRequest();
+ xhttp.onreadystatechange = function () {
+ if (this.readyState === 4 && this.status === 204) {
+ console.log("Lock refreshed")
+ } else if (this.readyState === 4 && this.status !== 204) {
+ console.log("Could not refresh lock")
+ }
+ };
- if (timer !== undefined) {
- clearTimeout(timer);
+ xhttp.open("PATCH", document.location.pathname, true);
+ xhttp.send();
}
- timer = setTimeout(do_preview, 1000);
- };
-
- function refreshLock() {
- console.log("Refreshing lock");
- let xhttp = new XMLHttpRequest();
- xhttp.onreadystatechange = function() {
- if (this.readyState === 4 && this.status === 204) {
- console.log("Lock refreshed")
- } else if(this.readyState === 4 && this.status !== 204) {
- console.log("Could not refresh lock")
- }
- };
- xhttp.open("PATCH", document.location.pathname, true);
- xhttp.send();
+ // Lock refreshing
+ setInterval(refreshLock, (60 * 4) * 1000);
}
-
- // Lock refreshing
- setInterval(refreshLock, (60 * 4) * 1000)
</script>
{% endblock %}