A vibe coded tangled fork which supports pijul.
at 0a2c9822c8b2809837205af703aabdb986f5ba94 59 lines 2.2 kB view raw
1{{ define "title" }} {{ .Workflow }} &middot; pipeline {{ .Pipeline.Id }} &middot; {{ .RepoInfo.FullName }}{{ end }} 2 3{{ define "extrameta" }} 4 {{ $title := "pipelines"}} 5 {{ $url := printf "https://tangled.sh/%s/pipelines" .RepoInfo.FullName }} 6 {{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }} 7{{ end }} 8 9{{ define "repoContent" }} 10<section class="w-full grid grid-cols-1 md:grid-cols-4 gap-2 mt-2"> 11 <div class="col-span-1"> 12 {{ block "sidebar" . }} {{ end }} 13 </div> 14 <div class="col-span-1 md:col-span-3"> 15 {{ block "logs" . }} {{ end }} 16 </div> 17</section> 18{{ end }} 19 20{{ define "sidebar" }} 21 {{ $active := .Workflow }} 22 {{ with .Pipeline }} 23 {{ $id := .Id }} 24 <div class="sticky top-2 grid grid-cols-1 rounded border border-gray-200 dark:border-gray-700 divide-y divide-gray-200 dark:divide-gray-700"> 25 {{ range $name, $all := .Statuses }} 26 <a href="/{{ $.RepoInfo.FullName }}/pipelines/{{ $id }}/workflow/{{ $name }}" class="no-underline hover:no-underline hover:bg-gray-100/25 hover:dark:bg-gray-700/25"> 27 <div 28 class="flex gap-2 items-center justify-between p-2 {{ if eq $name $active }}bg-gray-100/50 dark:bg-gray-700/50{{ end }}"> 29 {{ $lastStatus := $all.Latest }} 30 {{ $kind := $lastStatus.Status.String }} 31 32 <div id="left" class="flex items-center gap-2 flex-shrink-0"> 33 {{ template "repo/pipelines/fragments/workflowSymbol" $all }} 34 {{ $name }} 35 </div> 36 <div id="right" class="flex items-center gap-2 flex-shrink-0"> 37 <span class="font-bold">{{ $kind }}</span> 38 {{ if .TimeTaken }} 39 {{ template "repo/fragments/duration" .TimeTaken }} 40 {{ else }} 41 {{ template "repo/fragments/shortTimeAgo" $lastStatus.Created }} 42 {{ end }} 43 </div> 44 </div> 45 </a> 46 {{ end }} 47 </div> 48 {{ end }} 49{{ end }} 50 51{{ define "logs" }} 52 <div id="log-stream" 53 class="text-sm" 54 hx-ext="ws" 55 ws-connect="/{{ $.RepoInfo.FullName }}/pipelines/{{ .Pipeline.Id }}/workflow/{{ .Workflow }}/logs"> 56 <div id="lines" class="flex flex-col gap-2"> 57 </div> 58 </div> 59{{ end }}