forked from
tangled.org/core
Monorepo for Tangled — https://tangled.org
1{{ define "title" }}issues · {{ .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 }}