diff options
author | Effy Elden <git@effy.is> | 2017-01-15 10:30:23 +1100 |
---|---|---|
committer | Effy Elden <git@effy.is> | 2017-01-15 10:30:23 +1100 |
commit | ed41f9f0b1d49e651c93cc9df90c21daca3f96a5 (patch) | |
tree | 055d165c525c3d09e323ce3f0e8e2f04c4ebda01 | |
parent | 3f84816b24b232d8bfde71c4590d439a1f6fa50b (diff) |
Add nice error page for CSRF errors/cookie issue, and fix error page handling altogether
-rw-r--r-- | app/controllers/application_controller.rb | 10 | ||||
-rw-r--r-- | public/404.html | 43 | ||||
-rw-r--r-- | public/500.html | 43 |
3 files changed, 10 insertions, 86 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 0a6b50a29..e8cd48b6e 100644 --- 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" } end end def gone respond_to do |format| format.any { head 410 } + format.html { render "errors/410" } + end + end + + def unprocessable_entity + respond_to do |format| + format.any { head 422 } + format.html { render "errors/422" } end end diff --git a/public/404.html b/public/404.html deleted file mode 100644 index fc75c78be..000000000 --- a/public/404.html +++ /dev/null @@ -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> diff --git a/public/500.html b/public/500.html deleted file mode 100644 index d085d490b..000000000 --- a/public/500.html +++ /dev/null @@ -1,43 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <title>We're sorry, but something went wrong</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>We're sorry, but something went wrong.</h1> - </div> - </div> -</body> -</html> |