diff options
author | Jason Song <i@wolfogre.com> | 2023-08-18 01:42:17 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-17 12:42:17 -0500 |
commit | b658f2c61bc70f0ce79d1be7eb1d7654273716e3 (patch) | |
tree | 9fe1e2dd5f5aa0821cb4bfb0cb378d5cd626de89 /routers/web | |
parent | 47fddaadc8b4c8d4d4359d6209b9fe06d6387a30 (diff) | |
download | gitea-b658f2c61bc70f0ce79d1be7eb1d7654273716e3.tar.gz gitea-b658f2c61bc70f0ce79d1be7eb1d7654273716e3.zip |
Return empty when searching issues with no repos (#26545)
Diffstat (limited to 'routers/web')
-rw-r--r-- | routers/web/repo/issue.go | 4 | ||||
-rw-r--r-- | routers/web/user/home.go | 20 |
2 files changed, 19 insertions, 5 deletions
diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index 565687defb..ede0ceed3b 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -2503,6 +2503,10 @@ func SearchIssues(ctx *context.Context) { ctx.Error(http.StatusInternalServerError, "SearchRepositoryIDs", err.Error()) return } + if len(repoIDs) == 0 { + // no repos found, don't let the indexer return all repos + repoIDs = []int64{0} + } } keyword := ctx.FormTrim("q") diff --git a/routers/web/user/home.go b/routers/web/user/home.go index bf19cc513d..8c1447f707 100644 --- a/routers/web/user/home.go +++ b/routers/web/user/home.go @@ -454,10 +454,21 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) { AllPublic: false, AllLimited: false, } - if team != nil { repoOpts.TeamID = team.ID } + { + ids, _, err := repo_model.SearchRepositoryIDs(repoOpts) + if err != nil { + ctx.ServerError("SearchRepositoryIDs", err) + return + } + opts.RepoIDs = ids + if len(opts.RepoIDs) == 0 { + // no repos found, don't let the indexer return all repos + opts.RepoIDs = []int64{0} + } + } switch filterMode { case issues_model.FilterModeAll: @@ -541,15 +552,13 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) { // Parse ctx.FormString("repos") and remember matched repo IDs for later. // Gets set when clicking filters on the issues overview page. repoIDs := getRepoIDs(ctx.FormString("repos")) - if len(repoIDs) == 0 { - repoIDs = accessibleRepos.Values() - } else { + if len(repoIDs) > 0 { // Remove repo IDs that are not accessible to the user. repoIDs = util.SliceRemoveAllFunc(repoIDs, func(v int64) bool { return !accessibleRepos.Contains(v) }) + opts.RepoIDs = repoIDs } - opts.RepoIDs = repoIDs // ------------------------------ // Get issues as defined by opts. @@ -609,6 +618,7 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) { var issueStats *issues_model.IssueStats { statsOpts := issues_model.IssuesOptions{ + RepoIDs: repoIDs, User: ctx.Doer, IsPull: util.OptionalBoolOf(isPullList), IsClosed: util.OptionalBoolOf(isShowClosed), |