Copy Git repository URL on click

Message ID 20191211204104.43736-1-lfleischer@archlinux.org
State New
Headers show
Series Copy Git repository URL on click | expand

Commit Message

Lukas Fleischer Dec. 11, 2019, 8:41 p.m. UTC
The Git repository URLs are not meant to be visited using a web browser.
Copy the link to the clipboard instead.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
---
 web/template/pkg_details.php     | 17 +++++++++++++++--
 web/template/pkgbase_details.php | 17 +++++++++++++++--
 2 files changed, 30 insertions(+), 4 deletions(-)

Patch

diff --git a/web/template/pkg_details.php b/web/template/pkg_details.php
index 93b5f1e..c6bb32d 100644
--- a/web/template/pkg_details.php
+++ b/web/template/pkg_details.php
@@ -100,9 +100,9 @@  $base_uri = get_pkgbase_uri($row['BaseName']);
 		<tr>
 			<th><?= __('Git Clone URL') . ': ' ?></th>
 			<td>
-				<a href="<?= $git_clone_uri_anon ?>"><?= $git_clone_uri_anon ?></a> (<?= __('read-only') ?>)
+				<a class="copy" href="<?= $git_clone_uri_anon ?>"><?= $git_clone_uri_anon ?></a> (<?= __('read-only') ?>, <?= __('click to copy') ?>)
 				<?php if (in_array($uid, $maintainers)): ?>
-				<br /> <a href="<?= $git_clone_uri_priv ?>"><?= $git_clone_uri_priv ?></a>
+				<br /> <a class="copy" href="<?= $git_clone_uri_priv ?>"><?= $git_clone_uri_priv ?></a> (<?= __('click to copy') ?>)
 				<?php endif; ?>
 			</td>
 		</tr>
@@ -306,3 +306,16 @@  endif;
 		<?php endif; ?>
 	</div>
 </div>
+
+<script>
+$(document).ready(function() {
+	$('.copy').click(function(e) {
+		var tmp = $("<input>");
+		$("body").append(tmp);
+		tmp.val($(this).text()).select();
+		document.execCommand("copy");
+		tmp.remove();
+		e.preventDefault();
+	});
+});
+</script>
diff --git a/web/template/pkgbase_details.php b/web/template/pkgbase_details.php
index b2ce8cb..a6857c4 100644
--- a/web/template/pkgbase_details.php
+++ b/web/template/pkgbase_details.php
@@ -49,9 +49,9 @@  $base_uri = get_pkgbase_uri($row['Name']);
 		<tr>
 			<th><?= __('Git Clone URL') . ': ' ?></th>
 			<td>
-				<a href="<?= $git_clone_uri_anon ?>"><?= $git_clone_uri_anon ?></a> (<?= __('read-only') ?>)
+				<a class="copy" href="<?= $git_clone_uri_anon ?>"><?= $git_clone_uri_anon ?></a> (<?= __('read-only') ?>, <?= __('click to copy') ?>)
 				<?php if (in_array($uid, $maintainers)): ?>
-				<br /> <a href="<?= $git_clone_uri_priv ?>"><?= $git_clone_uri_priv ?></a>
+				<br /> <a class="copy" href="<?= $git_clone_uri_priv ?>"><?= $git_clone_uri_priv ?></a> (<?= __('click to copy') ?>)
 				<?php endif; ?>
 			</td>
 		</tr>
@@ -135,3 +135,16 @@  endif;
 		</div>
 	</div>
 </div>
+
+<script>
+$(document).ready(function() {
+	$('.copy').click(function(e) {
+		var tmp = $("<input>");
+		$("body").append(tmp);
+		tmp.val($(this).text()).select();
+		document.execCommand("copy");
+		tmp.remove();
+		e.preventDefault();
+	});
+});
+</script>