From a1aea5d628b5ecee7c4098edfaf1d36dfc6e346a Mon Sep 17 00:00:00 2001 From: dawn Date: Tue, 07 Jul 2026 11:34:05 +0000 Subject: [PATCH] appview/pages,appview/pipelines: refresh workflow UI Signed-off-by: dawn --- appview/pages/pages.go | 10 +++++----- appview/pages/templates/repo/pipelines/fragments/logBlock.html | 21 ++++++++++++++------- appview/pages/templates/repo/pipelines/fragments/logBlockEnd.html | 2 +- appview/pages/templates/repo/pipelines/fragments/logLine.html | 2 +- appview/pages/templates/repo/pipelines/fragments/workflowSymbol.html | 6 +++--- appview/pages/templates/repo/pipelines/workflow.html | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------- appview/pipelines/pipelines.go | 67 ++++++++++++++++++++++++++++++++++++++++++++++--------------------- docker-compose.yml | 3 +++ types/pipeline.go | 2 ++ 9 file(s) changed, 195 insertion(s)(+), 126 deletion(s)(-) diff --git a/appview/pages/pages.go b/appview/pages/pages.go --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -1720,11 +1720,11 @@ } type WorkflowParams struct { BaseParams - RepoInfo repoinfo.RepoInfo - Pipeline types.Pipeline - Workflow string - LogUrl string - Active string + RepoInfo repoinfo.RepoInfo + Pipeline types.Pipeline + Workflow string + SSHLogCommand string + Active string } func (p *Pages) Workflow(w io.Writer, params WorkflowParams) error { diff --git a/appview/pages/templates/repo/pipelines/fragments/logBlock.html b/appview/pages/templates/repo/pipelines/fragments/logBlock.html --- a/appview/pages/templates/repo/pipelines/fragments/logBlock.html +++ b/appview/pages/templates/repo/pipelines/fragments/logBlock.html @@ -1,16 +1,23 @@ {{ define "repo/pipelines/fragments/logBlock" }}
-
- -
{{ i "chevron-right" "w-4 h-4" }} {{ template "stepHeader" . }}
- +
+ +
+ {{ i "chevron-right" "size-4 shrink-0" }} {{ template "stepHeader" . }} +
+
-
{{ .Command }}
+
+ {{ if .Command }}
{{ .Command }}
{{ end }} +
+
{{ end }} {{ define "stepHeader" }} - {{ .Name }} - + {{ .Name }} + {{ end }} diff --git a/appview/pages/templates/repo/pipelines/fragments/logBlockEnd.html b/appview/pages/templates/repo/pipelines/fragments/logBlockEnd.html --- a/appview/pages/templates/repo/pipelines/fragments/logBlockEnd.html +++ b/appview/pages/templates/repo/pipelines/fragments/logBlockEnd.html @@ -1,6 +1,6 @@ {{ define "repo/pipelines/fragments/logBlockEnd" }}

{{ .Content }}

+

{{ .Content }}

{{ end }} diff --git a/appview/pages/templates/repo/pipelines/fragments/workflowSymbol.html b/appview/pages/templates/repo/pipelines/fragments/workflowSymbol.html --- a/appview/pages/templates/repo/pipelines/fragments/workflowSymbol.html +++ b/appview/pages/templates/repo/pipelines/fragments/workflowSymbol.html @@ -9,11 +9,11 @@ {{ if eq $kind "pending" }} {{ $icon = "circle-dashed" }} {{ $color = "text-yellow-600 dark:text-yellow-500" }} {{ else if eq $kind "running" }} - {{ $icon = "circle-dashed" }} - {{ $color = "text-yellow-600 dark:text-yellow-500" }} + {{ $icon = "refresh-cw" }} + {{ $color = "text-gray-700 dark:text-gray-100" }} {{ else if eq $kind "success" }} {{ $icon = "check" }} - {{ $color = "text-green-600 dark:text-green-500" }} + {{ $color = "text-green-600 dark:text-green-400" }} {{ else if eq $kind "cancelled" }} {{ $icon = "circle-slash" }} {{ $color = "text-gray-600 dark:text-gray-500" }} diff --git a/appview/pages/templates/repo/pipelines/workflow.html b/appview/pages/templates/repo/pipelines/workflow.html --- a/appview/pages/templates/repo/pipelines/workflow.html +++ b/appview/pages/templates/repo/pipelines/workflow.html @@ -6,121 +6,153 @@ {{ $url := printf "https://tangled.org/%s/pipelines" .RepoInfo.FullName }} {{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }} {{ end }} -{{ define "repoContent" }} -
-
- {{ block "sidebar" . }} {{ end }} +{{ define "repoContentLayout" }} +
+
+
+ {{ template "sidebar" . }} +
+
+ {{ template "repoContent" . }} +
-
- {{ if $.RepoInfo.Roles.IsPushAllowed }} - {{ $status := (index .Pipeline.Statuses .Workflow).Latest.Status }} -
- -
-
- -
{{ end }} - {{ with (index .Pipeline.Statuses .Workflow).Latest }} - {{ if .Error }} -
- {{ i "triangle-alert" "size-4 shrink-0 mt-0.5" }} -
-
{{- .ErrorMessage -}}
- {{- with .ErrorDetails }} -
{{- . -}}
- {{- end }} -
-
- {{ end }} - {{ end }} - {{ block "logs" . }} {{ end }} -
-
-{{ template "fragments/workflow-timers" }} + {{ end }} + {{ template "logs" . }} {{ end }} {{ define "sidebar" }} {{ $active := .Workflow }} - {{ $activeTab := "bg-white dark:bg-gray-700 drop-shadow-sm" }} - {{ $inactiveTab := "bg-gray-100 dark:bg-gray-800" }} - {{ with .Pipeline }} {{ $id := .Id }} -
- {{ range $name, $all := .Statuses }} - + {{ $pipeline := . }} +
+
+ {{ range $name, $all := .Statuses }} + {{ $lastStatus := $all.Latest }} + {{ $status := $lastStatus.Status }} + {{ $kind := $status.String }}
- {{ $lastStatus := $all.Latest }} - {{ $kind := $lastStatus.Status.String }} - -
-
- {{ template "repo/pipelines/fragments/workflowSymbol" $all }} + class="flex flex-col gap-1.5 rounded px-3 py-2.5 transition-colors {{ if eq $name $active }}border border-transparent bg-gray-100 dark:bg-gray-700{{ else }}border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800{{ end }}"> +
+ + {{ $name }} + {{ i "arrow-up-right" "size-4 shrink-0 text-gray-900 dark:text-gray-100" }} + +
+ {{ template "repo/fragments/shortTimeAgo" $lastStatus.Created }}
- - {{ $name }} -
- - + {{ end }} +
+ {{ template "sidebarActions" $ }} +
+ {{ end }} +{{ end }} + +{{ define "workflowActions" }} + {{ $root := .Root }} + {{ $status := .Status }} + {{ $kind := .Kind }} + {{ if and $root.RepoInfo.Roles.IsPushAllowed (ne $kind "success") }} +
+ + {{ if not $status.IsFinish }} + {{ end }}
{{ end }} {{ end }} +{{ define "sidebarActions" }} +
+ {{ with .SSHLogCommand }} + + {{ end }} + {{ if .RepoInfo.Roles.IsPushAllowed }} +
+
+ + {{ if .Pipeline.InProgress }} + + {{ end }} +
+ {{ end }} +
+{{ end }} + {{ define "logs" }}
-
-