diff options
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) { |