this repo has no description
1{{ define "title" }}new comparison{{ end }} 2 3{{ define "repoContent" }} 4 <section> 5 <h2 class="font-bold text-sm mb-4 uppercase dark:text-white"> 6 Compare changes 7 </h2> 8 <p>Choose any two refs to compare.</p> 9 10 <form id="compare-form"> 11 <div class="flex items-center gap-2 py-4"> 12 <div> 13 base: 14 15 <select 16 name="base" 17 id="base-select" 18 class="p-1 border max-w-32 border-gray-200 bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700" 19 onchange="triggerCompare()" 20 > 21 <optgroup 22 label="branches ({{ len .Branches }})" 23 class="bold text-sm" 24 > 25 {{ range .Branches }} 26 <option 27 value="{{ .Reference.Name }}" 28 class="py-1" 29 {{ if .IsDefault }} 30 selected 31 {{ end }} 32 > 33 {{ .Reference.Name }} 34 </option> 35 {{ end }} 36 </optgroup> 37 <optgroup 38 label="tags ({{ len .Tags }})" 39 class="bold text-sm" 40 > 41 {{ range .Tags }} 42 <option 43 value="{{ .Reference.Name }}" 44 class="py-1" 45 > 46 {{ .Reference.Name }} 47 </option> 48 {{ else }} 49 <option class="py-1" disabled> 50 no tags found 51 </option> 52 {{ end }} 53 </optgroup> 54 </select> 55 </div> 56 57 {{ i "arrow-left" "w-4 h-4" }} 58 59 60 <div> 61 compare: 62 63 <select 64 name="head" 65 id="head-select" 66 class="p-1 border max-w-32 border-gray-200 bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700" 67 onchange="triggerCompare()" 68 > 69 <option value="" selected disabled hidden> 70 select a branch or tag 71 </option> 72 <optgroup 73 label="branches ({{ len .Branches }})" 74 class="bold text-sm" 75 > 76 {{ range .Branches }} 77 <option 78 value="{{ .Reference.Name }}" 79 class="py-1" 80 > 81 {{ .Reference.Name }} 82 </option> 83 {{ end }} 84 </optgroup> 85 <optgroup 86 label="tags ({{ len .Tags }})" 87 class="bold text-sm" 88 > 89 {{ range .Tags }} 90 <option 91 value="{{ .Reference.Name }}" 92 class="py-1" 93 > 94 {{ .Reference.Name }} 95 </option> 96 {{ else }} 97 <option class="py-1" disabled> 98 no tags found 99 </option> 100 {{ end }} 101 </optgroup> 102 </select> 103 </div> 104 </div> 105 </form> 106 </section> 107 <section class="hidden"></section> 108 109 <script> 110 var templatedBase = `{{ .Base }}`; 111 var templatedHead = `{{ .Head }}`; 112 var selectedBase = ""; 113 var selectedHead = ""; 114 115 document.addEventListener('DOMContentLoaded', function() { 116 if (templatedBase && templatedHead) { 117 const baseSelect = document.getElementById('base-select'); 118 const headSelect = document.getElementById('head-select'); 119 120 // select the option that matches templated values 121 for(let i = 0; i < baseSelect.options.length; i++) { 122 if(baseSelect.options[i].value === templatedBase) { 123 baseSelect.selectedIndex = i; 124 break; 125 } 126 } 127 128 for(let i = 0; i < headSelect.options.length; i++) { 129 if(headSelect.options[i].value === templatedHead) { 130 headSelect.selectedIndex = i; 131 break; 132 } 133 } 134 135 triggerCompare(); 136 } 137 }); 138 139 function triggerCompare() { 140 // if user has selected values, use those 141 selectedBase = document.getElementById('base-select').value; 142 selectedHead = document.getElementById('head-select').value; 143 144 const baseToUse = templatedBase && !selectedBase ? templatedBase : selectedBase; 145 const headToUse = templatedHead && !selectedHead ? templatedHead : selectedHead; 146 147 if (baseToUse && headToUse) { 148 const url = `/{{ .RepoInfo.FullName }}/compare/diff/${baseToUse}/${headToUse}`; 149 htmx.ajax('GET', url, { target: '#compare-diff' }); 150 } 151 } 152 </script> 153{{ end }} 154 155{{ define "repoAfter" }} 156 <div id="compare-diff"></div> 157{{ end }}