|
|
@@ -25,6 +25,8 @@ const ( |
|
|
|
tplHome base.TplName = "home" |
|
|
|
// tplExploreRepos explore repositories page template |
|
|
|
tplExploreRepos base.TplName = "explore/repos" |
|
|
|
// tplExploreDataset explore datasets page template |
|
|
|
tplExploreDataset base.TplName = "explore/datasets" |
|
|
|
// tplExploreUsers explore users page template |
|
|
|
tplExploreUsers base.TplName = "explore/users" |
|
|
|
// tplExploreOrganizations explore organizations page template |
|
|
@@ -188,6 +190,77 @@ func ExploreRepos(ctx *context.Context) { |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
func ExploreDatasets(ctx *context.Context) { |
|
|
|
ctx.Data["Title"] = ctx.Tr("explore") |
|
|
|
ctx.Data["PageIsExplore"] = true |
|
|
|
ctx.Data["PageIsExploreDatasets"] = true |
|
|
|
// ctx.Data["IsRepoIndexerEnabled"] = setting.Indexer.RepoIndexerEnabled |
|
|
|
|
|
|
|
var ( |
|
|
|
datasets []*models.Dataset |
|
|
|
count int64 |
|
|
|
err error |
|
|
|
orderBy models.SearchOrderBy |
|
|
|
) |
|
|
|
page := ctx.QueryInt("page") |
|
|
|
if page <= 0 { |
|
|
|
page = 1 |
|
|
|
} |
|
|
|
ctx.Data["SortType"] = ctx.Query("sort") |
|
|
|
switch ctx.Query("sort") { |
|
|
|
case "newest": |
|
|
|
orderBy = models.SearchOrderByNewest |
|
|
|
case "oldest": |
|
|
|
orderBy = models.SearchOrderByOldest |
|
|
|
case "recentupdate": |
|
|
|
orderBy = models.SearchOrderByRecentUpdated |
|
|
|
case "leastupdate": |
|
|
|
orderBy = models.SearchOrderByLeastUpdated |
|
|
|
case "reversealphabetically": |
|
|
|
orderBy = models.SearchOrderByAlphabeticallyReverse |
|
|
|
case "alphabetically": |
|
|
|
orderBy = models.SearchOrderByAlphabetically |
|
|
|
case "reversesize": |
|
|
|
orderBy = models.SearchOrderBySizeReverse |
|
|
|
default: |
|
|
|
ctx.Data["SortType"] = "recentupdate" |
|
|
|
orderBy = models.SearchOrderByRecentUpdated |
|
|
|
} |
|
|
|
|
|
|
|
keyword := strings.Trim(ctx.Query("q"), " ") |
|
|
|
|
|
|
|
var ownerID int64 |
|
|
|
if ctx.User != nil && !ctx.User.IsAdmin { |
|
|
|
ownerID = ctx.User.ID |
|
|
|
} |
|
|
|
opts := &models.SearchDatasetOptions{ |
|
|
|
Keyword: keyword, |
|
|
|
IncludePublic: true, |
|
|
|
SearchOrderBy: orderBy, |
|
|
|
OwnerID: ownerID, |
|
|
|
ListOptions: models.ListOptions{ |
|
|
|
Page: page, |
|
|
|
PageSize: setting.UI.ExplorePagingNum, |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
datasets, count, err = models.SearchDataset(opts) |
|
|
|
if err != nil { |
|
|
|
ctx.ServerError("SearchDatasets", err) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
pager := context.NewPagination(int(count), opts.PageSize, page, 5) |
|
|
|
pager.SetDefaultParams(ctx) |
|
|
|
ctx.Data["Page"] = pager |
|
|
|
|
|
|
|
ctx.Data["Keyword"] = opts.Keyword |
|
|
|
ctx.Data["Datasets"] = datasets |
|
|
|
ctx.Data["Total"] = count |
|
|
|
ctx.Data["PageIsDatasets"] = true |
|
|
|
ctx.HTML(200, tplExploreDataset) |
|
|
|
} |
|
|
|
|
|
|
|
// RenderUserSearch render user search page |
|
|
|
func RenderUserSearch(ctx *context.Context, opts *models.SearchUserOptions, tplName base.TplName) { |
|
|
|
opts.Page = ctx.QueryInt("page") |
|
|
|