From ef3dbf02ea0d133dffb20583ac15c761951b9c8f Mon Sep 17 00:00:00 2001 From: Anirudh Oppiliappan Date: Sun, 8 Feb 2026 15:22:18 +0200 Subject: [PATCH] appview/{pipelines,pages}: filter pipelines list by push/PR Signed-off-by: Anirudh Oppiliappan --- appview/pages/pages.go | 10 +++-- .../templates/repo/pipelines/pipelines.html | 39 ++++++++++++++++--- appview/pipelines/pipelines.go | 24 ++++++++++-- 3 files changed, 61 insertions(+), 12 deletions(-) diff --git a/appview/pages/pages.go b/appview/pages/pages.go index 813ab2f4..c7fa9ff9 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -1348,10 +1348,12 @@ func (p *Pages) EditLabelPanel(w io.Writer, params EditLabelPanelParams) error { } type PipelinesParams struct { - LoggedInUser *oauth.MultiAccountUser - RepoInfo repoinfo.RepoInfo - Pipelines []models.Pipeline - Active string + LoggedInUser *oauth.MultiAccountUser + RepoInfo repoinfo.RepoInfo + Pipelines []models.Pipeline + Active string + FilteringByPush bool + FilteringByPR bool } func (p *Pages) Pipelines(w io.Writer, params PipelinesParams) error { diff --git a/appview/pages/templates/repo/pipelines/pipelines.html b/appview/pages/templates/repo/pipelines/pipelines.html index 1ac2bc6f..5d02564d 100644 --- a/appview/pages/templates/repo/pipelines/pipelines.html +++ b/appview/pages/templates/repo/pipelines/pipelines.html @@ -7,12 +7,41 @@ {{ end }} {{ define "repoContent" }} -
-
- {{ 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, }) } -- 2.51.2