@@ -5,20 +5,72 @@ package repo
55
66import "code.gitea.io/gitea/models/db"
77
8+ // Strings for sorting result
9+ const (
10+ // only used for repos
11+ SearchOrderByAlphabetically db.SearchOrderBy = "owner_name ASC, name ASC"
12+ SearchOrderByAlphabeticallyReverse db.SearchOrderBy = "owner_name DESC, name DESC"
13+ SearchOrderBySize db.SearchOrderBy = "size ASC"
14+ SearchOrderBySizeReverse db.SearchOrderBy = "size DESC"
15+ SearchOrderByGitSize db.SearchOrderBy = "git_size ASC"
16+ SearchOrderByGitSizeReverse db.SearchOrderBy = "git_size DESC"
17+ SearchOrderByLFSSize db.SearchOrderBy = "lfs_size ASC"
18+ SearchOrderByLFSSizeReverse db.SearchOrderBy = "lfs_size DESC"
19+ // alias as also used elsewhere
20+ SearchOrderByLeastUpdated db.SearchOrderBy = db .SearchOrderByLeastUpdated
21+ SearchOrderByRecentUpdated db.SearchOrderBy = db .SearchOrderByRecentUpdated
22+ SearchOrderByOldest db.SearchOrderBy = db .SearchOrderByOldest
23+ SearchOrderByNewest db.SearchOrderBy = db .SearchOrderByNewest
24+ SearchOrderByID db.SearchOrderBy = db .SearchOrderByID
25+ SearchOrderByIDReverse db.SearchOrderBy = db .SearchOrderByIDReverse
26+ SearchOrderByStars db.SearchOrderBy = db .SearchOrderByStars
27+ SearchOrderByStarsReverse db.SearchOrderBy = db .SearchOrderByStarsReverse
28+ SearchOrderByForks db.SearchOrderBy = db .SearchOrderByForks
29+ SearchOrderByForksReverse db.SearchOrderBy = db .SearchOrderByForksReverse
30+ )
31+
832// SearchOrderByMap represents all possible search order
933var SearchOrderByMap = map [string ]map [string ]db.SearchOrderBy {
1034 "asc" : {
11- "alpha" : "owner_name ASC, name ASC" ,
12- "created" : db .SearchOrderByOldest ,
13- "updated" : db .SearchOrderByLeastUpdated ,
14- "size" : db .SearchOrderBySize ,
15- "id" : db .SearchOrderByID ,
35+ "alpha" : SearchOrderByAlphabetically ,
36+ "created" : SearchOrderByOldest ,
37+ "updated" : SearchOrderByLeastUpdated ,
38+ "size" : SearchOrderBySize ,
39+ "git_size" : SearchOrderByGitSize ,
40+ "lfs_size" : SearchOrderByLFSSize ,
41+ "id" : SearchOrderByID ,
42+ "stars" : SearchOrderByStars ,
43+ "forks" : SearchOrderByForks ,
1644 },
1745 "desc" : {
18- "alpha" : "owner_name DESC, name DESC" ,
19- "created" : db .SearchOrderByNewest ,
20- "updated" : db .SearchOrderByRecentUpdated ,
21- "size" : db .SearchOrderBySizeReverse ,
22- "id" : db .SearchOrderByIDReverse ,
46+ "alpha" : SearchOrderByAlphabeticallyReverse ,
47+ "created" : SearchOrderByNewest ,
48+ "updated" : SearchOrderByRecentUpdated ,
49+ "size" : SearchOrderBySizeReverse ,
50+ "git_size" : SearchOrderByGitSizeReverse ,
51+ "lfs_size" : SearchOrderByLFSSizeReverse ,
52+ "id" : SearchOrderByIDReverse ,
53+ "stars" : SearchOrderByStarsReverse ,
54+ "forks" : SearchOrderByForksReverse ,
2355 },
2456}
57+
58+ // SearchOrderByFlatMap is similar to SearchOrderByMap but use human language keywords
59+ // to decide between asc and desc
60+ var SearchOrderByFlatMap = map [string ]db.SearchOrderBy {
61+ "newest" : SearchOrderByMap ["desc" ]["created" ],
62+ "oldest" : SearchOrderByMap ["asc" ]["created" ],
63+ "leastupdate" : SearchOrderByMap ["asc" ]["updated" ],
64+ "reversealphabetically" : SearchOrderByMap ["desc" ]["alpha" ],
65+ "alphabetically" : SearchOrderByMap ["asc" ]["alpha" ],
66+ "reversesize" : SearchOrderByMap ["desc" ]["size" ],
67+ "size" : SearchOrderByMap ["asc" ]["size" ],
68+ "reversegitsize" : SearchOrderByMap ["desc" ]["git_size" ],
69+ "gitsize" : SearchOrderByMap ["asc" ]["git_size" ],
70+ "reverselfssize" : SearchOrderByMap ["desc" ]["lfs_size" ],
71+ "lfssize" : SearchOrderByMap ["asc" ]["lfs_size" ],
72+ "moststars" : SearchOrderByMap ["desc" ]["stars" ],
73+ "feweststars" : SearchOrderByMap ["asc" ]["stars" ],
74+ "mostforks" : SearchOrderByMap ["desc" ]["forks" ],
75+ "fewestforks" : SearchOrderByMap ["asc" ]["forks" ],
76+ }
0 commit comments