aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHester Gong <hestergong@gmail.com>2023-04-20 16:58:26 +0800
committerGitHub <noreply@github.com>2023-04-20 04:58:26 -0400
commit6793ef00692aee3d73d5e37ded0b8cff6b4c1029 (patch)
tree7a34d3692b2966c9aa56adb9d6fb2d71bc44e0fe
parent722dab5286a001a0bd367d42258a8613a944e1c1 (diff)
downloadgitea-6793ef00692aee3d73d5e37ded0b8cff6b4c1029.tar.gz
gitea-6793ef00692aee3d73d5e37ded0b8cff6b4c1029.zip
Use secondary pointing menu for tabs on user/organization home page (#24162)
Close #24108 Use secondary pointing menu for tabs on user/organization home page so the tabs look the same. Main changes: 1. modified a part of dom structure in `templates/user/overview/header.tmpl` to make it the same as `templates/org/header.tmpl` in order to produce the same ui. 2. Move some css to `web_src/css/shared/repoorgshared.css` to make them shareable between `templates/user/overview/header.tmpl` and `templates/org/header.tmpl` After: https://user-images.githubusercontent.com/17645053/232400617-2add5bec-d483-4ab1-b48d-eaee157f7b09.mov For further improvements. Need some thoughts: For [this TODO](https://github.com/HesterG/gitea/blob/729ad294cbec7a77623b2e3eab750ea7a20e8ee0/templates/user/overview/header.tmpl#L1), it is viable to make it a shared template for [this part](https://github.com/HesterG/gitea/blob/729ad294cbec7a77623b2e3eab750ea7a20e8ee0/templates/user/overview/header.tmpl#L2-L17) and [this part](https://github.com/HesterG/gitea/blob/729ad294cbec7a77623b2e3eab750ea7a20e8ee0/templates/org/header.tmpl#L1-L16) because they are the same except for the variable. But for the menu parts, they are quite different so might not be suitable to use a shared template. So need some thoughts and advice about extracting the shared template from these two headers. --------- Co-authored-by: Giteabot <teabot@gitea.io>
-rw-r--r--templates/user/overview/header.tmpl133
-rw-r--r--web_src/css/index.css1
-rw-r--r--web_src/css/organization.css12
-rw-r--r--web_src/css/repository.css9
-rw-r--r--web_src/css/shared/repoorg.css19
5 files changed, 88 insertions, 86 deletions
diff --git a/templates/user/overview/header.tmpl b/templates/user/overview/header.tmpl
index b4f7d6f900..7dfbe34563 100644
--- a/templates/user/overview/header.tmpl
+++ b/templates/user/overview/header.tmpl
@@ -1,85 +1,82 @@
-<div class="header-wrapper">
- <!-- TODO: make template org and user can share -->
- {{with .ContextUser}}
- <div class="ui container">
- <div class="ui vertically grid head">
- <div class="column">
- <div class="ui header">
- {{avatar $.Context . 100}}
- <span class="text thin grey"><a href="{{.HomeLink}}">{{.DisplayName}}</a></span>
- <span class="org-visibility">
- {{if .Visibility.IsLimited}}<div class="ui medium basic horizontal label">{{$.locale.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
- {{if .Visibility.IsPrivate}}<div class="ui medium basic horizontal label">{{$.locale.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
- </span>
- </div>
+<!-- TODO: make template org and user can share -->
+{{with .ContextUser}}
+ <div class="ui container">
+ <div class="ui vertically grid head">
+ <div class="column">
+ <div class="ui header">
+ {{avatar $.Context . 100}}
+ <span class="text thin grey"><a href="{{.HomeLink}}">{{.DisplayName}}</a></span>
+ <span class="org-visibility">
+ {{if .Visibility.IsLimited}}<div class="ui medium basic horizontal label">{{$.locale.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
+ {{if .Visibility.IsPrivate}}<div class="ui medium basic horizontal label">{{$.locale.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
+ </span>
</div>
</div>
</div>
- {{end}}
+ </div>
+{{end}}
- <div class="ui tabs container">
- <div class="ui tabular stackable menu navbar">
- <a class="item" href="{{.ContextUser.HomeLink}}">
- {{svg "octicon-repo"}} {{.locale.Tr "user.repositories"}}
+<div class="ui tabs container">
+ <div class="ui secondary stackable pointing menu">
+ <a class="item" href="{{.ContextUser.HomeLink}}">
+ {{svg "octicon-repo"}} {{.locale.Tr "user.repositories"}}
+ </a>
+ {{if and .IsProjectEnabled (or .ContextUser.IsIndividual (and .ContextUser.IsOrganization .CanReadProjects))}}
+ <a href="{{.ContextUser.HomeLink}}/-/projects" class="{{if .PageIsViewProjects}}active {{end}}item">
+ {{svg "octicon-project-symlink"}} {{.locale.Tr "user.projects"}}
+ </a>
+ {{end}}
+ {{if and .IsPackageEnabled (or .ContextUser.IsIndividual (and .ContextUser.IsOrganization .CanReadPackages))}}
+ <a href="{{.ContextUser.HomeLink}}/-/packages" class="{{if .IsPackagesPage}}active {{end}}item">
+ {{svg "octicon-package"}} {{.locale.Tr "packages.title"}}
</a>
- {{if and .IsProjectEnabled (or .ContextUser.IsIndividual (and .ContextUser.IsOrganization .CanReadProjects))}}
- <a href="{{.ContextUser.HomeLink}}/-/projects" class="{{if .PageIsViewProjects}}active {{end}}item">
- {{svg "octicon-project-symlink"}} {{.locale.Tr "user.projects"}}
+ {{end}}
+ {{if and .IsRepoIndexerEnabled (or .ContextUser.IsIndividual (and .ContextUser.IsOrganization .CanReadCode))}}
+ <a href="{{.ContextUser.HomeLink}}/-/code" class="{{if .IsCodePage}}active {{end}}item">
+ {{svg "octicon-code"}} {{.locale.Tr "user.code"}}
</a>
- {{end}}
- {{if and .IsPackageEnabled (or .ContextUser.IsIndividual (and .ContextUser.IsOrganization .CanReadPackages))}}
- <a href="{{.ContextUser.HomeLink}}/-/packages" class="{{if .IsPackagesPage}}active {{end}}item">
- {{svg "octicon-package"}} {{.locale.Tr "packages.title"}}
+ {{end}}
+
+ {{if .ContextUser.IsOrganization}}
+ {{if .IsOrganizationMember}}
+ <a class="item" href="{{$.OrgLink}}/members">
+ {{svg "octicon-person"}}&nbsp;{{$.locale.Tr "org.members"}}
+ {{if .NumMembers}}
+ <div class="ui primary label">{{.NumMembers}}</div>
+ {{end}}
</a>
- {{end}}
- {{if and .IsRepoIndexerEnabled (or .ContextUser.IsIndividual (and .ContextUser.IsOrganization .CanReadCode))}}
- <a href="{{.ContextUser.HomeLink}}/-/code" class="{{if .IsCodePage}}active {{end}}item">
- {{svg "octicon-code"}} {{.locale.Tr "user.code"}}
+ <a class="item" href="{{$.OrgLink}}/teams">
+ {{svg "octicon-people"}}&nbsp;{{$.locale.Tr "org.teams"}}
+ {{if .NumTeams}}
+ <div class="ui primary label">{{.NumTeams}}</div>
+ {{end}}
</a>
{{end}}
- {{if .ContextUser.IsOrganization}}
- {{if .IsOrganizationMember}}
- <a class="item" href="{{$.OrgLink}}/members">
- {{svg "octicon-person"}}&nbsp;{{$.locale.Tr "org.members"}}
- {{if .NumMembers}}
- <div class="ui primary label">{{.NumMembers}}</div>
- {{end}}
+ {{if .IsOrganizationOwner}}
+ <div class="right menu">
+ <a class="item" href="{{.OrgLink}}/settings">
+ {{svg "octicon-tools"}} {{.locale.Tr "repo.settings"}}
</a>
- <a class="item" href="{{$.OrgLink}}/teams">
- {{svg "octicon-people"}}&nbsp;{{$.locale.Tr "org.teams"}}
- {{if .NumTeams}}
- <div class="ui primary label">{{.NumTeams}}</div>
- {{end}}
- </a>
- {{end}}
-
- {{if .IsOrganizationOwner}}
- <div class="right menu">
- <a class="item" href="{{.OrgLink}}/settings">
- {{svg "octicon-tools"}} {{.locale.Tr "repo.settings"}}
- </a>
- </div>
- {{end}}
+ </div>
+ {{end}}
+ {{else}}
+ <a class='{{if eq .TabName "activity"}}active {{end}}item' href="{{.ContextUser.HomeLink}}?tab=activity">
+ {{svg "octicon-rss"}} {{.locale.Tr "user.activity"}}
+ </a>
+ {{if not .DisableStars}}
+ <a class='{{if eq .TabName "stars"}}active {{end}}item' href="{{.ContextUser.HomeLink}}?tab=stars">
+ {{svg "octicon-star"}} {{.locale.Tr "user.starred"}}
+ {{if .Owner.NumStars}}
+ <div class="ui primary label">{{.Owner.NumStars}}</div>
+ {{end}}
+ </a>
{{else}}
- <a class='{{if eq .TabName "activity"}}active {{end}}item' href="{{.ContextUser.HomeLink}}?tab=activity">
- {{svg "octicon-rss"}} {{.locale.Tr "user.activity"}}
+ <a class='{{if eq .TabName "watching"}}active {{end}}item' href="{{.ContextUser.HomeLink}}?tab=watching">
+ {{svg "octicon-eye"}} {{.locale.Tr "user.watched"}}
</a>
- {{if not .DisableStars}}
- <a class='{{if eq .TabName "stars"}}active {{end}}item' href="{{.ContextUser.HomeLink}}?tab=stars">
- {{svg "octicon-star"}} {{.locale.Tr "user.starred"}}
- {{if .Owner.NumStars}}
- <div class="ui primary label">{{.Owner.NumStars}}</div>
- {{end}}
- </a>
- {{else}}
- <a class='{{if eq .TabName "watching"}}active {{end}}item' href="{{.ContextUser.HomeLink}}?tab=watching">
- {{svg "octicon-eye"}} {{.locale.Tr "user.watched"}}
- </a>
- {{end}}
{{end}}
+ {{end}}
- </div>
</div>
- <div class="ui tabs divider"></div>
</div>
diff --git a/web_src/css/index.css b/web_src/css/index.css
index e8d4e290d0..2530830338 100644
--- a/web_src/css/index.css
+++ b/web_src/css/index.css
@@ -2,6 +2,7 @@
@import "./animations.css";
@import "./shared/issuelist.css";
+@import "./shared/repoorg.css";
@import "./features/dropzone.css";
@import "./features/gitgraph.css";
@import "./features/heatmap.css";
diff --git a/web_src/css/organization.css b/web_src/css/organization.css
index 35eaa3ae22..42a6dcc5ea 100644
--- a/web_src/css/organization.css
+++ b/web_src/css/organization.css
@@ -40,12 +40,6 @@
}
}
-.organization .head .ui.header .text {
- vertical-align: middle;
- font-size: 1.6rem;
- margin-left: 15px;
-}
-
.organization .head .ui.header .org-visibility .label {
margin-left: 5px;
margin-top: 5px;
@@ -55,12 +49,6 @@
margin-top: 5px;
}
-.organization .ui.secondary.stackable.pointing.menu {
- flex-wrap: wrap;
- margin-top: 5px;
- margin-bottom: 10px;
-}
-
.organization.new.org form {
margin: auto;
}
diff --git a/web_src/css/repository.css b/web_src/css/repository.css
index 8674793bf0..77b41e4d16 100644
--- a/web_src/css/repository.css
+++ b/web_src/css/repository.css
@@ -153,12 +153,9 @@
padding-left: 23px;
}
-.repository .ui.tabs.container {
- margin-top: 14px;
- margin-bottom: 0;
-}
-
-.repository .ui.tabs.container .ui.menu {
+/* For the secondary pointing menu, respect its own border-bottom */
+/* style reference: https://semantic-ui.com/collections/menu.html#pointing */
+.repository .ui.tabs.container .ui.menu:not(.secondary.pointing) {
border-bottom: 0;
}
diff --git a/web_src/css/shared/repoorg.css b/web_src/css/shared/repoorg.css
new file mode 100644
index 0000000000..ee9d94bafa
--- /dev/null
+++ b/web_src/css/shared/repoorg.css
@@ -0,0 +1,19 @@
+.repository .head .ui.header .text,
+.organization .head .ui.header .text {
+ vertical-align: middle;
+ font-size: 1.6rem;
+ margin-left: 15px;
+}
+
+.repository .ui.secondary.stackable.pointing.menu,
+.organization .ui.secondary.stackable.pointing.menu {
+ flex-wrap: wrap;
+ margin-top: 5px;
+ margin-bottom: 10px;
+}
+
+.repository .ui.tabs.container,
+.organization .ui.tabs.container {
+ margin-top: 14px;
+ margin-bottom: 0;
+}