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