- {{ len .Pipelines }} pipeline run{{ if ne (len .Pipelines) 1 }}s{{ end }}
+ {{ $active := "all" }}
+ {{ if .FilteringByPush }}
+ {{ $active = "push" }}
+ {{ else if .FilteringByPR }}
+ {{ $active = "pr" }}
+ {{ end }}
+
+ {{ $all :=
+ (dict
+ "Key" "all"
+ "Value" "all"
+ "Icon" "package"
+ "Meta" "") }}
+ {{ $push :=
+ (dict
+ "Key" "push"
+ "Value" "push"
+ "Icon" "git-commit-horizontal"
+ "Meta" "") }}
+ {{ $pr :=
+ (dict
+ "Key" "pr"
+ "Value" "pull request"
+ "Icon" "git-pull-request"
+ "Meta" "") }}
+ {{ $values := list $all $push $pr }}
+
+
+
+ {{ template "fragments/tabSelector" (dict "Name" "trigger" "Values" $values "Active" $active) }}
+
+
+ {{ len .Pipelines }} pipeline run{{ if ne (len .Pipelines) 1 }}s{{ end }}
+
-
-
{{ end }}
{{ define "repoAfter" }}
diff --git a/appview/pipelines/pipelines.go b/appview/pipelines/pipelines.go
index 8194354e..a3d36fe0 100644
--- a/appview/pipelines/pipelines.go
+++ b/appview/pipelines/pipelines.go
@@ -98,10 +98,28 @@ func (p *Pipelines) Index(w http.ResponseWriter, r *http.Request) {
return
}
+ // Filter by trigger
+ filterTrigger := r.URL.Query().Get("trigger")
+ var filtered []models.Pipeline
+ for _, pipeline := range ps {
+ if filterTrigger == "push" && pipeline.Trigger != nil && pipeline.Trigger.IsPush() {
+ filtered = append(filtered, pipeline)
+ } else if filterTrigger == "pr" && pipeline.Trigger != nil && pipeline.Trigger.IsPullRequest() {
+ filtered = append(filtered, pipeline)
+ } else if filterTrigger == "" || filterTrigger == "all" {
+ filtered = append(filtered, pipeline)
+ }
+ }
+
+ filteringByPush := filterTrigger == "push"
+ filteringByPR := filterTrigger == "pr"
+
p.pages.Pipelines(w, pages.PipelinesParams{
- LoggedInUser: user,
- RepoInfo: p.repoResolver.GetRepoInfo(r, user),
- Pipelines: ps,
+ LoggedInUser: user,
+ RepoInfo: p.repoResolver.GetRepoInfo(r, user),
+ Pipelines: filtered,
+ FilteringByPush: filteringByPush,
+ FilteringByPR: filteringByPR,
})
}