aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-04-07 15:33:20 +0100
committerGravatar Gareth Coles <[email protected]>2018-04-07 15:33:20 +0100
commit004d9e30eb02457af7db72a144628d3292af6431 (patch)
tree8e4ff646502c5e553008e73a8c052e639cde43dc
parentConsiderable progress on the wiki (diff)
Display improvements
-rw-r--r--pysite/views/wiki/edit.py4
-rw-r--r--pysite/views/wiki/page.py4
-rw-r--r--templates/wiki/base.html15
-rw-r--r--templates/wiki/index.html9
-rw-r--r--templates/wiki/page_edit.html16
-rw-r--r--templates/wiki/page_view.html6
6 files changed, 33 insertions, 21 deletions
diff --git a/pysite/views/wiki/edit.py b/pysite/views/wiki/edit.py
index 4a87044c..089da58d 100644
--- a/pysite/views/wiki/edit.py
+++ b/pysite/views/wiki/edit.py
@@ -20,14 +20,16 @@ class EditView(RouteView, DBMixin):
def get(self, page):
rst = ""
title = ""
+ preview = "<p>Preview will appear here.</p>"
obj = self.db.get(self.table_name, page)
if obj:
rst = obj["rst"]
title = obj["title"]
+ preview = obj["html"]
- return self.render("wiki/page_edit.html", page=page, rst=rst, title=title)
+ return self.render("wiki/page_edit.html", page=page, rst=rst, title=title, preview=preview)
@require_roles(*ALL_STAFF_ROLES)
@csrf
diff --git a/pysite/views/wiki/page.py b/pysite/views/wiki/page.py
index 66afd283..aa26a725 100644
--- a/pysite/views/wiki/page.py
+++ b/pysite/views/wiki/page.py
@@ -19,10 +19,10 @@ class PageView(RouteView, DBMixin):
if obj is None:
if self.is_staff():
- return redirect(url_for("wiki.edit", page=page))
+ return redirect(url_for("wiki.edit", page=page, can_edit=False))
raise NotFound()
- return self.render("wiki/page_view.html", page=page, data=obj)
+ return self.render("wiki/page_view.html", page=page, data=obj, can_edit=self.is_staff())
def is_staff(self):
if not self.logged_in:
diff --git a/templates/wiki/base.html b/templates/wiki/base.html
index 32d58341..dd3c1dff 100644
--- a/templates/wiki/base.html
+++ b/templates/wiki/base.html
@@ -26,6 +26,21 @@
<div class="uk-flex uk-flex-row" style="height: 100%;">
<div class="uk-card uk-card-body uk-flex-left uk-flex">
<ul class="uk-nav-default uk-nav-parent-icon" uk-nav>
+ {% if can_edit and current_page == "page" %}
+ <li>
+ <a href="{{ url_for("wiki.edit", page=page) }}">
+ <i class="fas fa-pencil-alt"></i> &nbsp;Edit Page
+ </a>
+ </li>
+ <li class="uk-nav-divider"></li>
+ {% elif current_page == "edit" %}
+ <li>
+ <a href="{{ url_for("wiki.page", page=page) }}">
+ <i class="fas fa-arrow-left fa-fw"></i> &nbsp;View Page
+ </a>
+ </li>
+ <li class="uk-nav-divider"></li>
+ {% endif %}
<li class="uk-active"><a href="#">Placeholder</a></li>
<li class="uk-parent">
<a href="#">Parent</a>
diff --git a/templates/wiki/index.html b/templates/wiki/index.html
deleted file mode 100644
index 27e94d61..00000000
--- a/templates/wiki/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
-{% extends "wiki/base.html" %}
-{% block title %}Wiki | Home{% endblock %}
-{% block og_title %}Wiki | Home{% endblock %}
-{% block og_description %}Landing page for the wiki{% endblock %}
-{% block content %}
- <h1 class="uk-title uk-text-center">
- Placeholder text.
- </h1>
-{% endblock %} \ No newline at end of file
diff --git a/templates/wiki/page_edit.html b/templates/wiki/page_edit.html
index 37aadc13..7610be34 100644
--- a/templates/wiki/page_edit.html
+++ b/templates/wiki/page_edit.html
@@ -1,6 +1,6 @@
{% extends "wiki/base.html" %}
-{% block title %}Wiki | Home{% endblock %}
-{% block og_title %}Wiki | Home{% endblock %}
+{% block title %}Wiki | Edit: {{ page }}{% endblock %}
+{% block og_title %}Wiki | Edit: {{ page }}{% endblock %}
{% block og_description %}Landing page for the wiki{% endblock %}
{% block extra_head %}
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/ace.js" type="application/javascript"></script>
@@ -17,17 +17,17 @@
<input class="uk-button uk-button-primary" type="submit" value="Save" />
</div>
<div class="uk-width-1-1">
- <div id="editor" class="uk-textarea" style="resize: vertical; min-height: 10rem;">{{ rst }}</div>
+ <div id="editor" class="uk-textarea" style="resize: vertical; min-height: 15rem;">{{ rst }}</div>
<input type="hidden" name="rst" id="rst" />
</div>
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
</form>
- <h2 class="uk-h2">Preview</h2>
+ <h2>Preview</h2>
- <div id="preview-div">
- <p>Preview will appear here.</p>
+ <div class="uk-alert preview-div" style="padding: 1rem 1rem 0.1rem;">
+ {{ preview | safe }}
</div>
<script type="application/javascript">
@@ -69,7 +69,11 @@
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("rst").value = editor.getValue();
diff --git a/templates/wiki/page_view.html b/templates/wiki/page_view.html
index 98c6f4cd..9c49a09e 100644
--- a/templates/wiki/page_view.html
+++ b/templates/wiki/page_view.html
@@ -1,7 +1,7 @@
{% extends "wiki/base.html" %}
-{% block title %}Wiki | Home{% endblock %}
-{% block og_title %}Wiki | Home{% endblock %}
-{% block og_description %}Landing page for the wiki{% endblock %}
+{% block title %}Wiki | {{ data["title"] }}{% endblock %}
+{% block og_title %}Wiki | {{ data["title"] }}{% endblock %}
+{% block og_description %}{% endblock %}
{% block content %}
<div class="uk-container uk-container-small">
<h2 class="uk-title">