]> git.ipfire.org Git - ipfire.org.git/commitdiff
Add a simple error page
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 31 Aug 2018 16:32:20 +0000 (17:32 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 31 Aug 2018 16:32:20 +0000 (17:32 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
src/templates/error-404.html [deleted file]
src/templates/error-500.html [deleted file]
src/templates/error.html
src/web/__init__.py
src/web/handlers_base.py

index 65c85c50c46a8863a32fc771a7ec4c781ba55584..ed421521325f33334352c27acb67697879d8c6aa 100644 (file)
@@ -98,9 +98,7 @@ webdir = $(backenddir)/web
 templates_DATA = \
        src/templates/base.html \
        src/templates/donate.html \
-       src/templates/error.html \
-       src/templates/error-404.html \
-       src/templates/error-500.html \
+       src/templates/error.html
        src/templates/index.html
 
 templatesdir = $(datadir)/templates
diff --git a/src/templates/error-404.html b/src/templates/error-404.html
deleted file mode 100644 (file)
index 0535c63..0000000
+++ /dev/null
@@ -1 +0,0 @@
-{% extends "error.html" %}
diff --git a/src/templates/error-500.html b/src/templates/error-500.html
deleted file mode 100644 (file)
index 5a48f4c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{% extends "error.html" %}
-
-{% block explanation %}
-       <div class="row">
-               <div class="col-md-8 offset-2">
-                       <h4>{{ _("Detailed information") }}</h4>
-
-                       <p>
-                               {{ _("While processing the request, there was an internal problem of the web server") }}
-                       </p>
-               </div>
-       </div>
-{% end block %}
index 405a28a463838f1056f0d81ecc5835065a5d9ec7..970257706cf896902722ff7aba00a826ace39238 100644 (file)
@@ -1,34 +1,16 @@
 {% extends "base.html" %}
 
-{% block title %}{{ _("Error") }} {{ code }}{% end block %}
+{% block title %}{{ message or status_code }}{% end block %}
 
 {% block container %}
-<div class="container">
-       <section class="features-content col-12">
-               <h2 class="display-2 text-center">{{ code }} - {{ message }}</h2>
-               
-               <div class="row mb-6">
-                       <div class="col-md-8 offset-md-2">
-                               <p class="lead">
-                                       {{ _("Unfortunately, an unexpected error has occurred during page load.") }}
-                               </p>
-                               <p>
-                                       If this is the first occurrence of the error, please wait a little bit
-                                       and try again. If the error occurs anyway the webmaster would be happy
-                                       to get a notification about this.
-                               </p>
+       <div class="container">
+               <div class="row justify-content-center mt-5">
+                       <div class="col col-md-5">
+                               <h5 class="mb-0">{{ _("Error %s") % status_code }}</h5>
+                               <h1>{{ _("oops, something went wrong") }}</h1>
                        </div>
                </div>
-
-               {% block explanation %}{% end block %}
-
-               {% if exception %}
-                       <div class="row">
-                               <div class="col-md-8 offset-md-2">
-                                       <pre>{{ exception }}</pre>
-                               </div>
-                       </div>
-               {% end %}
-       </section>
-</div>
+       </div>
 {% end block %}
+
+{% block footer %}{% end block %}
index 1f5fb492f956b785cfc89bf1b44a55a23f78493e..2e1e9f052941a9937fabba8a69b0228b6188dde8 100644 (file)
@@ -111,6 +111,9 @@ class Application(tornado.web.Application):
                        # Handle old pages that have moved elsewhere
                        (r"/imprint", tornado.web.RedirectHandler, { "url" : "/legal" }),
                        (r"/(de|en)/(.*)", LangCompatHandler),
+
+                       # Export arbitrary error pages
+                       (r"/error/([45][0-9]{2})", ErrorHandler),
                ])
 
                # blog.ipfire.org
index 2dd0b66b5f2cfcfa535582417e739288088f120a..d75b05094d2b4b11c28d884e984263a53801fa24 100644 (file)
@@ -14,6 +14,15 @@ import tornado.web
 from .. import util
 
 class BaseHandler(tornado.web.RequestHandler):
+       def write_error(self, status_code, **kwargs):
+               # Translate code into message
+               try:
+                       message = httplib.responses[status_code]
+               except KeyError:
+                       message = None
+
+               self.render("error.html", status_code=status_code, message=message, **kwargs)
+
        @property
        def hostname(self):
                # Remove the development prefix
@@ -214,7 +223,15 @@ class NotFoundHandler(BaseHandler):
                # Raises 404 as soon as it is called
                raise tornado.web.HTTPError(404)
 
-       def write_error(self, status_code, **kwargs):
-               assert status_code == 404
 
-               self.render("error-404.html")
+class ErrorHandler(BaseHandler):
+       """
+               Raises any error we want
+       """
+       def get(self, code):
+               try:
+                       code = int(code)
+               except:
+                       raise tornado.web.HTTPError(400)
+
+               raise tornado.web.HTTPError(code)