mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	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>
This commit is contained in:
		
							
								
								
									
										35
									
								
								templates/repo/clone_buttons.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								templates/repo/clone_buttons.tmpl
									
									
									
									
									
										Normal file
									
								
							@@ -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}}
 | 
			
		||||
@@ -18,26 +18,7 @@
 | 
			
		||||
						<div class="item">
 | 
			
		||||
							<h3>{{.i18n.Tr "repo.clone_this_repo"}} <small>{{.i18n.Tr "repo.clone_helper" "http://git-scm.com/book/en/Git-Basics-Getting-a-Git-Repository" | Str2html}}</small></h3>
 | 
			
		||||
							<div class="ui action small input">
 | 
			
		||||
								{{if not $.DisableHTTP}}
 | 
			
		||||
									<button class="ui basic clone button" id="repo-clone-https" data-link="{{.CloneLink.HTTPS}}">
 | 
			
		||||
										{{if UseHTTPS}}HTTPS{{else}}HTTP{{end}}
 | 
			
		||||
									</button>
 | 
			
		||||
								{{end}}
 | 
			
		||||
								{{if not $.DisableSSH}}
 | 
			
		||||
									<button class="ui basic clone button" id="repo-clone-ssh" data-link="{{.CloneLink.SSH}}">
 | 
			
		||||
										SSH
 | 
			
		||||
									</button>
 | 
			
		||||
								{{end}}
 | 
			
		||||
								{{if not $.DisableHTTP}}
 | 
			
		||||
									<input id="repo-clone-url" value="{{$.CloneLink.HTTPS}}" readonly>
 | 
			
		||||
								{{else}}
 | 
			
		||||
									<input id="repo-clone-url" value="{{$.CloneLink.SSH}}" readonly>
 | 
			
		||||
								{{end}}
 | 
			
		||||
								{{if not (and $.DisableHTTP $.DisableSSH)}}
 | 
			
		||||
									<button class="ui basic 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}}
 | 
			
		||||
								{{template "repo/clone_buttons" .}}
 | 
			
		||||
							</div>
 | 
			
		||||
						</div>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -106,43 +106,10 @@
 | 
			
		||||
				{{end}}
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="fitted item">
 | 
			
		||||
 | 
			
		||||
				<!-- Only show clone panel in repository home page -->
 | 
			
		||||
				{{if eq $n 0}}
 | 
			
		||||
					<div class="ui action tiny input" id="clone-panel">
 | 
			
		||||
						{{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}}
 | 
			
		||||
						<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>
 | 
			
		||||
						{{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}}
 | 
			
		||||
						{{template "repo/clone_buttons" .}}
 | 
			
		||||
						<div class="ui basic jump dropdown icon button poping up" data-content="{{.i18n.Tr "repo.download_archive"}}" data-variation="tiny inverted" data-position="top right">
 | 
			
		||||
							{{svg "octicon-download"}}
 | 
			
		||||
							<div class="menu">
 | 
			
		||||
 
 | 
			
		||||
@@ -4,28 +4,9 @@
 | 
			
		||||
	{{ $title := .title}}
 | 
			
		||||
	<div class="ui container">
 | 
			
		||||
		<div class="ui stackable grid">
 | 
			
		||||
			<div class="ui eight wide column text right">
 | 
			
		||||
			<div class="ui eight wide column text right df ac je">
 | 
			
		||||
				<div class="ui action small input" id="clone-panel">
 | 
			
		||||
					{{if not $.DisableHTTP}}
 | 
			
		||||
						<button class="ui basic clone button" id="repo-clone-https" data-link="{{.WikiCloneLink.HTTPS}}">
 | 
			
		||||
							{{if UseHTTPS}}HTTPS{{else}}HTTP{{end}}
 | 
			
		||||
						</button>
 | 
			
		||||
					{{end}}
 | 
			
		||||
					{{if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}}
 | 
			
		||||
						<button class="ui basic clone button" id="repo-clone-ssh" data-link="{{.WikiCloneLink.SSH}}">
 | 
			
		||||
							SSH
 | 
			
		||||
						</button>
 | 
			
		||||
					{{end}}
 | 
			
		||||
					{{if not $.DisableHTTP}}
 | 
			
		||||
						<input id="repo-clone-url" value="{{$.WikiCloneLink.HTTPS}}" readonly>
 | 
			
		||||
					{{else if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}}
 | 
			
		||||
						<input id="repo-clone-url" value="{{$.WikiCloneLink.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}}
 | 
			
		||||
					{{template "repo/clone_buttons" .}}
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="ui header eight wide column">
 | 
			
		||||
 
 | 
			
		||||
@@ -30,26 +30,7 @@
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="right fitted item">
 | 
			
		||||
				<div class="ui action small input" id="clone-panel">
 | 
			
		||||
					{{if not $.DisableHTTP}}
 | 
			
		||||
						<button class="ui basic clone button" id="repo-clone-https" data-link="{{.WikiCloneLink.HTTPS}}">
 | 
			
		||||
							{{if UseHTTPS}}HTTPS{{else}}HTTP{{end}}
 | 
			
		||||
						</button>
 | 
			
		||||
					{{end}}
 | 
			
		||||
					{{if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}}
 | 
			
		||||
						<button class="ui basic clone button" id="repo-clone-ssh" data-link="{{.WikiCloneLink.SSH}}">
 | 
			
		||||
							SSH
 | 
			
		||||
						</button>
 | 
			
		||||
					{{end}}
 | 
			
		||||
					{{if not $.DisableHTTP}}
 | 
			
		||||
						<input id="repo-clone-url" value="{{$.WikiCloneLink.HTTPS}}" readonly>
 | 
			
		||||
					{{else if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}}
 | 
			
		||||
						<input id="repo-clone-url" value="{{$.WikiCloneLink.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}}
 | 
			
		||||
					{{template "repo/clone_buttons" .}}
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user