aboutsummaryrefslogtreecommitdiffstats
path: root/templates/wiki/page_edit.html
blob: 97a5161c26c1c7167e215b214adff3c539049009 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{% extends "main/base.html" %}
{% block title %}Wiki | Home{% endblock %}
{% block og_title %}Wiki | Home{% endblock %}
{% block og_description %}Landing page for the wiki{% endblock %}
{% block content %}
    <div class="uk-container uk-section">
        <form action="{{ url_for("wiki.edit", page=page) }}" method="post">
            <label for="title">Title: </label>
            <input name="title" id="title" value="{{ title }}" class="uk-input" />
            <label for="rst">Document: </label>
            <textarea name="rst" id="rst" class="uk-textarea">{{ rst }}</textarea>
            <button value="Preview" id="preview">Preview</button>
            <button type="submit" value="Save">Save</button>
            <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
        </form>

        <div id="preview-div" style="border: 1px solid grey;">
            <p>Preview will appear here.</p>
        </div>
    </div>

    <script type="application/javascript">
        "use strict";

        let csrf_token = "{{ csrf_token() }}";

        document.getElementById("preview").onclick = function(event) {
            let oReq = new XMLHttpRequest();
            let data = document.getElementById("rst").value;

            oReq.addEventListener("load", function() {
                let response = JSON.parse(this.responseText);

                if (response.error !== undefined) {
                    console.log("Error: " + response.error)
                } else {
                    document.getElementById("preview-div").innerHTML = response.data;
                }
            });

            oReq.open("POST", "/render");

            oReq.setRequestHeader("Content-type", "application/json");
            oReq.setRequestHeader("X-CSRFToken", csrf_token);

            oReq.send(JSON.stringify({"data": data}));

            return false;
        }
    </script>
{% endblock %}