From 57182eb9a6a1d4cbfb8acd109a736b7fdf5037d4 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Sun, 23 Sep 2018 11:22:54 +0100 Subject: [PATCH] Much better error page --- resources/templates/error.html | 26 +++++++----------------- src/clj/youyesyet/layout.clj | 36 ++++++++++++++++++++++------------ 2 files changed, 30 insertions(+), 32 deletions(-) diff --git a/resources/templates/error.html b/resources/templates/error.html index f811553..505310c 100644 --- a/resources/templates/error.html +++ b/resources/templates/error.html @@ -2,24 +2,12 @@ {% block big-links %} {% endblock %} {% block content %} - -
-
-
-
-
-

Error: {{status}}

-
- {% if title %} -

{{title}}

- {% endif %} - {% if message %} -

{{message}}

- {% endif %} -
-
-
-
-
+ {% if status %} +

Error: {{status}}

+ {% endif %} +
+ {% if error %} +

{{error}}

+ {% endif %} {% endblock %} diff --git a/src/clj/youyesyet/layout.clj b/src/clj/youyesyet/layout.clj index 744fca2..3254100 100644 --- a/src/clj/youyesyet/layout.clj +++ b/src/clj/youyesyet/layout.clj @@ -89,19 +89,19 @@ "renders the HTML `template` located relative to resources/templates in the context of this session and with these parameters." [template & [params]] - (log/debug (str "layout/render: template: '" template "'")) - (content-type - (ok - (parser/render-file - template - (merge params + (log/debug (str "layout/render: template: '" template "'")) + (content-type + (ok + (parser/render-file + template + (merge params {:page template - :csrf-token *anti-forgery-token* - :user *user* - :user-roles (get-user-roles *user*) - :site-title (:site-title env) - :version (System/getProperty "youyesyet.version")}))) - "text/html; charset=utf-8")) + :csrf-token *anti-forgery-token* + :user *user* + :user-roles (get-user-roles *user*) + :site-title (:site-title env) + :version (System/getProperty "youyesyet.version")}))) + "text/html; charset=utf-8")) @@ -113,6 +113,16 @@ returns a response map with the error page as the body and the status specified by the status key" [error-details] + (log/debug "Showing error page: " error-details) {:status (:status error-details) :headers {"Content-Type" "text/html; charset=utf-8"} - :body (render "error.html" {} error-details)}) + :body (parser/render-file + "error.html" + (assoc + error-details + :site-title (:site-title env) + :title + (str "Apologies, we have a problem: " + (:title error-details)) + :error (:message error-details) + :message nil))})