Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix display problems of members and teams unit #26363

Merged
14 changes: 14 additions & 0 deletions modules/context/org.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -203,6 +216,7 @@ func HandleOrgAssignment(ctx *Context, args ...bool) {
return
}
}
ctx.Data["NumTeams"] = len(ctx.Org.Teams)
}

teamName := ctx.Params(":team")
Expand Down
21 changes: 3 additions & 18 deletions routers/web/org/home.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,39 +119,22 @@ 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)
}

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
Expand All @@ -164,5 +147,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)
}
29 changes: 16 additions & 13 deletions templates/org/home.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -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">
Expand All @@ -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}}">{{avatar $.Context . 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}}">{{avatar $.Context . 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>
Expand All @@ -89,6 +91,7 @@
{{end}}
{{end}}
</div>
{{end}}
</div>
</div>
</div>
Expand Down
8 changes: 4 additions & 4 deletions templates/org/menu.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@
{{svg "octicon-code"}}&nbsp;{{$.locale.Tr "org.code"}}
</a>
{{end}}
{{if .IsOrganizationMember}}
{{if .NumMembers}}
<a class="{{if $.PageIsOrgMembers}}active {{end}}item" href="{{$.OrgLink}}/members">
{{svg "octicon-person"}}&nbsp;{{$.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"}}&nbsp;{{$.locale.Tr "org.teams"}}
{{if .NumTeams}}
Expand Down