diff options
author | 2018-08-07 15:09:08 +0100 | |
---|---|---|
committer | 2018-08-07 15:09:16 +0100 | |
commit | af54db6c136138c66cf5ca72419989525a0baa5c (patch) | |
tree | 8519aeab8d45277c51797c7dc23aacf3b56ed1bb /templates/wiki/page_edit.html | |
parent | A wizard is never late, nor is he early. (diff) |
Initial project layout for django
Diffstat (limited to 'templates/wiki/page_edit.html')
-rw-r--r-- | templates/wiki/page_edit.html | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/templates/wiki/page_edit.html b/templates/wiki/page_edit.html deleted file mode 100644 index 7293b5f5..00000000 --- a/templates/wiki/page_edit.html +++ /dev/null @@ -1,137 +0,0 @@ -{% extends "wiki/base.html" %} -{% block title %}Wiki | Edit: {{ page }}{% endblock %} -{% block og_title %}Wiki | Edit: {{ page }}{% endblock %} -{% block og_description %}{% endblock %} - -{% block page_classes %}uses-rst{% endblock %} - -{% block content %} - <form uk-grid class="uk-grid-small" action="{{ url_for("wiki.edit", page=page) }}" method="post"> - <div class="uk-width-expand"> - <input name="title" id="title" placeholder="Page Title" value="{{ title }}" class="uk-input" required /> - </div> - <div class="uk-width-auto"> - <button class="uk-button uk-button-secondary" type="button" value="Preview" id="preview">Preview</button> - </div> - <div class="uk-width-auto"> - <input class="uk-button uk-button-primary" type="submit" id="submit" value="Save" disabled /> - </div> - <div class="uk-width-1-1"> - <div id="editor" class="uk-textarea">{{ rst }}</div> - <input type="hidden" name="rst" id="rst" /> - </div> - - <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/> - </form> - - <div class="uk-container uk-container-small preview-title"> - <h2 id="preview-title">{{ title }}</h2> - - <div id="preview-div"> - {{ preview | safe }} - </div> - </div> - - <script type="application/javascript"> - "use strict"; - - window.onload = () => { - let csrf_token = "{{ csrf_token() }}"; - - function do_preview(_) { - let oReq = new XMLHttpRequest(); - - oReq.addEventListener("load", function () { - let response = JSON.parse(this.responseText); - - 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>"; - } else { - console.log("Error: " + response.error); - document.getElementById("preview-div").innerHTML = "<h3>Error</h3><p>" + response.error + "<p>"; - } - } 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; - } - - oReq.open("POST", "/render"); - - oReq.setRequestHeader("Content-type", "application/json"); - oReq.setRequestHeader("X-CSRFToken", csrf_token); - - oReq.send(JSON.stringify({"data": editor.getValue()})); - - return false; - } - - document.getElementById("preview").onclick = do_preview; - - let editor = ace.edit("editor"); - let timer; - - editor.session.setMode("ace/mode/rst"); - editor.session.setUseWrapMode(true); - - editor.setTheme("ace/theme/iplastic"); - editor.setShowPrintMargin(false); - - editor.on("input", function () { - document.getElementById("submit").disabled = true; - document.getElementById("rst").value = editor.getValue(); - - if (timer !== undefined) { - clearTimeout(timer); - } - timer = setTimeout(do_preview, 1000); - }); - - document.getElementById("title").oninput = function () { - if (document.getElementById("title").value.length < 1) { - document.getElementById("submit").disabled = true; - } - - document.getElementById("preview-title").textContent = document.getElementById("title").value; - - document.getElementById("rst").value = editor.getValue(); - - if (timer !== undefined) { - clearTimeout(timer); - } - 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); - } - </script> -{% endblock %} |