forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
1{{ define "title" }}issues &middot; {{ .RepoInfo.FullName }}{{ end }} 2 3{{ define "extrameta" }} 4 {{ $title := "issues"}} 5 {{ $url := printf "https://tangled.sh/%s/issues" .RepoInfo.FullName }} 6 7 {{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }} 8{{ end }} 9 10{{ define "repoContent" }} 11<div class="flex justify-between items-center gap-4"> 12 <div class="flex gap-4"> 13 <a 14 href="?state=open" 15 class="flex items-center gap-2 {{ if .FilteringByOpen }}font-bold {{ else }}text-gray-500 dark:text-gray-400{{ end }}" 16 > 17 {{ i "circle-dot" "w-4 h-4" }} 18 <span>{{ .RepoInfo.Stats.IssueCount.Open }} open</span> 19 </a> 20 <a 21 href="?state=closed" 22 class="flex items-center gap-2 {{ if not .FilteringByOpen }}font-bold {{ else }}text-gray-500 dark:text-gray-400{{ end }}" 23 > 24 {{ i "ban" "w-4 h-4" }} 25 <span>{{ .RepoInfo.Stats.IssueCount.Closed }} closed</span> 26 </a> 27 </div> 28 <a 29 href="/{{ .RepoInfo.FullName }}/issues/new" 30 class="btn text-sm flex items-center justify-center gap-2 no-underline hover:no-underline" 31 > 32 {{ i "circle-plus" "w-4 h-4" }} 33 <span>new</span> 34 </a> 35</div> 36<div class="error" id="issues"></div> 37{{ end }} 38 39{{ define "repoAfter" }} 40<div class="flex flex-col gap-2 mt-2"> 41 {{ range .Issues }} 42 <div class="rounded drop-shadow-sm bg-white px-6 py-4 dark:bg-gray-800 dark:border-gray-700"> 43 <div class="pb-2"> 44 <a 45 href="/{{ $.RepoInfo.FullName }}/issues/{{ .IssueId }}" 46 class="no-underline hover:underline" 47 > 48 {{ .Title }} 49 <span class="text-gray-500">#{{ .IssueId }}</span> 50 </a> 51 </div> 52 <p class="text-sm text-gray-500 dark:text-gray-400"> 53 {{ $bgColor := "bg-gray-800 dark:bg-gray-700" }} 54 {{ $icon := "ban" }} 55 {{ $state := "closed" }} 56 {{ if .Open }} 57 {{ $bgColor = "bg-green-600 dark:bg-green-700" }} 58 {{ $icon = "circle-dot" }} 59 {{ $state = "open" }} 60 {{ end }} 61 62 <span class="inline-flex items-center rounded px-2 py-[5px] {{ $bgColor }} text-sm"> 63 {{ i $icon "w-3 h-3 mr-1.5 text-white dark:text-white" }} 64 <span class="text-white dark:text-white">{{ $state }}</span> 65 </span> 66 67 <span> 68 {{ $owner := index $.DidHandleMap .OwnerDid }} 69 <a href="/{{ $owner }}">{{ $owner }}</a> 70 </span> 71 72 <span class="before:content-['·']"> 73 <time> 74 {{ .Created | timeFmt }} 75 </time> 76 </span> 77 78 <span class="before:content-['·']"> 79 {{ $s := "s" }} 80 {{ if eq .Metadata.CommentCount 1 }} 81 {{ $s = "" }} 82 {{ end }} 83 <a href="/{{ $.RepoInfo.FullName }}/issues/{{ .IssueId }}" class="text-gray-500 dark:text-gray-400">{{ .Metadata.CommentCount }} comment{{$s}}</a> 84 </span> 85 </p> 86 </div> 87 {{ end }} 88</div> 89 90{{ block "pagination" . }} {{ end }} 91 92{{ end }} 93 94{{ define "pagination" }} 95<div class="flex justify-end mt-4 gap-2"> 96 {{ $currentState := "closed" }} 97 {{ if .FilteringByOpen }} 98 {{ $currentState = "open" }} 99 {{ end }} 100 101 {{ if gt .Page.Offset 0 }} 102 {{ $prev := .Page.Previous }} 103 <a 104 class="btn flex items-center gap-2 no-underline hover:no-underline dark:text-white dark:hover:bg-gray-700" 105 hx-boost="true" 106 href = "/{{ $.RepoInfo.FullName }}/issues?state={{ $currentState }}&offset={{ $prev.Offset }}&limit={{ $prev.Limit }}" 107 > 108 {{ i "chevron-left" "w-4 h-4" }} 109 previous 110 </a> 111 {{ else }} 112 <div></div> 113 {{ end }} 114 115 {{ if eq (len .Issues) .Page.Limit }} 116 {{ $next := .Page.Next }} 117 <a 118 class="btn flex items-center gap-2 no-underline hover:no-underline dark:text-white dark:hover:bg-gray-700" 119 hx-boost="true" 120 href = "/{{ $.RepoInfo.FullName }}/issues?state={{ $currentState }}&offset={{ $next.Offset }}&limit={{ $next.Limit }}" 121 > 122 next 123 {{ i "chevron-right" "w-4 h-4" }} 124 </a> 125 {{ end }} 126</div> 127{{ end }}