this repo has no description
1{{ define "title" }}
2 {{ .Pull.Title }} · pull #{{ .Pull.PullId }} · {{ .RepoInfo.FullName }}
3{{ end }}
4
5{{ define "repoContent" }}
6 {{ template "repo/pulls/fragments/pullHeader" . }}
7{{ end }}
8
9
10
11{{ define "repoAfter" }}
12 <section id="submissions" class="mt-4">
13 <div class="flex flex-col gap-4">
14 {{ block "submissions" . }} {{ end }}
15 </div>
16 </section>
17
18 <div id="pull-close"></div>
19 <div id="pull-reopen"></div>
20{{ end }}
21
22{{ define "submissions" }}
23 {{ $lastIdx := sub (len .Pull.Submissions) 1 }}
24 {{ $targetBranch := .Pull.TargetBranch }}
25 {{ $repoName := .RepoInfo.FullName }}
26 {{ range $idx, $item := .Pull.Submissions }}
27 {{ with $item }}
28 <details {{ if eq $idx $lastIdx }}open{{ end }}>
29 <summary id="round-#{{ .RoundNumber }}" class="list-none cursor-pointer">
30 <div class="flex flex-wrap gap-2 items-center">
31 <!-- round number -->
32 <div class="rounded bg-white dark:bg-gray-800 drop-shadow-sm px-3 py-2 dark:text-white">
33 <span class="flex items-center">{{ i "hash" "w-4 h-4" }}{{ .RoundNumber }}</span>
34 </div>
35 <!-- round summary -->
36 <div class="rounded drop-shadow-sm bg-white dark:bg-gray-800 p-2 text-gray-500 dark:text-gray-400">
37 <span>
38 {{ $owner := index $.DidHandleMap $.Pull.OwnerDid }}
39 {{ $re := "re" }}
40 {{ if eq .RoundNumber 0 }}
41 {{ $re = "" }}
42 {{ end }}
43 <span class="hidden md:inline">{{$re}}submitted</span>
44 by <a href="/{{ $owner }}">{{ $owner }}</a>
45 <span class="select-none before:content-['\00B7']"></span>
46 <a class="text-gray-500 dark:text-gray-400 hover:text-gray-500" href="#round-#{{ .RoundNumber }}"><time>{{ .Created | shortTimeFmt }}</time></a>
47 <span class="select-none before:content-['·']"></span>
48 {{ $s := "s" }}
49 {{ if eq (len .Comments) 1 }}
50 {{ $s = "" }}
51 {{ end }}
52 {{ len .Comments }} comment{{$s}}
53 </span>
54 </div>
55
56 {{ if $.Pull.IsPatchBased }}
57 <!-- view patch -->
58 <a class="btn flex items-center gap-2 no-underline hover:no-underline p-2"
59 hx-boost="true"
60 href="/{{ $.RepoInfo.FullName }}/pulls/{{ $.Pull.PullId }}/round/{{.RoundNumber}}">
61 {{ i "file-diff" "w-4 h-4" }} <span class="hidden md:inline">view patch</span>
62 </a>
63 {{ end }}
64 </div>
65 </summary>
66
67 {{ if .IsFormatPatch }}
68 <div class="rounded ml-12 drop-shadow-sm bg-white dark:bg-gray-800 dark:text-white w-fit md:max-w-3/5 flex flex-col gap-2 mt-2 relative">
69 {{ $patches := .AsFormatPatch }}
70 {{ range $patches }}
71 <div id="commit-{{.SHA}}" class="py-2 px-4 relative w-full md:max-w-3/5 md:w-fit flex flex-col">
72 <div class="flex items-center justify-between gap-2">
73 {{ i "git-commit-horizontal" "w-4 h-4 mr-1.5" }}
74 <span>{{ .Title }}</span>
75 {{ if gt (len .Body) 0 }}
76 <button
77 class="py-1/2 px-1 mx-2 bg-gray-200 hover:bg-gray-400 rounded dark:bg-gray-700 dark:hover:bg-gray-600"
78 hx-on:click="document.getElementById('body-{{.SHA}}').classList.toggle('hidden')"
79 >
80 {{ i "ellipsis" "w-3 h-3" }}
81 </button>
82 {{ end }}
83 <div class="text-sm text-gray-500 dark:text-gray-400">
84 {{ if not $.Pull.IsPatchBased }}
85 {{ $fullRepo := $.RepoInfo.FullName }}
86 {{ if not $.Pull.IsBranchBased }}
87 {{ $fullRepo = printf "%s/%s" $owner $.PullSourceRepo.Name }}
88 {{ end }}
89 <a href="/{{ $fullRepo }}/commit/{{ .SHA }}" class="font-mono">{{ slice .SHA 0 8 }}</a>
90 {{ else }}
91 <span class="font-mono">{{ slice .SHA 0 8 }}</span>
92 {{ end }}
93 </div>
94 </div>
95 {{ if gt (len .Body) 0 }}
96 <p id="body-{{.SHA}}" class="hidden mt-1 text-sm pb-2 dark:text-gray-300">
97 {{ nl2br .Body }}
98 </p>
99 {{ end }}
100 </div>
101 {{ end }}
102 </div>
103 {{ end }}
104
105
106 <div class="md:pl-12 flex flex-col gap-2 mt-2 relative">
107 {{ range $cidx, $c := .Comments }}
108 <div id="comment-{{$c.ID}}" class="bg-white dark:bg-gray-800 rounded drop-shadow-sm py-2 px-4 relative w-full md:max-w-3/5 md:w-fit">
109 {{ if gt $cidx 0 }}
110 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div>
111 {{ end }}
112 <div class="text-sm text-gray-500 dark:text-gray-400">
113 {{ $owner := index $.DidHandleMap $c.OwnerDid }}
114 <a href="/{{$owner}}">{{$owner}}</a>
115 <span class="before:content-['·']"></span>
116 <a class="text-gray-500 dark:text-gray-400 hover:text-gray-500 dark:hover:text-gray-300" href="#comment-{{.ID}}"><time>{{ $c.Created | shortTimeFmt }}</time></a>
117 </div>
118 <div class="prose dark:prose-invert">
119 {{ $c.Body | markdown }}
120 </div>
121 </div>
122 {{ end }}
123
124 {{ if eq $lastIdx .RoundNumber }}
125 {{ block "mergeStatus" $ }} {{ end }}
126 {{ block "resubmitStatus" $ }} {{ end }}
127 {{ end }}
128
129 {{ if $.LoggedInUser }}
130 {{ template "repo/pulls/fragments/pullActions" (dict "LoggedInUser" $.LoggedInUser "Pull" $.Pull "RepoInfo" $.RepoInfo "RoundNumber" .RoundNumber "MergeCheck" $.MergeCheck "ResubmitCheck" $.ResubmitCheck) }}
131 {{ else }}
132 <div class="bg-white dark:bg-gray-800 rounded drop-shadow-sm px-6 py-4 w-fit dark:text-white">
133 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div>
134 <a href="/login" class="underline">login</a> to join the discussion
135 </div>
136 {{ end }}
137 </div>
138 </details>
139 <hr class="md:hidden border-t border-gray-300 dark:border-gray-600"/>
140 {{ end }}
141 {{ end }}
142{{ end }}
143
144{{ define "mergeStatus" }}
145 {{ if .Pull.State.IsClosed }}
146 <div class="bg-gray-50 dark:bg-gray-700 border border-black dark:border-gray-500 rounded drop-shadow-sm px-6 py-2 relative w-fit">
147 <div class="flex items-center gap-2 text-black dark:text-white">
148 {{ i "ban" "w-4 h-4" }}
149 <span class="font-medium">closed without merging</span
150 >
151 </div>
152 </div>
153 {{ else if .Pull.State.IsMerged }}
154 <div class="bg-purple-50 dark:bg-purple-900 border border-purple-500 rounded drop-shadow-sm px-6 py-2 relative w-fit">
155 <div class="flex items-center gap-2 text-purple-500 dark:text-purple-300">
156 {{ i "git-merge" "w-4 h-4" }}
157 <span class="font-medium">pull request successfully merged</span
158 >
159 </div>
160 </div>
161 {{ else if and .MergeCheck .MergeCheck.Error }}
162 <div class="bg-red-50 dark:bg-red-900 border border-red-500 rounded drop-shadow-sm px-6 py-2 relative w-fit">
163 <div class="flex items-center gap-2 text-red-500 dark:text-red-300">
164 {{ i "triangle-alert" "w-4 h-4" }}
165 <span class="font-medium">{{ .MergeCheck.Error }}</span>
166 </div>
167 </div>
168 {{ else if and .MergeCheck .MergeCheck.IsConflicted }}
169 <div class="bg-red-50 dark:bg-red-900 border border-red-500 rounded drop-shadow-sm px-6 py-2 relative w-fit">
170 <div class="flex flex-col gap-2 text-red-500 dark:text-red-300">
171 <div class="flex items-center gap-2">
172 {{ i "triangle-alert" "w-4 h-4" }}
173 <span class="font-medium">merge conflicts detected</span>
174 </div>
175 <ul class="space-y-1">
176 {{ range .MergeCheck.Conflicts }}
177 {{ if .Filename }}
178 <li class="flex items-center">
179 {{ i "file-warning" "w-4 h-4 mr-1.5 text-red-500 dark:text-red-300" }}
180 <span class="font-mono">{{ slice .Filename 0 (sub (len .Filename) 2) }}</span>
181 </li>
182 {{ end }}
183 {{ end }}
184 </ul>
185 </div>
186 </div>
187 {{ else if .MergeCheck }}
188 <div class="bg-green-50 dark:bg-green-900 border border-green-500 rounded drop-shadow-sm px-6 py-2 relative w-fit">
189 <div class="flex items-center gap-2 text-green-500 dark:text-green-300">
190 {{ i "circle-check-big" "w-4 h-4" }}
191 <span class="font-medium">no conflicts, ready to merge</span>
192 </div>
193 </div>
194 {{ end }}
195{{ end }}
196
197{{ define "resubmitStatus" }}
198 {{ if .ResubmitCheck.Yes }}
199 <div class="bg-amber-50 dark:bg-amber-900 border border-amber-500 rounded drop-shadow-sm px-6 py-2 relative w-fit">
200 <div class="flex items-center gap-2 text-amber-500 dark:text-amber-300">
201 {{ i "triangle-alert" "w-4 h-4" }}
202 <span class="font-medium">this branch has been updated, consider resubmitting</span>
203 </div>
204 </div>
205 {{ end }}
206{{ end }}