diff options
author | Unknwon <u@gogs.io> | 2017-03-17 19:17:40 -0400 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2017-03-17 19:17:40 -0400 |
commit | cac7af2c783e12b68e8263b57a150d19f085f4da (patch) | |
tree | 102491e2450d81a414e464523768337c495e6f8c /routers/admin/repos.go | |
parent | 2d4dc544bea95239f620246610ccd9ed0a0ffd46 (diff) |
explore: able list and search for private but accessible repositories (#3088)
Diffstat (limited to 'routers/admin/repos.go')
-rw-r--r-- | routers/admin/repos.go | 53 |
1 files changed, 44 insertions, 9 deletions
diff --git a/routers/admin/repos.go b/routers/admin/repos.go index 11448a3e..4f688a92 100644 --- a/routers/admin/repos.go +++ b/routers/admin/repos.go @@ -5,13 +5,13 @@ package admin import ( + "github.com/Unknwon/paginater" log "gopkg.in/clog.v1" "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/context" "github.com/gogits/gogs/modules/setting" - "github.com/gogits/gogs/routers" ) const ( @@ -23,14 +23,49 @@ func Repos(ctx *context.Context) { ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminRepositories"] = true - routers.RenderRepoSearch(ctx, &routers.RepoSearchOptions{ - Counter: models.CountRepositories, - Ranger: models.Repositories, - Private: true, - PageSize: setting.UI.Admin.RepoPagingNum, - OrderBy: "id ASC", - TplName: REPOS, - }) + page := ctx.QueryInt("page") + if page <= 0 { + page = 1 + } + + var ( + repos []*models.Repository + count int64 + err error + ) + + keyword := ctx.Query("q") + if len(keyword) == 0 { + repos, err = models.Repositories(page, setting.UI.Admin.RepoPagingNum) + if err != nil { + ctx.Handle(500, "Repositories", err) + return + } + count = models.CountRepositories(true) + } else { + repos, count, err = models.SearchRepositoryByName(&models.SearchRepoOptions{ + Keyword: keyword, + OrderBy: "id ASC", + Private: true, + Page: page, + PageSize: setting.UI.Admin.RepoPagingNum, + }) + if err != nil { + ctx.Handle(500, "SearchRepositoryByName", err) + return + } + } + ctx.Data["Keyword"] = keyword + ctx.Data["Total"] = count + ctx.Data["Page"] = paginater.New(int(count), setting.UI.Admin.RepoPagingNum, page, 5) + + if err = models.RepositoryList(repos).LoadAttributes(); err != nil { + ctx.Handle(500, "LoadAttributes", err) + return + } + ctx.Data["Repos"] = repos + + ctx.HTML(200, REPOS) } func DeleteRepo(ctx *context.Context) { |