diff options
author | Bwko <bouwko@gmail.com> | 2016-12-24 15:42:26 +0100 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2016-12-24 22:42:26 +0800 |
commit | fa3abc22c06843bb27089e8c0f7aebf0f5d83fcc (patch) | |
tree | f7763df24980f419698ea75f4cd2d080784a62d2 /routers | |
parent | c1e92eeb72fe92cc30c80985e5e2b970f4735067 (diff) | |
download | gitea-fa3abc22c06843bb27089e8c0f7aebf0f5d83fcc.tar.gz gitea-fa3abc22c06843bb27089e8c0f7aebf0f5d83fcc.zip |
Added sorting to organizations, repos & users page (#222)
Diffstat (limited to 'routers')
-rw-r--r-- | routers/admin/orgs.go | 1 | ||||
-rw-r--r-- | routers/admin/repos.go | 1 | ||||
-rw-r--r-- | routers/admin/users.go | 1 | ||||
-rw-r--r-- | routers/home.go | 75 |
4 files changed, 58 insertions, 20 deletions
diff --git a/routers/admin/orgs.go b/routers/admin/orgs.go index 88d88d1c05..eeb9002bc2 100644 --- a/routers/admin/orgs.go +++ b/routers/admin/orgs.go @@ -27,7 +27,6 @@ func Organizations(ctx *context.Context) { Counter: models.CountOrganizations, Ranger: models.Organizations, PageSize: setting.UI.Admin.OrgPagingNum, - OrderBy: "id ASC", TplName: tplOrgs, }) } diff --git a/routers/admin/repos.go b/routers/admin/repos.go index 86a9ea9405..f2f402db76 100644 --- a/routers/admin/repos.go +++ b/routers/admin/repos.go @@ -28,7 +28,6 @@ func Repos(ctx *context.Context) { Ranger: models.Repositories, Private: true, PageSize: setting.UI.Admin.RepoPagingNum, - OrderBy: "owner_id ASC, name ASC, id ASC", TplName: tplRepos, }) } diff --git a/routers/admin/users.go b/routers/admin/users.go index fa61a46938..782012d95d 100644 --- a/routers/admin/users.go +++ b/routers/admin/users.go @@ -35,7 +35,6 @@ func Users(ctx *context.Context) { Counter: models.CountUsers, Ranger: models.Users, PageSize: setting.UI.Admin.UserPagingNum, - OrderBy: "id ASC", TplName: tplUsers, }) } diff --git a/routers/home.go b/routers/home.go index 3b51148762..d3c48f7aae 100644 --- a/routers/home.go +++ b/routers/home.go @@ -55,10 +55,10 @@ func Home(ctx *context.Context) { // RepoSearchOptions when calling search repositories type RepoSearchOptions struct { Counter func(bool) int64 - Ranger func(int, int) ([]*models.Repository, error) + Ranger func(*models.SearchRepoOptions) ([]*models.Repository, error) + Searcher *models.User Private bool PageSize int - OrderBy string TplName base.TplName } @@ -78,14 +78,36 @@ func RenderRepoSearch(ctx *context.Context, opts *RepoSearchOptions) { } var ( - repos []*models.Repository - count int64 - err error + repos []*models.Repository + count int64 + err error + orderBy string ) + ctx.Data["SortType"] = ctx.Query("sort") + + switch ctx.Query("sort") { + case "oldest": + orderBy = "created_unix ASC" + case "recentupdate": + orderBy = "updated_unix DESC" + case "leastupdate": + orderBy = "updated_unix ASC" + case "reversealphabetically": + orderBy = "name DESC" + case "alphabetically": + orderBy = "name ASC" + default: + orderBy = "created_unix DESC" + } keyword := ctx.Query("q") if len(keyword) == 0 { - repos, err = opts.Ranger(page, opts.PageSize) + repos, err = opts.Ranger(&models.SearchRepoOptions{ + Page: page, + PageSize: opts.PageSize, + Searcher: ctx.User, + OrderBy: orderBy, + }) if err != nil { ctx.Handle(500, "opts.Ranger", err) return @@ -95,10 +117,11 @@ func RenderRepoSearch(ctx *context.Context, opts *RepoSearchOptions) { if isKeywordValid(keyword) { repos, count, err = models.SearchRepositoryByName(&models.SearchRepoOptions{ Keyword: keyword, - OrderBy: opts.OrderBy, + OrderBy: orderBy, Private: opts.Private, Page: page, PageSize: opts.PageSize, + Searcher: ctx.User, }) if err != nil { ctx.Handle(500, "SearchRepositoryByName", err) @@ -131,7 +154,7 @@ func ExploreRepos(ctx *context.Context) { Counter: models.CountRepositories, Ranger: models.GetRecentUpdatedRepositories, PageSize: setting.UI.ExplorePagingNum, - OrderBy: "updated_unix DESC", + Searcher: ctx.User, TplName: tplExploreRepos, }) } @@ -140,9 +163,8 @@ func ExploreRepos(ctx *context.Context) { type UserSearchOptions struct { Type models.UserType Counter func() int64 - Ranger func(int, int) ([]*models.User, error) + Ranger func(*models.SearchUserOptions) ([]*models.User, error) PageSize int - OrderBy string TplName base.TplName } @@ -154,14 +176,35 @@ func RenderUserSearch(ctx *context.Context, opts *UserSearchOptions) { } var ( - users []*models.User - count int64 - err error + users []*models.User + count int64 + err error + orderBy string ) + ctx.Data["SortType"] = ctx.Query("sort") + //OrderBy: "id ASC", + switch ctx.Query("sort") { + case "oldest": + orderBy = "id ASC" + case "recentupdate": + orderBy = "updated_unix DESC" + case "leastupdate": + orderBy = "updated_unix ASC" + case "reversealphabetically": + orderBy = "name DESC" + case "alphabetically": + orderBy = "name ASC" + default: + orderBy = "id DESC" + } + keyword := ctx.Query("q") if len(keyword) == 0 { - users, err = opts.Ranger(page, opts.PageSize) + users, err = opts.Ranger(&models.SearchUserOptions{OrderBy: orderBy, + Page: page, + PageSize: opts.PageSize, + }) if err != nil { ctx.Handle(500, "opts.Ranger", err) return @@ -172,7 +215,7 @@ func RenderUserSearch(ctx *context.Context, opts *UserSearchOptions) { users, count, err = models.SearchUserByName(&models.SearchUserOptions{ Keyword: keyword, Type: opts.Type, - OrderBy: opts.OrderBy, + OrderBy: orderBy, Page: page, PageSize: opts.PageSize, }) @@ -201,7 +244,6 @@ func ExploreUsers(ctx *context.Context) { Counter: models.CountUsers, Ranger: models.Users, PageSize: setting.UI.ExplorePagingNum, - OrderBy: "name ASC", TplName: tplExploreUsers, }) } @@ -217,7 +259,6 @@ func ExploreOrganizations(ctx *context.Context) { Counter: models.CountOrganizations, Ranger: models.Organizations, PageSize: setting.UI.ExplorePagingNum, - OrderBy: "name ASC", TplName: tplExploreOrganizations, }) } |