From da4448421e30c2a58095a93e2e5cc4da66fc9347 Mon Sep 17 00:00:00 2001
From: wxiaoguang <wxiaoguang@gmail.com>
Date: Sat, 22 Apr 2023 16:21:56 +0800
Subject: [PATCH] Fix footer display (#24251) (#24269)

Backport #24251

Fix #24249

Diff with ignoring spaces:
https://github.com/go-gitea/gitea/pull/24269/files?diff=split&w=1


Manually tested


![image](https://user-images.githubusercontent.com/2114189/233766806-18eb18ad-0c4d-44f7-b0fc-b40466c64445.png)

Co-authored-by: Lauris BH <lauris@nix.lv>
---
 templates/base/footer_content.tmpl | 52 ++++++++++++++----------------
 web_src/css/base.css               | 40 -----------------------
 web_src/css/home.css               | 36 +++++++++++++++++++--
 3 files changed, 59 insertions(+), 69 deletions(-)

diff --git a/templates/base/footer_content.tmpl b/templates/base/footer_content.tmpl
index 53d0a2c77c..aab3657882 100644
--- a/templates/base/footer_content.tmpl
+++ b/templates/base/footer_content.tmpl
@@ -1,36 +1,34 @@
 <footer role="group" aria-label="{{.locale.Tr "aria.footer"}}">
-	<div class="ui container">
-		<div class="ui left" role="contentinfo" aria-label="{{.locale.Tr "aria.footer.software"}}">
-			<a target="_blank" rel="noopener noreferrer" href="https://gitea.io">{{.locale.Tr "powered_by" "Gitea"}}</a>
-			{{if (or .ShowFooterVersion .PageIsAdmin)}}
-				{{.locale.Tr "version"}}:
-				{{if .IsAdmin}}
-					<a href="{{AppSubUrl}}/admin/config">{{AppVer}}</a>
-				{{else}}
-					{{AppVer}}
-				{{end}}
-			{{end}}
-			{{if and .TemplateLoadTimes ShowFooterTemplateLoadTime}}
-				{{.locale.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong>
-				{{.locale.Tr "template"}}{{if .TemplateName}} {{.TemplateName}}{{end}}: <strong>{{call .TemplateLoadTimes}}</strong>
-			{{end}}
-		</div>
-		<div class="ui right links" role="group" aria-label="{{.locale.Tr "aria.footer.links"}}">
-			{{if .ShowFooterBranding}}
-				<a target="_blank" rel="noopener noreferrer" href="https://github.com/go-gitea/gitea">{{svg "octicon-mark-github"}}<span class="sr-only">GitHub</span></a>
+	<div class="ui left" role="contentinfo" aria-label="{{.locale.Tr "aria.footer.software"}}">
+		<a target="_blank" rel="noopener noreferrer" href="https://gitea.io">{{.locale.Tr "powered_by" "Gitea"}}</a>
+		{{if (or .ShowFooterVersion .PageIsAdmin)}}
+			{{.locale.Tr "version"}}:
+			{{if .IsAdmin}}
+				<a href="{{AppSubUrl}}/admin/config">{{AppVer}}</a>
+			{{else}}
+				{{AppVer}}
 			{{end}}
+		{{end}}
+		{{if and .TemplateLoadTimes ShowFooterTemplateLoadTime}}
+			{{.locale.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong>
+			{{.locale.Tr "template"}}{{if .TemplateName}} {{.TemplateName}}{{end}}: <strong>{{call .TemplateLoadTimes}}</strong>
+		{{end}}
+	</div>
+	<div class="ui right links" role="group" aria-label="{{.locale.Tr "aria.footer.links"}}">
+		{{if .ShowFooterBranding}}
+			<a target="_blank" rel="noopener noreferrer" href="https://github.com/go-gitea/gitea">{{svg "octicon-mark-github"}}<span class="sr-only">GitHub</span></a>
+		{{end}}
 			<div class="ui language bottom floating slide up dropdown link item">
 				{{svg "octicon-globe"}}
 				<span>{{.locale.LangName}}</span>
-				<div class="menu language-menu">
-					{{range .AllLangs}}
-						<a lang="{{.Lang}}" data-url="{{AppSubUrl}}/?lang={{.Lang}}" class="item {{if eq $.locale.Lang .Lang}}active selected{{end}}">{{.Name}}</a>
-					{{end}}
-				</div>
+			<div class="menu language-menu">
+				{{range .AllLangs}}
+					<a lang="{{.Lang}}" data-url="{{AppSubUrl}}/?lang={{.Lang}}" class="item {{if eq $.locale.Lang .Lang}}active selected{{end}}">{{.Name}}</a>
+				{{end}}
 			</div>
-			<a href="{{AssetUrlPrefix}}/js/licenses.txt">{{.locale.Tr "licenses"}}</a>
-			{{if .EnableSwagger}}<a href="{{AppSubUrl}}/api/swagger">API</a>{{end}}
-			{{template "custom/extra_links_footer" .}}
 		</div>
+		<a href="{{AssetUrlPrefix}}/js/licenses.txt">{{.locale.Tr "licenses"}}</a>
+		{{if .EnableSwagger}}<a href="{{AppSubUrl}}/api/swagger">API</a>{{end}}
+		{{template "custom/extra_links_footer" .}}
 	</div>
 </footer>
diff --git a/web_src/css/base.css b/web_src/css/base.css
index ef2cf9ed40..1f674df9a5 100644
--- a/web_src/css/base.css
+++ b/web_src/css/base.css
@@ -1821,46 +1821,6 @@ img.ui.avatar,
   color: var(--color-warning-text);
 }
 
-footer {
-  background-color: var(--color-footer);
-  border-top: 1px solid var(--color-secondary);
-  width: 100%;
-  flex-basis: 40px;
-  color: var(--color-text-light);
-}
-
-footer .container {
-  padding: 0 0.5rem;
-  max-width: 100%;
-}
-
-footer .container .links > * {
-  border-left: 1px solid var(--color-secondary-dark-1);
-  padding-left: 8px;
-  margin-left: 5px;
-}
-
-footer .container .links > *:first-child {
-  border-left: 0;
-}
-
-footer .ui.language .menu {
-  max-height: 500px;
-  overflow-y: auto;
-  margin-bottom: 7px;
-}
-
-footer .ui.language .svg {
-  margin-right: 0.15em;
-  vertical-align: top;
-  margin-top: calc(2em - 16px);
-}
-
-footer .ui.left,
-footer .ui.right {
-  line-height: 39px; /* there  is a border-top on the footer, so make the line-height 1px less */
-}
-
 .center:not(.popup) {
   text-align: center;
 }
diff --git a/web_src/css/home.css b/web_src/css/home.css
index 5d36da594c..f5d6813c4a 100644
--- a/web_src/css/home.css
+++ b/web_src/css/home.css
@@ -43,9 +43,41 @@
   color: var(--color-green);
 }
 
+footer {
+  background-color: var(--color-footer);
+  border-top: 1px solid var(--color-secondary);
+  line-height: 39px;
+  flex-basis: 40px;
+  color: var(--color-text-light);
+  padding: 0 20px;
+}
+
+footer .right.links {
+  min-width: 180px; /* make sure the menu dropdown doesn't overflow horizontally when language name is short */
+}
+
+footer .right.links > * {
+  border-left: 1px solid var(--color-secondary-dark-1);
+  padding-left: 8px;
+  margin-left: 5px;
+}
+
+footer .right.links > *:first-child {
+  border-left: none;
+}
+
+footer .ui.dropdown.language .menu {
+  height: 500px;
+  max-height: calc(100vh - 60px);
+  overflow-y: auto;
+  margin-bottom: 10px;
+}
+
+
 @media (max-width: 880px) {
-  footer .ui.container .left,
-  footer .ui.container .right {
+  footer .ui.left,
+  footer .ui.right {
+    width: 100%;
     display: block;
     text-align: center;
     float: none;