mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
Allow package version sorting (#21453)
This commit is contained in:
@@ -163,6 +163,17 @@ type SearchValue struct {
|
||||
ExactMatch bool
|
||||
}
|
||||
|
||||
type VersionSort = string
|
||||
|
||||
const (
|
||||
SortNameAsc VersionSort = "name_asc"
|
||||
SortNameDesc VersionSort = "name_desc"
|
||||
SortVersionAsc VersionSort = "version_asc"
|
||||
SortVersionDesc VersionSort = "version_desc"
|
||||
SortCreatedAsc VersionSort = "created_asc"
|
||||
SortCreatedDesc VersionSort = "created_desc"
|
||||
)
|
||||
|
||||
// PackageSearchOptions are options for SearchXXX methods
|
||||
// Besides IsInternal are all fields optional and are not used if they have their default value (nil, "", 0)
|
||||
type PackageSearchOptions struct {
|
||||
@@ -176,7 +187,7 @@ type PackageSearchOptions struct {
|
||||
IsInternal util.OptionalBool
|
||||
HasFileWithName string // only results are found which are associated with a file with the specific name
|
||||
HasFiles util.OptionalBool // only results are found which have associated files
|
||||
Sort string
|
||||
Sort VersionSort
|
||||
db.Paginator
|
||||
}
|
||||
|
||||
@@ -254,15 +265,15 @@ func (opts *PackageSearchOptions) toConds() builder.Cond {
|
||||
|
||||
func (opts *PackageSearchOptions) configureOrderBy(e db.Engine) {
|
||||
switch opts.Sort {
|
||||
case "alphabetically":
|
||||
case SortNameAsc:
|
||||
e.Asc("package.name")
|
||||
case "reversealphabetically":
|
||||
case SortNameDesc:
|
||||
e.Desc("package.name")
|
||||
case "highestversion":
|
||||
case SortVersionDesc:
|
||||
e.Desc("package_version.version")
|
||||
case "lowestversion":
|
||||
case SortVersionAsc:
|
||||
e.Asc("package_version.version")
|
||||
case "oldest":
|
||||
case SortCreatedAsc:
|
||||
e.Asc("package_version.created_unix")
|
||||
default:
|
||||
e.Desc("package_version.created_unix")
|
||||
|
Reference in New Issue
Block a user