forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
at ci-statuses 5.1 kB view raw
1{{ define "repo/pulls/fragments/pullActions" }} 2 {{ $lastIdx := sub (len .Pull.Submissions) 1 }} 3 {{ $roundNumber := .RoundNumber }} 4 {{ $stack := .Stack }} 5 6 {{ $totalPulls := sub 0 1 }} 7 {{ $below := sub 0 1 }} 8 {{ $stackCount := "" }} 9 {{ if .Pull.IsStacked }} 10 {{ $totalPulls = len $stack }} 11 {{ $below = $stack.Below .Pull }} 12 {{ $mergeable := len $below.Mergeable }} 13 {{ $stackCount = printf "%d/%d" $mergeable $totalPulls }} 14 {{ end }} 15 16 {{ $isPushAllowed := .RepoInfo.Roles.IsPushAllowed }} 17 {{ $isMerged := .Pull.State.IsMerged }} 18 {{ $isClosed := .Pull.State.IsClosed }} 19 {{ $isOpen := .Pull.State.IsOpen }} 20 {{ $isConflicted := and .MergeCheck (or .MergeCheck.Error .MergeCheck.IsConflicted) }} 21 {{ $isPullAuthor := and .LoggedInUser (eq .LoggedInUser.Did .Pull.OwnerDid) }} 22 {{ $isLastRound := eq $roundNumber $lastIdx }} 23 {{ $isSameRepoBranch := .Pull.IsBranchBased }} 24 {{ $isUpToDate := .ResubmitCheck.No }} 25 <div class="relative w-fit"> 26 <div id="actions-{{$roundNumber}}" class="flex flex-wrap gap-2"> 27 <button 28 hx-get="/{{ .RepoInfo.FullName }}/pulls/{{ .Pull.PullId }}/round/{{ $roundNumber }}/comment" 29 hx-target="#actions-{{$roundNumber}}" 30 hx-swap="outerHtml" 31 class="btn p-2 flex items-center gap-2 no-underline hover:no-underline group"> 32 {{ i "message-square-plus" "w-4 h-4" }} 33 <span>comment</span> 34 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 35 </button> 36 {{ if .BranchDeleteStatus }} 37 <button 38 hx-delete="/{{ .BranchDeleteStatus.Repo.Did }}/{{ .BranchDeleteStatus.Repo.Name }}/branches" 39 hx-vals='{"branch": "{{ .BranchDeleteStatus.Branch }}" }' 40 hx-swap="none" 41 class="btn p-2 flex items-center gap-2 no-underline hover:no-underline group text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300"> 42 {{ i "git-branch" "w-4 h-4" }} 43 <span>delete branch</span> 44 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 45 </button> 46 {{ end }} 47 {{ if and $isPushAllowed $isOpen $isLastRound }} 48 {{ $disabled := "" }} 49 {{ if $isConflicted }} 50 {{ $disabled = "disabled" }} 51 {{ end }} 52 <button 53 hx-post="/{{ .RepoInfo.FullName }}/pulls/{{ .Pull.PullId }}/merge" 54 hx-swap="none" 55 hx-confirm="Are you sure you want to merge pull #{{ .Pull.PullId }} into the `{{ .Pull.TargetBranch }}` branch?" 56 class="btn p-2 flex items-center gap-2 group" {{ $disabled }}> 57 {{ i "git-merge" "w-4 h-4" }} 58 <span>merge{{if $stackCount}} {{$stackCount}}{{end}}</span> 59 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 60 </button> 61 {{ end }} 62 63 {{ if and $isPullAuthor $isOpen $isLastRound }} 64 {{ $disabled := "" }} 65 {{ if $isUpToDate }} 66 {{ $disabled = "disabled" }} 67 {{ end }} 68 <button id="resubmitBtn" 69 {{ if not .Pull.IsPatchBased }} 70 hx-post="/{{ .RepoInfo.FullName }}/pulls/{{ .Pull.PullId }}/resubmit" 71 {{ else }} 72 hx-get="/{{ .RepoInfo.FullName }}/pulls/{{ .Pull.PullId }}/resubmit" 73 hx-target="#actions-{{$roundNumber}}" 74 hx-swap="outerHtml" 75 {{ end }} 76 77 hx-disabled-elt="#resubmitBtn" 78 class="btn p-2 flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed group" {{ $disabled }} 79 80 {{ if $disabled }} 81 title="Update this branch to resubmit this pull request" 82 {{ else }} 83 title="Resubmit this pull request" 84 {{ end }} 85 > 86 {{ i "rotate-ccw" "w-4 h-4" }} 87 <span>resubmit</span> 88 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 89 </button> 90 {{ end }} 91 92 {{ if and (or $isPullAuthor $isPushAllowed) $isOpen $isLastRound }} 93 <button 94 hx-post="/{{ .RepoInfo.FullName }}/pulls/{{ .Pull.PullId }}/close" 95 hx-swap="none" 96 class="btn p-2 flex items-center gap-2 group"> 97 {{ i "ban" "w-4 h-4" }} 98 <span>close</span> 99 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 100 </button> 101 {{ end }} 102 103 {{ if and (or $isPullAuthor $isPushAllowed) $isClosed $isLastRound }} 104 <button 105 hx-post="/{{ .RepoInfo.FullName }}/pulls/{{ .Pull.PullId }}/reopen" 106 hx-swap="none" 107 class="btn p-2 flex items-center gap-2 group"> 108 {{ i "refresh-ccw-dot" "w-4 h-4" }} 109 <span>reopen</span> 110 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 111 </button> 112 {{ end }} 113 </div> 114 </div> 115{{ end }} 116 117