Consolidate clone button templates (#14023)
The four clone button templates are pretty much identical except the one in a non-empty repo had a few features which the others lacked. Consolidate them in a single shared template which also makes the JS that remembers protocol work on them all. Co-authored-by: techknowlogick <techknowlogick@gitea.io>tokarchuk/v1.17
parent
366ce66cad
commit
9a4050f1e8
@ -0,0 +1,35 @@ |
||||
{{if not $.DisableHTTP}} |
||||
<button class="ui basic clone button no-transition" id="repo-clone-https" data-link="{{.CloneLink.HTTPS}}"> |
||||
{{if UseHTTPS}}HTTPS{{else}}HTTP{{end}} |
||||
</button> |
||||
{{end}} |
||||
{{if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}} |
||||
<button class="ui basic clone button no-transition" id="repo-clone-ssh" data-link="{{.CloneLink.SSH}}"> |
||||
SSH |
||||
</button> |
||||
{{end}} |
||||
{{if not $.DisableHTTP}} |
||||
<input id="repo-clone-url" value="{{$.CloneLink.HTTPS}}" readonly> |
||||
{{else if and (not .DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}} |
||||
<input id="repo-clone-url" value="{{$.CloneLink.SSH}}" readonly> |
||||
{{end}} |
||||
{{if or (not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH))}} |
||||
<button class="ui basic icon button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url"> |
||||
{{svg "octicon-clippy"}} |
||||
</button> |
||||
{{end}} |
||||
{{if not (and $.DisableHTTP $.DisableSSH)}} |
||||
<script defer> |
||||
const isSSH = localStorage.getItem('repo-clone-protocol') === 'ssh'; |
||||
const sshButton = document.getElementById('repo-clone-ssh'); |
||||
const httpsButton = document.getElementById('repo-clone-https'); |
||||
const input = document.getElementById('repo-clone-url'); |
||||
if (input) input.value = (isSSH ? sshButton : httpsButton).dataset.link; |
||||
if (sshButton) sshButton.classList[isSSH ? 'add' : 'remove']('primary'); |
||||
if (httpsButton) httpsButton.classList[isSSH ? 'remove' : 'add']('primary'); |
||||
setTimeout(() => { |
||||
if (sshButton) sshButton.classList.remove('no-transition'); |
||||
if (httpsButton) httpsButton.classList.remove('no-transition'); |
||||
}, 100); |
||||
</script> |
||||
{{end}} |
Loading…
Reference in new issue