mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 00:54:43 +01:00 
			
		
		
		
	Fix display problems of members and teams unit (#26363)
Fix: - display member count and team count in the menu bar  - Also display member unit in the menu bar if there are no hidden members in public org  - hidden member board when there's no seeable members. In this org, we only have hidden members:  We will hidden the member board when doer is not the member of this org  Before:  If you click the number in the members board, you will access the members page, which is not expected.  --------- Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: Giteabot <teabot@gitea.io>
This commit is contained in:
		
							parent
							
								
									27e4ac3e40
								
							
						
					
					
						commit
						7f8028e5a1
					
				| @ -24,6 +24,7 @@ type Organization struct { | ||||
| 	Organization     *organization.Organization | ||||
| 	OrgLink          string | ||||
| 	CanCreateOrgRepo bool | ||||
| 	PublicMemberOnly bool // Only display public members | ||||
| 
 | ||||
| 	Team  *organization.Team | ||||
| 	Teams []*organization.Team | ||||
| @ -172,6 +173,18 @@ func HandleOrgAssignment(ctx *Context, args ...bool) { | ||||
| 	ctx.Org.OrgLink = org.AsUser().OrganisationLink() | ||||
| 	ctx.Data["OrgLink"] = ctx.Org.OrgLink | ||||
| 
 | ||||
| 	// Member | ||||
| 	ctx.Org.PublicMemberOnly = ctx.Doer == nil || !ctx.Org.IsMember && !ctx.Doer.IsAdmin | ||||
| 	opts := &organization.FindOrgMembersOpts{ | ||||
| 		OrgID:      org.ID, | ||||
| 		PublicOnly: ctx.Org.PublicMemberOnly, | ||||
| 	} | ||||
| 	ctx.Data["NumMembers"], err = organization.CountOrgMembers(opts) | ||||
| 	if err != nil { | ||||
| 		ctx.ServerError("CountOrgMembers", err) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	// Team. | ||||
| 	if ctx.Org.IsMember { | ||||
| 		shouldSeeAllTeams := false | ||||
| @ -203,6 +216,7 @@ func HandleOrgAssignment(ctx *Context, args ...bool) { | ||||
| 				return | ||||
| 			} | ||||
| 		} | ||||
| 		ctx.Data["NumTeams"] = len(ctx.Org.Teams) | ||||
| 	} | ||||
| 
 | ||||
| 	teamName := ctx.Params(":team") | ||||
|  | ||||
| @ -120,31 +120,15 @@ func Home(ctx *context.Context) { | ||||
| 
 | ||||
| 	opts := &organization.FindOrgMembersOpts{ | ||||
| 		OrgID:       org.ID, | ||||
| 		PublicOnly:  true, | ||||
| 		PublicOnly:  ctx.Org.PublicMemberOnly, | ||||
| 		ListOptions: db.ListOptions{Page: 1, PageSize: 25}, | ||||
| 	} | ||||
| 
 | ||||
| 	if ctx.Doer != nil { | ||||
| 		isMember, err := org.IsOrgMember(ctx.Doer.ID) | ||||
| 		if err != nil { | ||||
| 			ctx.Error(http.StatusInternalServerError, "IsOrgMember") | ||||
| 			return | ||||
| 		} | ||||
| 		opts.PublicOnly = !isMember && !ctx.Doer.IsAdmin | ||||
| 	} | ||||
| 
 | ||||
| 	members, _, err := organization.FindOrgMembers(opts) | ||||
| 	if err != nil { | ||||
| 		ctx.ServerError("FindOrgMembers", err) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	membersCount, err := organization.CountOrgMembers(opts) | ||||
| 	if err != nil { | ||||
| 		ctx.ServerError("CountOrgMembers", err) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	var isFollowing bool | ||||
| 	if ctx.Doer != nil { | ||||
| 		isFollowing = user_model.IsFollowing(ctx.Doer.ID, ctx.ContextUser.ID) | ||||
| @ -152,7 +136,6 @@ func Home(ctx *context.Context) { | ||||
| 
 | ||||
| 	ctx.Data["Repos"] = repos | ||||
| 	ctx.Data["Total"] = count | ||||
| 	ctx.Data["MembersTotal"] = membersCount | ||||
| 	ctx.Data["Members"] = members | ||||
| 	ctx.Data["Teams"] = ctx.Org.Teams | ||||
| 	ctx.Data["DisableNewPullMirrors"] = setting.Mirror.DisableNewPull | ||||
| @ -171,5 +154,7 @@ func Home(ctx *context.Context) { | ||||
| 	ctx.Data["Page"] = pager | ||||
| 	ctx.Data["ContextUser"] = ctx.ContextUser | ||||
| 
 | ||||
| 	ctx.Data["ShowMemberAndTeamTab"] = ctx.Org.IsMember || len(members) > 0 | ||||
| 
 | ||||
| 	ctx.HTML(http.StatusOK, tplOrgHome) | ||||
| } | ||||
|  | ||||
| @ -37,12 +37,13 @@ | ||||
| 
 | ||||
| 	<div class="ui container"> | ||||
| 		<div class="ui mobile reversed stackable grid"> | ||||
| 			<div class="ui eleven wide column"> | ||||
| 			<div class="ui {{if .ShowMemberAndTeamTab}}eleven wide{{end}} column"> | ||||
| 				{{template "explore/repo_search" .}} | ||||
| 				{{template "explore/repo_list" .}} | ||||
| 				{{template "base/paginate" .}} | ||||
| 			</div> | ||||
| 
 | ||||
| 			{{if .ShowMemberAndTeamTab}} | ||||
| 			<div class="ui five wide column"> | ||||
| 				{{if .CanCreateOrgRepo}} | ||||
| 					<div class="center aligned"> | ||||
| @ -53,19 +54,20 @@ | ||||
| 					</div> | ||||
| 					<div class="divider"></div> | ||||
| 				{{end}} | ||||
| 				<h4 class="ui top attached header gt-df"> | ||||
| 					<strong class="gt-f1">{{.locale.Tr "org.members"}}</strong> | ||||
| 					<a class="text grey gt-dif gt-ac" href="{{.OrgLink}}/members"><span>{{.MembersTotal}}</span> {{svg "octicon-chevron-right"}}</a> | ||||
| 				</h4> | ||||
| 				<div class="ui attached segment members"> | ||||
| 					{{$isMember := .IsOrganizationMember}} | ||||
| 					{{range .Members}} | ||||
| 						{{if or $isMember (call $.IsPublicMember .ID)}} | ||||
| 							<a href="{{.HomeLink}}" title="{{.Name}}{{if .FullName}} ({{.FullName}}){{end}}">{{ctx.AvatarUtils.Avatar . 48}}</a> | ||||
| 				{{if .NumMembers}} | ||||
| 					<h4 class="ui top attached header gt-df"> | ||||
| 						<strong class="gt-f1">{{.locale.Tr "org.members"}}</strong> | ||||
| 						<a class="text grey gt-dif gt-ac" href="{{.OrgLink}}/members"><span>{{.NumMembers}}</span> {{svg "octicon-chevron-right"}}</a> | ||||
| 					</h4> | ||||
| 					<div class="ui attached segment members"> | ||||
| 						{{$isMember := .IsOrganizationMember}} | ||||
| 						{{range .Members}} | ||||
| 							{{if or $isMember (call $.IsPublicMember .ID)}} | ||||
| 								<a href="{{.HomeLink}}" title="{{.Name}}{{if .FullName}} ({{.FullName}}){{end}}">{{ctx.AvatarUtils.Avatar . 48}}</a> | ||||
| 							{{end}} | ||||
| 						{{end}} | ||||
| 					{{end}} | ||||
| 				</div> | ||||
| 
 | ||||
| 					</div> | ||||
| 				{{end}} | ||||
| 				{{if .IsOrganizationMember}} | ||||
| 					<div class="ui top attached header gt-df"> | ||||
| 						<strong class="gt-f1">{{.locale.Tr "org.teams"}}</strong> | ||||
| @ -89,6 +91,7 @@ | ||||
| 					{{end}} | ||||
| 				{{end}} | ||||
| 			</div> | ||||
| 			{{end}} | ||||
| 		</div> | ||||
| 	</div> | ||||
| </div> | ||||
|  | ||||
| @ -21,13 +21,13 @@ | ||||
| 			{{svg "octicon-code"}} {{$.locale.Tr "org.code"}} | ||||
| 		</a> | ||||
| 		{{end}} | ||||
| 		{{if .IsOrganizationMember}} | ||||
| 		{{if .NumMembers}} | ||||
| 			<a class="{{if $.PageIsOrgMembers}}active {{end}}item" href="{{$.OrgLink}}/members"> | ||||
| 				{{svg "octicon-person"}} {{$.locale.Tr "org.members"}} | ||||
| 				{{if .NumMembers}} | ||||
| 					<div class="ui small label">{{.NumMembers}}</div> | ||||
| 				{{end}} | ||||
| 				<div class="ui small label">{{.NumMembers}}</div> | ||||
| 			</a> | ||||
| 		{{end}} | ||||
| 		{{if .IsOrganizationMember}} | ||||
| 			<a class="{{if $.PageIsOrgTeams}}active {{end}}item" href="{{$.OrgLink}}/teams"> | ||||
| 				{{svg "octicon-people"}} {{$.locale.Tr "org.teams"}} | ||||
| 				{{if .NumTeams}} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user