diff options
-rw-r--r-- | app/controllers/application_controller.rb | 10 | ||||
-rw-r--r-- | app/views/errors/404.html (renamed from public/404.html) | 0 | ||||
-rw-r--r-- | app/views/errors/410.html | 43 | ||||
-rw-r--r-- | app/views/errors/422.html | 43 | ||||
-rw-r--r-- | app/views/errors/500.html (renamed from public/500.html) | 0 |
5 files changed, 96 insertions, 0 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/app/views/errors/404.html index fc75c78be..fc75c78be 100644 --- a/public/404.html +++ b/app/views/errors/404.html diff --git a/app/views/errors/410.html b/app/views/errors/410.html new file mode 100644 index 000000000..e07cbe863 --- /dev/null +++ b/app/views/errors/410.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>The page you were looking for doesn't exist anymore</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 anymore</h1> + </div> + </div> +</body> +</html> diff --git a/app/views/errors/422.html b/app/views/errors/422.html new file mode 100644 index 000000000..a214781bd --- /dev/null +++ b/app/views/errors/422.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>Security verification failed - are you blocking cookies?</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 we were unable to verify your request. Have you tried enabling cookies?</h1> + </div> + </div> +</body> +</html> diff --git a/public/500.html b/app/views/errors/500.html index d085d490b..d085d490b 100644 --- a/public/500.html +++ b/app/views/errors/500.html |