]> git.p6c8.net - jirafeau_project.git/commitdiff
[FEATURE] Add a copy button next to links
authorJerome Jutteau <j.jutteau@gmail.com>
Sun, 9 Jul 2017 14:48:32 +0000 (16:48 +0200)
committerJerome Jutteau <j.jutteau@gmail.com>
Sun, 9 Jul 2017 15:05:06 +0000 (17:05 +0200)
closes #129

Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
index.php
lib/functions.js.php

index cd0eed839d6ba22cdc2650bfba447f299db7a79e..11205a4588d3d0dcb0d0a0a96236bd7e43a10ed0 100644 (file)
--- a/index.php
+++ b/index.php
@@ -98,25 +98,35 @@ else {
 
     <div id="upload_finished_download_page">
     <p>
-          <a id="upload_link" href=""><?php echo t('Download page') ?></a>
-          <a id="upload_link_email" href=""><img id="upload_image_email"/></a>
+        <a id="upload_link" href=""><?php echo t('Download page') ?></a>
+        <a id="upload_link_email" href=""><img id="upload_image_email"/></a>
+        <button id="upload_link_button">✂</button>
     </p>
     </div>
 
     <?php if ($cfg['preview'] == true) {
     ?>
     <div id="upload_finished_preview">
-    <p><a id="preview_link" href=""><?php echo t('View link') ?></a></p>
+    <p>
+        <a id="preview_link" href=""><?php echo t('View link') ?></a>
+        <button id="preview_link_button">✂</button>
+    </p>
     </div>
     <?php
 } ?>
 
     <div id="upload_direct_download">
-    <p><a id="direct_link" href=""><?php echo t('Direct download link') ?></a></p>
+    <p>
+        <a id="direct_link" href=""><?php echo t('Direct download link') ?></a>
+        <button id="direct_link_button">✂</button>
+    </p>
     </div>
 
     <div id="upload_delete">
-    <p><a id="delete_link" href=""><?php echo t('Delete link') ?></a></p>
+    <p>
+        <a id="delete_link" href=""><?php echo t('Delete link') ?></a>
+        <button id="delete_link_button">✂</button>
+    </p>
     </div>
 
     <div id="upload_validity">
@@ -262,5 +272,10 @@ else {
         document.getElementById('max_file_size').innerHTML = '<?php
              echo t('You browser may not support HTML5 so the maximum file size is ') . jirafeau_get_max_upload_size();
              ?>';
+
+    addCopyListener('upload_link_button', 'upload_link');
+    addCopyListener('preview_link_button', 'preview_link');
+    addCopyListener('direct_link_button', 'direct_link');
+    addCopyListener('delete_link_button', 'delete_link');
 </script>
 <?php require(JIRAFEAU_ROOT . 'lib/template/footer.php'); ?>
index 542000b6574a96e04a1e92a8da3daa572492caa5..6ee335dacdcb3099dac6ca0a7f4fdfdd4740cc63 100644 (file)
@@ -710,3 +710,25 @@ document.addEventListener('DOMContentLoaded', function(event) {
     // Search for all datetime fields and convert the time to local timezone
     convertAllDatetimeFields();
 });
+
+// Add copy event listeners
+function copyLinkToClipboard(link_id) {
+    var focus = document.activeElement;
+    var e = document.getElementById(link_id);
+
+    var tmp = document.createElement("textarea");
+    document.body.appendChild(tmp);
+    tmp.textContent = e.href;
+    tmp.focus();
+    tmp.setSelectionRange(0, tmp.value.length);
+    document.execCommand("copy");
+    document.body.removeChild(tmp);
+
+    focus.focus();
+}
+
+function addCopyListener(button_id, link_id) {
+    document.getElementById(button_id)
+            .addEventListener("click", function() {
+                copyLinkToClipboard(link_id);});
+}

patrick-canterino.de