commit: 500278eb4c73506cd965c3abc06a2449c8071e1e
parent: f036c6440bb82ba627784b32dadc2a3309c7a1b4
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Sat, 21 Jan 2017 22:31:19 +0100
Merge branch 'ineffyble-fix/error-pages'
Diffstat:
6 files changed, 61 insertions(+), 43 deletions(-)
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
@@ -11,6 +11,7 @@ class ApplicationController < ActionController::Base
rescue_from ActionController::RoutingError, with: :not_found
rescue_from ActiveRecord::RecordNotFound, with: :not_found
+ rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity
before_action :store_current_location, except: :raise_not_found, unless: :devise_controller?
before_action :set_locale
@@ -50,12 +51,21 @@ class ApplicationController < ActionController::Base
def not_found
respond_to do |format|
format.any { head 404 }
+ format.html { render 'errors/404', layout: 'error' }
end
end
def gone
respond_to do |format|
format.any { head 410 }
+ format.html { render 'errors/410', layout: 'error' }
+ end
+ end
+
+ def unprocessable_entity
+ respond_to do |format|
+ format.any { head 422 }
+ format.html { render 'errors/422', layout: 'error' }
end
end
diff --git a/app/views/errors/404.html.haml b/app/views/errors/404.html.haml
@@ -0,0 +1,5 @@
+- content_for :page_title do
+ The page you were looking for doesn't exist
+
+- content_for :content do
+ The page you were looking for doesn't exist
diff --git a/app/views/errors/410.html.haml b/app/views/errors/410.html.haml
@@ -0,0 +1,5 @@
+- content_for :page_title do
+ The page you were looking for doesn't exist anymore
+
+- content_for :content do
+ The page you were looking for doesn't exist anymore
diff --git a/app/views/errors/422.html.haml b/app/views/errors/422.html.haml
@@ -0,0 +1,5 @@
+- content_for :page_title do
+ Security verification failed
+
+- content_for :content do
+ Security verification failed. Are you blocking cookies?
diff --git a/app/views/layouts/error.html.haml b/app/views/layouts/error.html.haml
@@ -0,0 +1,36 @@
+!!!
+%html{:lang => "en"}
+ %head
+ %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
+ %meta{:charset => "utf-8"}/
+ %title= yield :page_title
+ %meta{:content => "width=device-width,initial-scale=1", :name => "viewport"}/
+ %link{:href => "https://fonts.googleapis.com/css?family=Roboto:400", :rel => "stylesheet"}/
+ :css
+ body {
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
+ background: #282c37;
+ color: #9baec8;
+ text-align: center;
+ margin: 0;
+ padding: 20px;
+ }
+
+ .dialog img {
+ display: block;
+ margin: 20px auto;
+ margin-top: 50px;
+ max-width: 600px;
+ width: 100%;
+ height: auto;
+ }
+
+ .dialog h1 {
+ font: 20px/28px -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
+ font-weight: 400;
+ }
+ %body
+ .dialog
+ %img{:alt => "Mastodon", :src => "/oops.png"}/
+ %div
+ %h1= yield :content
diff --git a/public/404.html b/public/404.html
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="utf-8">
- <title>The page you were looking for doesn't exist</title>
- <meta name="viewport" content="width=device-width,initial-scale=1">
- <link href="https://fonts.googleapis.com/css?family=Roboto:400" rel="stylesheet">
- <style>
- body {
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
- background: #282c37;
- color: #9baec8;
- text-align: center;
- margin: 0;
- padding: 20px;
- }
-
- .dialog img {
- display: block;
- margin: 20px auto;
- margin-top: 50px;
- max-width: 600px;
- width: 100%;
- height: auto;
- }
-
- .dialog h1 {
- font: 20px/28px -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
- font-weight: 400;
- }
- </style>
-</head>
-
-<body>
- <div class="dialog">
- <img src="/oops.png" alt="Mastodon" />
-
- <div>
- <h1>The page you were looking for doesn't exist</h1>
- </div>
- </div>
-</body>
-</html>