mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 01:34:27 +00:00 
			
		
		
		
	Allow to set explore page default sort (#27951)
as title --- *Sponsored by Kithara Software GmbH*
This commit is contained in:
		@@ -1238,6 +1238,10 @@ LEVEL = Info
 | 
			
		||||
;; Whether to only show relevant repos on the explore page when no keyword is specified and default sorting is used.
 | 
			
		||||
;; A repo is considered irrelevant if it's a fork or if it has no metadata (no description, no icon, no topic).
 | 
			
		||||
;ONLY_SHOW_RELEVANT_REPOS = false
 | 
			
		||||
;;
 | 
			
		||||
;; Change the sort type of the explore pages.
 | 
			
		||||
;; Default is "recentupdate", but you also have "alphabetically", "reverselastlogin", "newest", "oldest".
 | 
			
		||||
;EXPLORE_PAGING_DEFAULT_SORT = recentupdate
 | 
			
		||||
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
 
 | 
			
		||||
@@ -229,8 +229,9 @@ The following configuration set `Content-Type: application/vnd.android.package-a
 | 
			
		||||
    add it to this config.
 | 
			
		||||
- `DEFAULT_SHOW_FULL_NAME`: **false**: Whether the full name of the users should be shown where possible. If the full name isn't set, the username will be used.
 | 
			
		||||
- `SEARCH_REPO_DESCRIPTION`: **true**: Whether to search within description at repository search on explore page.
 | 
			
		||||
- `ONLY_SHOW_RELEVANT_REPOS`: **false** Whether to only show relevant repos on the explore page when no keyword is specified and default sorting is used.
 | 
			
		||||
- `ONLY_SHOW_RELEVANT_REPOS`: **false**: Whether to only show relevant repos on the explore page when no keyword is specified and default sorting is used.
 | 
			
		||||
    A repo is considered irrelevant if it's a fork or if it has no metadata (no description, no icon, no topic).
 | 
			
		||||
- `EXPLORE_PAGING_DEFAULT_SORT`: **recentupdate**: Change the sort type of the explore pages. Valid values are "recentupdate", "alphabetically", "reverselastlogin", "newest" and "oldest"
 | 
			
		||||
 | 
			
		||||
### UI - Admin (`ui.admin`)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,7 @@ var UI = struct {
 | 
			
		||||
	CustomEmojisMap       map[string]string `ini:"-"`
 | 
			
		||||
	SearchRepoDescription bool
 | 
			
		||||
	OnlyShowRelevantRepos bool
 | 
			
		||||
	ExploreDefaultSort    string `ini:"EXPLORE_PAGING_DEFAULT_SORT"`
 | 
			
		||||
 | 
			
		||||
	Notification struct {
 | 
			
		||||
		MinTimeout            time.Duration
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ func Organizations(ctx *context.Context) {
 | 
			
		||||
	ctx.Data["PageIsAdminOrganizations"] = true
 | 
			
		||||
 | 
			
		||||
	if ctx.FormString("sort") == "" {
 | 
			
		||||
		ctx.SetFormString("sort", explore.UserSearchDefaultAdminSort)
 | 
			
		||||
		ctx.SetFormString("sort", UserSearchDefaultAdminSort)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	explore.RenderUserSearch(ctx, &user_model.SearchUserOptions{
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,9 @@ const (
 | 
			
		||||
	tplUserEdit base.TplName = "admin/user/edit"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// UserSearchDefaultAdminSort is the default sort type for admin view
 | 
			
		||||
const UserSearchDefaultAdminSort = "alphabetically"
 | 
			
		||||
 | 
			
		||||
// Users show all the users
 | 
			
		||||
func Users(ctx *context.Context) {
 | 
			
		||||
	ctx.Data["Title"] = ctx.Tr("admin.users")
 | 
			
		||||
@@ -56,7 +59,7 @@ func Users(ctx *context.Context) {
 | 
			
		||||
 | 
			
		||||
	sortType := ctx.FormString("sort")
 | 
			
		||||
	if sortType == "" {
 | 
			
		||||
		sortType = explore.UserSearchDefaultAdminSort
 | 
			
		||||
		sortType = UserSearchDefaultAdminSort
 | 
			
		||||
		ctx.SetFormString("sort", sortType)
 | 
			
		||||
	}
 | 
			
		||||
	ctx.PageData["adminUserListSearchForm"] = map[string]any{
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ func Organizations(ctx *context.Context) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ctx.FormString("sort") == "" {
 | 
			
		||||
		ctx.SetFormString("sort", UserSearchDefaultSortType)
 | 
			
		||||
		ctx.SetFormString("sort", setting.UI.ExploreDefaultSort)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	RenderUserSearch(ctx, &user_model.SearchUserOptions{
 | 
			
		||||
 
 | 
			
		||||
@@ -57,8 +57,13 @@ func RenderRepoSearch(ctx *context.Context, opts *RepoSearchOptions) {
 | 
			
		||||
		orderBy db.SearchOrderBy
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	ctx.Data["SortType"] = ctx.FormString("sort")
 | 
			
		||||
	switch ctx.FormString("sort") {
 | 
			
		||||
	sortOrder := ctx.FormString("sort")
 | 
			
		||||
	if sortOrder == "" {
 | 
			
		||||
		sortOrder = setting.UI.ExploreDefaultSort
 | 
			
		||||
	}
 | 
			
		||||
	ctx.Data["SortType"] = sortOrder
 | 
			
		||||
 | 
			
		||||
	switch sortOrder {
 | 
			
		||||
	case "newest":
 | 
			
		||||
		orderBy = db.SearchOrderByNewest
 | 
			
		||||
	case "oldest":
 | 
			
		||||
 
 | 
			
		||||
@@ -23,12 +23,6 @@ const (
 | 
			
		||||
	tplExploreUsers base.TplName = "explore/users"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// UserSearchDefaultSortType is the default sort type for user search
 | 
			
		||||
const (
 | 
			
		||||
	UserSearchDefaultSortType  = "recentupdate"
 | 
			
		||||
	UserSearchDefaultAdminSort = "alphabetically"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var nullByte = []byte{0x00}
 | 
			
		||||
 | 
			
		||||
func isKeywordValid(keyword string) bool {
 | 
			
		||||
@@ -60,8 +54,13 @@ func RenderUserSearch(ctx *context.Context, opts *user_model.SearchUserOptions,
 | 
			
		||||
 | 
			
		||||
	// we can not set orderBy to `models.SearchOrderByXxx`, because there may be a JOIN in the statement, different tables may have the same name columns
 | 
			
		||||
 | 
			
		||||
	ctx.Data["SortType"] = ctx.FormString("sort")
 | 
			
		||||
	switch ctx.FormString("sort") {
 | 
			
		||||
	sortOrder := ctx.FormString("sort")
 | 
			
		||||
	if sortOrder == "" {
 | 
			
		||||
		sortOrder = setting.UI.ExploreDefaultSort
 | 
			
		||||
	}
 | 
			
		||||
	ctx.Data["SortType"] = sortOrder
 | 
			
		||||
 | 
			
		||||
	switch sortOrder {
 | 
			
		||||
	case "newest":
 | 
			
		||||
		orderBy = "`user`.id DESC"
 | 
			
		||||
	case "oldest":
 | 
			
		||||
@@ -134,7 +133,7 @@ func Users(ctx *context.Context) {
 | 
			
		||||
	ctx.Data["IsRepoIndexerEnabled"] = setting.Indexer.RepoIndexerEnabled
 | 
			
		||||
 | 
			
		||||
	if ctx.FormString("sort") == "" {
 | 
			
		||||
		ctx.SetFormString("sort", UserSearchDefaultSortType)
 | 
			
		||||
		ctx.SetFormString("sort", setting.UI.ExploreDefaultSort)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	RenderUserSearch(ctx, &user_model.SearchUserOptions{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user