Refactor "flex-list" to "flex-divided-list" (#37505)

Purpose:

1. Make the whole code base have unified "item" layout
2. Clarify our "list" styles: "flex-relaxed-list", "flex-divided-list"
3. Prepare to replace legacy "ui relaxed list"
* https://github.com/go-gitea/gitea/pull/37445#discussion_r3144458865
4. Prepare for refactoring the "pull merge box", it needs the
"flex-divided-list"
    * related to "Refactor pull request view (*)" like #37451
5. Fix legacy abuses of "flex-list", e.g.: repo home sidebar
This commit is contained in:
wxiaoguang
2026-05-03 00:10:52 +08:00
committed by GitHub
parent f049668c21
commit 134e86c78c
54 changed files with 560 additions and 557 deletions
+6 -6
View File
@@ -11,15 +11,15 @@
</div>
<div class="divider"></div>
{{end}}
<div class="flex-list">
<div class="flex-divided-list items-with-main">
{{range .Members}}
{{$isPublic := index $.MembersIsPublicMember .ID}}
<div class="flex-item {{if $.PublicOnly}}tw-items-center{{end}}">
<div class="flex-item-leading">
<div class="item {{if $.PublicOnly}}tw-items-center{{end}}">
<div class="item-leading">
<a href="{{.HomeLink}}">{{ctx.AvatarUtils.Avatar . 48}}</a>
</div>
<div class="flex-item-main">
<div class="flex-item-title">
<div class="item-main">
<div class="item-title">
{{template "shared/user/name" .}}
{{if not $isPublic}}
<span class="ui basic small label">{{ctx.Locale.Tr "org.members.private"}}</span>
@@ -44,7 +44,7 @@
{{end}}
</div>
</div>
<div class="flex-item-trailing">
<div class="item-trailing">
{{if or (eq $.SignedUser.ID .ID) $.IsOrganizationOwner}}
{{if $isPublic}}
<a class="ui tiny button link-action" href data-url="{{$.OrgLink}}/members/action/private?uid={{.ID}}">{{svg "octicon-eye-closed" 12 "icon"}}{{ctx.Locale.Tr "org.members.public_helper"}}</a>
+16 -16
View File
@@ -2,33 +2,33 @@
{{ctx.Locale.Tr "repo.settings.danger_zone"}}
</h4>
<div class="ui attached error danger segment">
<div class="flex-list">
<div class="flex-item tw-items-center">
<div class="flex-item-main">
<div class="flex-item-title">{{ctx.Locale.Tr "org.settings.visibility"}}</div>
<div class="flex-item-body">{{ctx.Locale.Tr "org.settings.visibility_desc"}}</div>
<div class="flex-divided-list items-with-main">
<div class="item tw-items-center">
<div class="item-main">
<div class="item-title">{{ctx.Locale.Tr "org.settings.visibility"}}</div>
<div class="item-body">{{ctx.Locale.Tr "org.settings.visibility_desc"}}</div>
</div>
<div class="flex-item-trailing">
<div class="item-trailing">
<button class="ui basic red show-modal button" data-modal="#change-visibility-org-modal">{{ctx.Locale.Tr "org.settings.change_visibility"}}</button>
</div>
</div>
<div class="flex-item tw-items-center">
<div class="flex-item-main">
<div class="flex-item-title">{{ctx.Locale.Tr "org.settings.rename"}}</div>
<div class="flex-item-body">{{ctx.Locale.Tr "org.settings.rename_desc"}}</div>
<div class="item tw-items-center">
<div class="item-main">
<div class="item-title">{{ctx.Locale.Tr "org.settings.rename"}}</div>
<div class="item-body">{{ctx.Locale.Tr "org.settings.rename_desc"}}</div>
</div>
<div class="flex-item-trailing">
<div class="item-trailing">
<button class="ui basic red show-modal button" data-modal="#rename-org-modal">{{ctx.Locale.Tr "org.settings.rename"}}</button>
</div>
</div>
<div class="flex-item">
<div class="flex-item-main">
<div class="flex-item-title">{{ctx.Locale.Tr "org.settings.delete_account"}}</div>
<div class="flex-item-body">{{ctx.Locale.Tr "org.settings.delete_prompt"}}</div>
<div class="item">
<div class="item-main">
<div class="item-title">{{ctx.Locale.Tr "org.settings.delete_account"}}</div>
<div class="item-body">{{ctx.Locale.Tr "org.settings.delete_prompt"}}</div>
</div>
<div class="flex-item-trailing">
<div class="item-trailing">
<button class="ui basic red show-modal button" data-modal="#delete-org-modal">{{ctx.Locale.Tr "org.settings.delete_account"}}</button>
</div>
</div>
+12 -12
View File
@@ -21,18 +21,18 @@
</div>
{{end}}
<div class="ui{{if not .IsOrganizationOwner}} top{{end}} attached segment">
<div class="flex-list">
{{range .Team.Members}}
<div class="flex-item tw-items-center">
<div class="flex-item-leading">
<div class="flex-divided-list items-with-main">
{{range .Team.Members}}
<div class="item tw-items-center">
<div class="item-leading">
<a href="{{.HomeLink}}">{{ctx.AvatarUtils.Avatar . 32}}</a>
</div>
<div class="flex-item-main">
<div class="flex-item-title">
<div class="item-main">
<div class="item-title">
{{template "shared/user/name" .}}
</div>
</div>
<div class="flex-item-trailing">
<div class="item-trailing">
{{if and $.IsOrganizationOwner (not (and ($.Team.IsOwnerTeam) (eq (len $.Team.Members) 1)))}}
<form>
<button class="ui red button delete-button" data-modal-id="remove-team-member"
@@ -44,7 +44,7 @@
</div>
</div>
{{else}}
<div class="flex-item">
<div class="item">
<span class="tw-text-text-light tw-italic">{{ctx.Locale.Tr "org.teams.members.none"}}</span>
</div>
{{end}}
@@ -53,13 +53,13 @@
{{if and .Invites $.IsOrganizationOwner}}
<h4 class="ui top attached header">{{ctx.Locale.Tr "org.teams.invite_team_member.list"}}</h4>
<div class="ui attached segment">
<div class="flex-list">
<div class="flex-divided-list items-with-main">
{{range .Invites}}
<div class="flex-item tw-items-center">
<div class="flex-item-main">
<div class="item tw-items-center">
<div class="item-main">
{{.Email}}
</div>
<div class="flex-item-trailing">
<div class="item-trailing">
<form action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/remove_invite" method="post">
<input type="hidden" name="iid" value="{{.ID}}">
<button class="ui red button">{{ctx.Locale.Tr "org.members.remove"}}</button>
+7 -7
View File
@@ -31,18 +31,18 @@
<div class="ui top attached segment">{{ctx.Locale.Tr "org.teams.all_repositories"}}</div>
{{end}}
<div class="ui {{if not $hasTopAttachedSegment}}top{{end}} attached segment">
<div class="flex-list">
<div class="flex-divided-list items-with-main">
{{range $.TeamRepos}}
<div class="flex-item tw-items-center">
<div class="flex-item-leading">
<div class="item tw-items-center">
<div class="item-leading">
{{template "repo/icon" .}}
</div>
<div class="flex-item-main">
<a class="flex-item-title tw-text-primary" href="{{$.Org.HomeLink}}/{{.Name | PathEscape}}">
<div class="item-main">
<a class="item-title tw-text-primary" href="{{$.Org.HomeLink}}/{{.Name | PathEscape}}">
{{$.Org.Name}}/{{.Name}}
</a>
</div>
<div class="flex-item-trailing">
<div class="item-trailing">
{{if $canAddRemove}}
<form method="post" action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/repo/remove">
<button type="submit" class="ui red small button" name="repoid" value="{{.ID}}">{{ctx.Locale.Tr "remove"}}</button>
@@ -51,7 +51,7 @@
</div>
</div>
{{else}}
<div class="flex-item">
<div class="item">
<span class="tw-text-text-light tw-italic">{{ctx.Locale.Tr "org.teams.repos.none"}}</span>
</div>
{{end}}