|
|
@ -196,7 +196,7 @@ type SearchOptions struct { |
|
|
|
RepoID int64 |
|
|
|
RepoID int64 |
|
|
|
Page int |
|
|
|
Page int |
|
|
|
IsClosed util.OptionalBool |
|
|
|
IsClosed util.OptionalBool |
|
|
|
SortType string |
|
|
|
OrderBy db.SearchOrderBy |
|
|
|
Type Type |
|
|
|
Type Type |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -226,26 +226,28 @@ func CountProjects(ctx context.Context, opts SearchOptions) (int64, error) { |
|
|
|
return db.GetEngine(ctx).Where(opts.toConds()).Count(new(Project)) |
|
|
|
return db.GetEngine(ctx).Where(opts.toConds()).Count(new(Project)) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func GetSearchOrderByBySortType(sortType string) db.SearchOrderBy { |
|
|
|
|
|
|
|
switch sortType { |
|
|
|
|
|
|
|
case "oldest": |
|
|
|
|
|
|
|
return db.SearchOrderByOldest |
|
|
|
|
|
|
|
case "recentupdate": |
|
|
|
|
|
|
|
return db.SearchOrderByRecentUpdated |
|
|
|
|
|
|
|
case "leastupdate": |
|
|
|
|
|
|
|
return db.SearchOrderByLeastUpdated |
|
|
|
|
|
|
|
default: |
|
|
|
|
|
|
|
return db.SearchOrderByNewest |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// FindProjects returns a list of all projects that have been created in the repository
|
|
|
|
// FindProjects returns a list of all projects that have been created in the repository
|
|
|
|
func FindProjects(ctx context.Context, opts SearchOptions) ([]*Project, int64, error) { |
|
|
|
func FindProjects(ctx context.Context, opts SearchOptions) ([]*Project, int64, error) { |
|
|
|
e := db.GetEngine(ctx).Where(opts.toConds()) |
|
|
|
e := db.GetEngine(ctx).Where(opts.toConds()).OrderBy(opts.OrderBy.String()) |
|
|
|
projects := make([]*Project, 0, setting.UI.IssuePagingNum) |
|
|
|
projects := make([]*Project, 0, setting.UI.IssuePagingNum) |
|
|
|
|
|
|
|
|
|
|
|
if opts.Page > 0 { |
|
|
|
if opts.Page > 0 { |
|
|
|
e = e.Limit(setting.UI.IssuePagingNum, (opts.Page-1)*setting.UI.IssuePagingNum) |
|
|
|
e = e.Limit(setting.UI.IssuePagingNum, (opts.Page-1)*setting.UI.IssuePagingNum) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
switch opts.SortType { |
|
|
|
|
|
|
|
case "oldest": |
|
|
|
|
|
|
|
e.Desc("created_unix") |
|
|
|
|
|
|
|
case "recentupdate": |
|
|
|
|
|
|
|
e.Desc("updated_unix") |
|
|
|
|
|
|
|
case "leastupdate": |
|
|
|
|
|
|
|
e.Asc("updated_unix") |
|
|
|
|
|
|
|
default: |
|
|
|
|
|
|
|
e.Asc("created_unix") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
count, err := e.FindAndCount(&projects) |
|
|
|
count, err := e.FindAndCount(&projects) |
|
|
|
return projects, count, err |
|
|
|
return projects, count, err |
|
|
|
} |
|
|
|
} |
|
|
|