diff --git a/models/organization/team.go b/models/organization/team.go index 209471e013..b7b93821ad 100644 --- a/models/organization/team.go +++ b/models/organization/team.go @@ -161,10 +161,16 @@ func (t *Team) LoadRepositories(ctx context.Context) (err error) { return err } -// LoadMembers returns paginated members in team of organization. +// LoadMembers loads the members of the team in t.Members. func (t *Team) LoadMembers(ctx context.Context) (err error) { + return t.LoadPaginatedMembers(ctx, db.ListOptionsAll) +} + +// LoadPaginatedMembers loads paginated members of the team in t.Members. +func (t *Team) LoadPaginatedMembers(ctx context.Context, listOptions db.ListOptions) (err error) { t.Members, err = GetTeamMembers(ctx, &SearchMembersOptions{ - TeamID: t.ID, + ListOptions: listOptions, + TeamID: t.ID, }) return err } diff --git a/routers/web/org/teams.go b/routers/web/org/teams.go index 1785623855..1b76a6abf9 100644 --- a/routers/web/org/teams.go +++ b/routers/web/org/teams.go @@ -377,10 +377,18 @@ func TeamMembers(ctx *context.Context) { return } - if err := ctx.Org.Team.LoadMembers(ctx); err != nil { + page := max(ctx.FormInt("page"), 1) + total := ctx.Org.Team.NumMembers + pager := context.NewPagination(total, setting.UI.MembersPagingNum, page, 5) + opts := db.ListOptions{} + opts.Page = page + opts.PageSize = setting.UI.MembersPagingNum + + if err := ctx.Org.Team.LoadPaginatedMembers(ctx, opts); err != nil { ctx.ServerError("GetMembers", err) return } + ctx.Data["Page"] = pager ctx.Data["Units"] = unit_model.Units invites, err := org_model.GetInvitesByTeamID(ctx, ctx.Org.Team.ID) diff --git a/templates/org/team/members.tmpl b/templates/org/team/members.tmpl index 60667e963d..e027db68da 100644 --- a/templates/org/team/members.tmpl +++ b/templates/org/team/members.tmpl @@ -49,6 +49,7 @@ {{end}} + {{template "base/paginate" .}} {{if and .Invites $.IsOrganizationOwner}}