From f4921b9daaf7c735da2833542fad426ca28bb09d Mon Sep 17 00:00:00 2001 From: wxiaoguang <wxiaoguang@gmail.com> Date: Mon, 24 Jun 2024 01:45:21 +0800 Subject: [PATCH] Simplify 404/500 page (#31409) --- public/assets/img/404.png | Bin 4516 -> 0 bytes public/assets/img/500.png | Bin 5230 -> 0 bytes templates/status/404.tmpl | 14 ++++++++++---- templates/status/500.tmpl | 23 ++++++++++++----------- tests/integration/compare_test.go | 5 +++-- tests/integration/links_test.go | 2 -- web_src/css/base.css | 14 ++++++++++++++ 7 files changed, 39 insertions(+), 19 deletions(-) delete mode 100644 public/assets/img/404.png delete mode 100644 public/assets/img/500.png diff --git a/public/assets/img/404.png b/public/assets/img/404.png deleted file mode 100644 index 8b66c971f462dcc37c6b3f33d4a9c35c68a8979d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4516 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 diff --git a/public/assets/img/500.png b/public/assets/img/500.png deleted file mode 100644 index dab69206ad010c4f530df93baba88ab72bf5d1b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5230 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 diff --git a/templates/status/404.tmpl b/templates/status/404.tmpl index 78f149e67b..6cfc88a0d7 100644 --- a/templates/status/404.tmpl +++ b/templates/status/404.tmpl @@ -1,10 +1,16 @@ {{template "base/head" .}} <div role="main" aria-label="{{.Title}}" class="page-content {{if .IsRepo}}repository{{end}}"> {{if .IsRepo}}{{template "repo/header" .}}{{end}} - <div class="ui container tw-text-center"> - <img class="tw-max-w-[80vw] tw-py-16" src="{{AssetUrlPrefix}}/img/404.png" alt="404"> - <p>{{if .NotFoundPrompt}}{{.NotFoundPrompt}}{{else}}{{ctx.Locale.Tr "error404"}}{{end}}</p> - {{if .NotFoundGoBackURL}}<a class="ui button" href="{{.NotFoundGoBackURL}}">{{ctx.Locale.Tr "go_back"}}</a>{{end}} + <div class="ui container"> + <div class="status-page-error"> + <div class="status-page-error-title">404 Not Found</div> + <div class="tw-text-center"> + <div class="tw-my-4">{{if .NotFoundPrompt}}{{.NotFoundPrompt}}{{else}}{{ctx.Locale.Tr "error404"}}{{end}}</div> + {{if .NotFoundGoBackURL}} + <a class="tw-block tw-my-4" href="{{.NotFoundGoBackURL}}">{{ctx.Locale.Tr "go_back"}}</a> + {{end}} + </div> + </div> </div> </div> {{template "base/footer" .}} diff --git a/templates/status/500.tmpl b/templates/status/500.tmpl index 566fddcec1..0e8d0f6593 100644 --- a/templates/status/500.tmpl +++ b/templates/status/500.tmpl @@ -33,17 +33,18 @@ <div class="ui container" > <style> .ui.message.flash-message { text-align: left; } </style> {{template "base/alert" .}} - </div> - <p class="tw-mt-8 center"><img src="{{AssetUrlPrefix}}/img/500.png" alt="Internal Server Error"></p> - <div class="divider"></div> - <div class="ui container tw-my-8"> - {{if .ErrorMsg}} - <p>{{ctx.Locale.Tr "error.occurred"}}:</p> - <pre class="tw-whitespace-pre-wrap tw-break-all">{{.ErrorMsg}}</pre> - {{end}} - <div class="center tw-mt-8"> - {{if or .SignedUser.IsAdmin .ShowFooterVersion}}<p>{{ctx.Locale.Tr "admin.config.app_ver"}}: {{AppVer}}</p>{{end}} - {{if .SignedUser.IsAdmin}}<p>{{ctx.Locale.Tr "error.report_message"}}</p>{{end}} + <div class="status-page-error"> + <div class="status-page-error-title">500 Internal Server Error</div> + {{if .ErrorMsg}} + <div class="tw-mt-8"> + <p>{{ctx.Locale.Tr "error.occurred"}}:</p> + <pre class="tw-whitespace-pre-wrap tw-break-all">{{.ErrorMsg}}</pre> + </div> + {{end}} + <div class="tw-mt-8 tw-text-center"> + {{if or .SignedUser.IsAdmin .ShowFooterVersion}}<p>{{ctx.Locale.Tr "admin.config.app_ver"}}: {{AppVer}}</p>{{end}} + {{if .SignedUser.IsAdmin}}<p>{{ctx.Locale.Tr "error.report_message"}}</p>{{end}} + </div> </div> </div> </div> diff --git a/tests/integration/compare_test.go b/tests/integration/compare_test.go index 9f73ac80e2..d960416b3a 100644 --- a/tests/integration/compare_test.go +++ b/tests/integration/compare_test.go @@ -13,6 +13,7 @@ import ( "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/models/unittest" user_model "code.gitea.io/gitea/models/user" + "code.gitea.io/gitea/modules/test" repo_service "code.gitea.io/gitea/services/repository" "code.gitea.io/gitea/tests" @@ -30,9 +31,9 @@ func TestCompareTag(t *testing.T) { // A dropdown for both base and head. assert.Lenf(t, selection.Nodes, 2, "The template has changed") - req = NewRequest(t, "GET", "/user2/repo1/compare/invalid") + req = NewRequest(t, "GET", "/user2/repo1/compare/invalid").SetHeader("Accept", "text/html") resp = session.MakeRequest(t, req, http.StatusNotFound) - assert.False(t, strings.Contains(resp.Body.String(), "/assets/img/500.png"), "expect 404 page not 500") + assert.True(t, test.IsNormalPageCompleted(resp.Body.String()), "expect 404 page not 500") } // Compare with inferred default branch (master) diff --git a/tests/integration/links_test.go b/tests/integration/links_test.go index d103e2b0a9..d3b30448fc 100644 --- a/tests/integration/links_test.go +++ b/tests/integration/links_test.go @@ -37,8 +37,6 @@ func TestLinksNoLogin(t *testing.T) { "/user2/repo1/projects", "/user2/repo1/projects/1", "/user2/repo1/releases/tag/delete-tag", // It's the only one existing record on release.yml which has is_tag: true - "/assets/img/404.png", - "/assets/img/500.png", "/.well-known/security.txt", } diff --git a/web_src/css/base.css b/web_src/css/base.css index eef4eb6eff..223d9fbad6 100644 --- a/web_src/css/base.css +++ b/web_src/css/base.css @@ -477,6 +477,20 @@ img.ui.avatar, padding-bottom: 80px; } +.status-page-error { + margin-top: max(45vh - 90px, 80px); + margin-bottom: 80px; +} + +.status-page-error-title { + font-size: 48px; + margin-bottom: 14px; /* some elements below may use tw-my-4 or tw-my-8, so use 14px as a minimal margin */ + line-height: initial; + text-align: center; + font-weight: var(--font-weight-bold); + color: var(--color-text-light-2); +} + /* add margin below .secondary nav when it is the first child */ .page-content > :first-child.secondary-nav { margin-bottom: 14px;