aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pysite/views/wiki/edit.py5
-rw-r--r--templates/wiki/page_edit.html9
2 files changed, 13 insertions, 1 deletions
diff --git a/pysite/views/wiki/edit.py b/pysite/views/wiki/edit.py
index a2e98e20..0d70fed5 100644
--- a/pysite/views/wiki/edit.py
+++ b/pysite/views/wiki/edit.py
@@ -1,5 +1,6 @@
# coding=utf-8
from flask import request, url_for
+from werkzeug.exceptions import BadRequest
from werkzeug.utils import redirect
from pysite.base_route import RouteView
@@ -35,6 +36,10 @@ class EditView(RouteView, DBMixin):
@csrf
def post(self, page):
rst = request.form["rst"]
+
+ if not rst.strip():
+ raise BadRequest()
+
rendered = render(rst)
obj = {
diff --git a/templates/wiki/page_edit.html b/templates/wiki/page_edit.html
index b797577d..b59a8912 100644
--- a/templates/wiki/page_edit.html
+++ b/templates/wiki/page_edit.html
@@ -14,7 +14,7 @@
<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" />
+ <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" style="resize: vertical; min-height: 15rem;">{{ rst }}</div>
@@ -61,6 +61,13 @@
}
});
+ let data = editor.getValue();
+
+ if (data.replace("\s", "").length < 1) {
+ document.getElementById("submit").disabled = true;
+ return false;
+ }
+
oReq.open("POST", "/render");
oReq.setRequestHeader("Content-type", "application/json");