this repo has no description
1{{ define "title" }} 2 {{ .Pull.Title }} &middot; pull #{{ .Pull.PullId }} &middot; {{ .RepoInfo.FullName }} 3{{ end }} 4 5{{ define "extrameta" }} 6 {{ $title := printf "%s &middot; pull #%d &middot; %s" .Pull.Title .Pull.PullId .RepoInfo.FullName }} 7 {{ $url := printf "https://tangled.sh/%s/pulls/%d" .RepoInfo.FullName .Pull.PullId }} 8 9 {{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }} 10{{ end }} 11 12 13{{ define "repoContent" }} 14 {{ template "repo/pulls/fragments/pullHeader" . }} 15 16 {{ if .Pull.IsStacked }} 17 <div class="mt-8"> 18 <p class="text-sm font-bold p-2 dark:text-white">STACK</p> 19 {{ template "repo/pulls/fragments/pullStack" . }} 20 </div> 21 {{ end }} 22{{ end }} 23 24{{ define "repoAfter" }} 25 <section id="submissions" class="mt-4"> 26 <div class="flex flex-col gap-4"> 27 {{ block "submissions" . }} {{ end }} 28 </div> 29 </section> 30 31 <div id="pull-close"></div> 32 <div id="pull-reopen"></div> 33{{ end }} 34 35{{ define "submissions" }} 36 {{ $lastIdx := sub (len .Pull.Submissions) 1 }} 37 {{ $targetBranch := .Pull.TargetBranch }} 38 {{ $repoName := .RepoInfo.FullName }} 39 {{ range $idx, $item := .Pull.Submissions }} 40 {{ with $item }} 41 <details {{ if eq $idx $lastIdx }}open{{ end }}> 42 <summary id="round-#{{ .RoundNumber }}" class="list-none cursor-pointer"> 43 <div class="flex flex-wrap gap-2 items-center"> 44 <!-- round number --> 45 <div class="rounded bg-white dark:bg-gray-800 drop-shadow-sm px-3 py-2 dark:text-white"> 46 <span class="flex items-center">{{ i "hash" "w-4 h-4" }}{{ .RoundNumber }}</span> 47 </div> 48 <!-- round summary --> 49 <div class="rounded drop-shadow-sm bg-white dark:bg-gray-800 p-2 text-gray-500 dark:text-gray-400"> 50 <span> 51 {{ $owner := index $.DidHandleMap $.Pull.OwnerDid }} 52 {{ $re := "re" }} 53 {{ if eq .RoundNumber 0 }} 54 {{ $re = "" }} 55 {{ end }} 56 <span class="hidden md:inline">{{$re}}submitted</span> 57 by <a href="/{{ $owner }}">{{ $owner }}</a> 58 <span class="select-none before:content-['\00B7']"></span> 59 <a class="text-gray-500 dark:text-gray-400 hover:text-gray-500" href="#round-#{{ .RoundNumber }}"><time>{{ .Created | shortTimeFmt }}</time></a> 60 <span class="select-none before:content-['·']"></span> 61 {{ $s := "s" }} 62 {{ if eq (len .Comments) 1 }} 63 {{ $s = "" }} 64 {{ end }} 65 {{ len .Comments }} comment{{$s}} 66 </span> 67 </div> 68 69 <a class="btn flex items-center gap-2 no-underline hover:no-underline p-2 group" 70 hx-boost="true" 71 href="/{{ $.RepoInfo.FullName }}/pulls/{{ $.Pull.PullId }}/round/{{.RoundNumber}}"> 72 {{ i "file-diff" "w-4 h-4" }} 73 <span class="hidden md:inline">diff</span> 74 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 75 </a> 76 {{ if not (eq .RoundNumber 0) }} 77 <a class="btn flex items-center gap-2 no-underline hover:no-underline p-2 group" 78 hx-boost="true" 79 href="/{{ $.RepoInfo.FullName }}/pulls/{{ $.Pull.PullId }}/round/{{.RoundNumber}}/interdiff"> 80 {{ i "chevrons-left-right-ellipsis" "w-4 h-4 rotate-90" }} 81 <span class="hidden md:inline">interdiff</span> 82 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 83 </a> 84 <span id="interdiff-error-{{.RoundNumber}}"></span> 85 {{ end }} 86 </div> 87 </summary> 88 89 {{ if .IsFormatPatch }} 90 {{ $patches := .AsFormatPatch }} 91 {{ $round := .RoundNumber }} 92 <details class="group py-2 md:ml-[3.5rem] text-gray-500 dark:text-gray-400 flex flex-col gap-2 relative text-sm"> 93 <summary class="py-1 list-none cursor-pointer hover:text-gray-500 hover:dark:text-gray-400"> 94 {{ $s := "s" }} 95 {{ if eq (len $patches) 1 }} 96 {{ $s = "" }} 97 {{ end }} 98 <div class="group-open:hidden flex items-center gap-2 ml-2"> 99 {{ i "chevrons-up-down" "w-4 h-4" }} expand {{ len $patches }} commit{{$s}} 100 </div> 101 <div class="hidden group-open:flex items-center gap-2 ml-2"> 102 {{ i "chevrons-down-up" "w-4 h-4" }} hide {{ len $patches }} commit{{$s}} 103 </div> 104 </summary> 105 {{ range $patches }} 106 <div id="commit-{{.SHA}}" class="py-1 px-2 relative w-full md:max-w-3/5 md:w-fit flex flex-col"> 107 <div class="flex items-center gap-2"> 108 {{ i "git-commit-horizontal" "w-4 h-4" }} 109 <div class="text-sm text-gray-500 dark:text-gray-400"> 110 <!-- attempt to resolve $fullRepo: this is possible only on non-deleted forks and branches --> 111 {{ $fullRepo := "" }} 112 {{ if and $.Pull.IsForkBased $.Pull.PullSource.Repo }} 113 {{ $fullRepo = printf "%s/%s" $owner $.Pull.PullSource.Repo.Name }} 114 {{ else if $.Pull.IsBranchBased }} 115 {{ $fullRepo = $.RepoInfo.FullName }} 116 {{ end }} 117 118 <!-- if $fullRepo was resolved, link to it, otherwise just span without a link --> 119 {{ if $fullRepo }} 120 <a href="/{{ $fullRepo }}/commit/{{ .SHA }}" class="font-mono text-gray-500 dark:text-gray-400">{{ slice .SHA 0 8 }}</a> 121 {{ else }} 122 <span class="font-mono">{{ slice .SHA 0 8 }}</span> 123 {{ end }} 124 </div> 125 <div class="flex items-center"> 126 <span>{{ .Title }}</span> 127 {{ if gt (len .Body) 0 }} 128 <button 129 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" 130 hx-on:click="document.getElementById('body-{{$round}}-{{.SHA}}').classList.toggle('hidden')" 131 > 132 {{ i "ellipsis" "w-3 h-3" }} 133 </button> 134 {{ end }} 135 </div> 136 </div> 137 {{ if gt (len .Body) 0 }} 138 <p id="body-{{$round}}-{{.SHA}}" class="hidden mt-1 text-sm pb-2"> 139 {{ nl2br .Body }} 140 </p> 141 {{ end }} 142 </div> 143 {{ end }} 144 </details> 145 {{ end }} 146 147 148 <div class="md:pl-[3.5rem] flex flex-col gap-2 mt-2 relative"> 149 {{ range $cidx, $c := .Comments }} 150 <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"> 151 {{ if gt $cidx 0 }} 152 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div> 153 {{ end }} 154 <div class="text-sm text-gray-500 dark:text-gray-400"> 155 {{ $owner := index $.DidHandleMap $c.OwnerDid }} 156 <a href="/{{$owner}}">{{$owner}}</a> 157 <span class="before:content-['·']"></span> 158 <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> 159 </div> 160 <div class="prose dark:prose-invert"> 161 {{ $c.Body | markdown }} 162 </div> 163 </div> 164 {{ end }} 165 166 {{ if eq $lastIdx .RoundNumber }} 167 {{ block "mergeStatus" $ }} {{ end }} 168 {{ block "resubmitStatus" $ }} {{ end }} 169 {{ end }} 170 171 {{ if $.LoggedInUser }} 172 {{ template "repo/pulls/fragments/pullActions" (dict "LoggedInUser" $.LoggedInUser "Pull" $.Pull "RepoInfo" $.RepoInfo "RoundNumber" .RoundNumber "MergeCheck" $.MergeCheck "ResubmitCheck" $.ResubmitCheck) }} 173 {{ else }} 174 <div class="bg-white dark:bg-gray-800 rounded drop-shadow-sm px-6 py-4 w-fit dark:text-white"> 175 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div> 176 <a href="/login" class="underline">login</a> to join the discussion 177 </div> 178 {{ end }} 179 </div> 180 </details> 181 <hr class="md:hidden border-t border-gray-300 dark:border-gray-600"/> 182 {{ end }} 183 {{ end }} 184{{ end }} 185 186{{ define "mergeStatus" }} 187 {{ if .Pull.State.IsClosed }} 188 <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"> 189 <div class="flex items-center gap-2 text-black dark:text-white"> 190 {{ i "ban" "w-4 h-4" }} 191 <span class="font-medium">closed without merging</span 192 > 193 </div> 194 </div> 195 {{ else if .Pull.State.IsMerged }} 196 <div class="bg-purple-50 dark:bg-purple-900 border border-purple-500 rounded drop-shadow-sm px-6 py-2 relative w-fit"> 197 <div class="flex items-center gap-2 text-purple-500 dark:text-purple-300"> 198 {{ i "git-merge" "w-4 h-4" }} 199 <span class="font-medium">pull request successfully merged</span 200 > 201 </div> 202 </div> 203 {{ else if and .MergeCheck .MergeCheck.Error }} 204 <div class="bg-red-50 dark:bg-red-900 border border-red-500 rounded drop-shadow-sm px-6 py-2 relative w-fit"> 205 <div class="flex items-center gap-2 text-red-500 dark:text-red-300"> 206 {{ i "triangle-alert" "w-4 h-4" }} 207 <span class="font-medium">{{ .MergeCheck.Error }}</span> 208 </div> 209 </div> 210 {{ else if and .MergeCheck .MergeCheck.IsConflicted }} 211 <div class="bg-red-50 dark:bg-red-900 border border-red-500 rounded drop-shadow-sm px-6 py-2 relative w-fit"> 212 <div class="flex flex-col gap-2 text-red-500 dark:text-red-300"> 213 <div class="flex items-center gap-2"> 214 {{ i "triangle-alert" "w-4 h-4" }} 215 <span class="font-medium">merge conflicts detected</span> 216 </div> 217 {{ if gt (len .MergeCheck.Conflicts) 0 }} 218 <ul class="space-y-1"> 219 {{ range .MergeCheck.Conflicts }} 220 {{ if .Filename }} 221 <li class="flex items-center"> 222 {{ i "file-warning" "w-4 h-4 mr-1.5 text-red-500 dark:text-red-300" }} 223 <span class="font-mono">{{ slice .Filename 0 (sub (len .Filename) 2) }}</span> 224 </li> 225 {{ else if .Reason }} 226 <li class="flex items-center"> 227 {{ i "file-warning" "w-4 h-4 mr-1.5 text-red-500 dark:text-red-300" }} 228 <span>{{.Reason}}</span> 229 </li> 230 {{ end }} 231 {{ end }} 232 </ul> 233 {{ end }} 234 </div> 235 </div> 236 {{ else if .MergeCheck }} 237 <div class="bg-green-50 dark:bg-green-900 border border-green-500 rounded drop-shadow-sm px-6 py-2 relative w-fit"> 238 <div class="flex items-center gap-2 text-green-500 dark:text-green-300"> 239 {{ i "circle-check-big" "w-4 h-4" }} 240 <span class="font-medium">no conflicts, ready to merge</span> 241 </div> 242 </div> 243 {{ end }} 244{{ end }} 245 246{{ define "resubmitStatus" }} 247 {{ if .ResubmitCheck.Yes }} 248 <div class="bg-amber-50 dark:bg-amber-900 border border-amber-500 rounded drop-shadow-sm px-6 py-2 relative w-fit"> 249 <div class="flex items-center gap-2 text-amber-500 dark:text-amber-300"> 250 {{ i "triangle-alert" "w-4 h-4" }} 251 <span class="font-medium">this branch has been updated, consider resubmitting</span> 252 </div> 253 </div> 254 {{ end }} 255{{ end }} 256 257{{ define "commits" }} 258{{ end }}