diff options
| author | syeopite <syeopite@syeopite.dev> | 2021-05-15 22:01:46 -0700 |
|---|---|---|
| committer | syeopite <syeopite@syeopite.dev> | 2021-06-19 04:16:18 -0700 |
| commit | b9cd40fe1e095f72440bb64180314b71d4f3f185 (patch) | |
| tree | 149a7f15f6167e6806a69cae32c41584cc502d31 /src | |
| parent | 173cd7c15ea3aa044c9852572f99691c943d64a0 (diff) | |
| download | invidious-b9cd40fe1e095f72440bb64180314b71d4f3f185.tar.gz invidious-b9cd40fe1e095f72440bb64180314b71d4f3f185.tar.bz2 invidious-b9cd40fe1e095f72440bb64180314b71d4f3f185.zip | |
Add redirect buttons to error template
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/helpers/errors.cr | 37 | ||||
| -rw-r--r-- | src/invidious/views/error.ecr | 1 |
2 files changed, 38 insertions, 0 deletions
diff --git a/src/invidious/helpers/errors.cr b/src/invidious/helpers/errors.cr index 68ced430..714e0670 100644 --- a/src/invidious/helpers/errors.cr +++ b/src/invidious/helpers/errors.cr @@ -40,6 +40,9 @@ def error_template_helper(env : HTTP::Server::Context, locale : Hash(String, JSO and include the following text in your message: <pre style="padding: 20px; background: rgba(0, 0, 0, 0.12345);">#{issue_template}</pre> END_HTML + + next_steps = error_redirect_helper(env, locale) + return templated "error" end @@ -47,6 +50,7 @@ def error_template_helper(env : HTTP::Server::Context, locale : Hash(String, JSO env.response.content_type = "text/html" env.response.status_code = status_code error_message = translate(locale, message) + next_steps = error_redirect_helper(env, locale) return templated "error" end @@ -103,3 +107,36 @@ end def error_json_helper(env : HTTP::Server::Context, locale : Hash(String, JSON::Any) | Nil, status_code : Int32, message : String) error_json_helper(env, locale, status_code, message, nil) end + +def error_redirect_helper(env : HTTP::Server::Context, locale : Hash(String, JSON::Any) | Nil) + request_path = env.request.path + + if request_path.starts_with?("/search") || request_path.starts_with?("/watch") || + request_path.starts_with?("/channel") || request_path.starts_with?("/playlist?list=PL") + + next_steps_text = translate(locale, "next_steps_error_message") + refresh = translate(locale, "next_steps_error_message_refresh") + go_to_youtube = translate(locale, "next_steps_error_message_go_to_youtube") + switch_instance = translate(locale, "Switch Invidious Instance") + + + return <<-END_HTML + <p style="margin-bottom: 4px;">#{next_steps_text}</p> + <ul> + <li> + <a href="#{env.request.resource}">#{refresh}</a> + </li> + <li> + <a href="/redirect?referer=#{env.get("current_page")}">#{switch_instance}</a> + </li> + <li> + <a href="https://youtube.com#{env.request.resource}">#{go_to_youtube}</a> + </li> + </ul> + END_HTML + + return next_step_html + else + return "" + end +end
\ No newline at end of file diff --git a/src/invidious/views/error.ecr b/src/invidious/views/error.ecr index d0752e5b..04eb74d5 100644 --- a/src/invidious/views/error.ecr +++ b/src/invidious/views/error.ecr @@ -4,4 +4,5 @@ <div class="h-box"> <%= error_message %> + <%= next_steps %> </div> |
