Browse Source

#3169

update
fix-1523
chenyifan01 2 years ago
parent
commit
363dc27fa5
4 changed files with 30 additions and 16 deletions
  1. +6
    -6
      models/list_options.go
  2. +13
    -1
      routers/home.go
  3. +3
    -1
      routers/routes/routes.go
  4. +8
    -8
      services/repository/square.go

+ 6
- 6
models/list_options.go View File

@@ -10,15 +10,15 @@ import (
"xorm.io/xorm"
)

type SelectedPageSize int
type AvailablePageSize int

const (
PageSize15 SelectedPageSize = 15
PageSize30 SelectedPageSize = 30
PageSize50 SelectedPageSize = 50
PageSize15 AvailablePageSize = 15
PageSize30 AvailablePageSize = 30
PageSize50 AvailablePageSize = 50
)

func (s SelectedPageSize) IsLegal() bool {
func (s AvailablePageSize) IsLegal() bool {
switch s {
case PageSize30, PageSize50, PageSize15:
return true
@@ -26,7 +26,7 @@ func (s SelectedPageSize) IsLegal() bool {
return false
}

func (s SelectedPageSize) Int() int {
func (s AvailablePageSize) Int() int {
return int(s)
}



+ 13
- 1
routers/home.go View File

@@ -43,6 +43,8 @@ const (
tplHomeTerm base.TplName = "terms"
tplHomePrivacy base.TplName = "privacy"
tplResoruceDesc base.TplName = "resource_desc"
tplRepoSquare base.TplName = "explore/repos/square"
tplRepoSearch base.TplName = "explore/repos/search"
)

// Home render home page
@@ -296,6 +298,13 @@ func ExploreRepos(ctx *context.Context) {
})
}

func GetRepoSquarePage(ctx *context.Context) {
ctx.HTML(200, tplRepoSquare)
}
func GetRepoSearchPage(ctx *context.Context) {
ctx.HTML(200, tplRepoSearch)
}

func RepoSquare(ctx *context.Context) {
var result []*models.Repository4Card
var err error
@@ -351,7 +360,10 @@ func RepoFind(ctx *context.Context) {
topic := strings.Trim(ctx.Query("topic"), " ")
sort := strings.Trim(ctx.Query("sort"), " ")
page := ctx.QueryInt("page")
pageSize := models.SelectedPageSize(ctx.QueryInt("pageSize"))
pageSize := models.AvailablePageSize(ctx.QueryInt("pageSize"))
if pageSize == 0 {
pageSize = models.PageSize15
}
if !pageSize.IsLegal() {
ctx.JSON(http.StatusOK, response.ServerError("pageSize illegal"))
return


+ 3
- 1
routers/routes/routes.go View File

@@ -371,8 +371,10 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Get("/images/star", repo.GetStarImages)

m.Group("/repos", func() {
m.Get("", routers.ExploreRepos)
//m.Get("", routers.ExploreRepos)
m.Get("", routers.GetRepoSearchPage)
m.Group("/square", func() {
m.Get("", routers.GetRepoSquarePage)
m.Get("/tab", routers.RepoSquare)
m.Get("/active-user", routers.ActiveUser)
m.Get("/active-org", routers.ActiveOrg)


+ 8
- 8
services/repository/square.go View File

@@ -85,31 +85,31 @@ func FindRepos(opts FindReposOptions) (*models.FindReposResponse, error) {

switch opts.Sort {
//1.近期热门:按最近1个月浏览量倒序排序,最近1个月浏览量>最近更新>项目名称升序
case "most_popular":
case "mostpopular":
orderBy = models.SearchOrderByLastMonthVisitsReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically
//2.近期活跃:按提交增长量(最近4个月commit数)倒序排序,提交增长量>最近更新>项目名称升序。
case "most_active":
case "mostactive":
orderBy = models.SearchOrderByLastFourMonthCommitsReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically
//3.最近更新:按最近更新>项目名称升序排序。
case "recent_update":
case "recentupdate":
orderBy = models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically
//4.最近创建:按项目创建时间排序,最近的排前面。最近创建>项目名称升序。
case "newest":
orderBy = models.SearchOrderByNewest + "," + models.SearchOrderByAlphabetically
//5.点赞最多:按点赞数倒序排序。点赞数>最近更新>项目名称升序。
case "most_stars":
case "moststars":
orderBy = models.SearchOrderByStarsReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically
//6.派生最多:按派生数倒序排序。派生数>最近更新>项目名称升序。
case "most_forks":
case "mostforks":
orderBy = models.SearchOrderByForksReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically
//7.数据集最多:按项目包含的数据集文件数量倒序排序,数据集文件数>最近更新>项目名称升序。
case "most_datasets":
case "mostdatasets":
orderBy = models.SearchOrderByDatasetCntReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically
//8.AI任务最多:按项目包含的AI任务数量倒序排序,AI任务数>最近更新>项目名称升序。
case "most_ai_tasks":
case "mostaitasks":
orderBy = models.SearchOrderByAiTaskCntReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically
//9.模型最多:按项目包含的模型数量倒序排序,模型大小为0则不统计。模型数>最近更新>项目名称升序。
case "most_models":
case "mostmodels":
orderBy = models.SearchOrderByModelCntReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically

default:


Loading…
Cancel
Save