|
|
|
@ -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), |
|
|
|
|