summaryrefslogtreecommitdiffstats
path: root/routers/repo
diff options
context:
space:
mode:
authorLauris BH <lauris@nix.lv>2019-01-23 06:10:38 +0200
committertechknowlogick <matti@mdranta.net>2019-01-22 23:10:38 -0500
commit075649572d4472b588a8484ce3d7c37df7621f85 (patch)
tree5658dfda46b32c0686895615bceffbdac01ef4a3 /routers/repo
parent6a949af8ca3aaa30f917c8ed792ae88bbaafdd75 (diff)
downloadgitea-075649572d4472b588a8484ce3d7c37df7621f85.tar.gz
gitea-075649572d4472b588a8484ce3d7c37df7621f85.zip
Add the ability to use multiple labels as filters(#5786)
Diffstat (limited to 'routers/repo')
-rw-r--r--routers/repo/issue.go15
1 files changed, 13 insertions, 2 deletions
diff --git a/routers/repo/issue.go b/routers/repo/issue.go
index 8e0b22eb62..588e727ca4 100644
--- a/routers/repo/issue.go
+++ b/routers/repo/issue.go
@@ -112,8 +112,15 @@ func issues(ctx *context.Context, milestoneID int64, isPullOption util.OptionalB
}
repo := ctx.Repo.Repository
+ var labelIDs []int64
selectLabels := ctx.Query("labels")
-
+ if len(selectLabels) > 0 && selectLabels != "0" {
+ labelIDs, err = base.StringsToInt64s(strings.Split(selectLabels, ","))
+ if err != nil {
+ ctx.ServerError("StringsToInt64s", err)
+ return
+ }
+ }
isShowClosed := ctx.Query("state") == "closed"
keyword := strings.Trim(ctx.Query("q"), " ")
@@ -176,7 +183,7 @@ func issues(ctx *context.Context, milestoneID int64, isPullOption util.OptionalB
PageSize: setting.UI.IssuePagingNum,
IsClosed: util.OptionalBoolOf(isShowClosed),
IsPull: isPullOption,
- Labels: selectLabels,
+ LabelIDs: labelIDs,
SortType: sortType,
IssueIDs: issueIDs,
})
@@ -210,7 +217,11 @@ func issues(ctx *context.Context, milestoneID int64, isPullOption util.OptionalB
ctx.ServerError("GetLabelsByRepoID", err)
return
}
+ for _, l := range labels {
+ l.LoadSelectedLabelsAfterClick(labelIDs)
+ }
ctx.Data["Labels"] = labels
+ ctx.Data["NumLabels"] = len(labels)
if ctx.QueryInt64("assignee") == 0 {
assigneeID = 0 // Reset ID to prevent unexpected selection of assignee.