diff options
-rw-r--r-- | pysite/views/wiki/edit.py | 5 | ||||
-rw-r--r-- | templates/wiki/page_edit.html | 9 |
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"); |