[FEATURE] Add a copy button next to links

closes #129

Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
This commit is contained in:
Jerome Jutteau 2017-07-09 16:48:32 +02:00
parent 75c98902b1
commit b8529b7920
2 changed files with 42 additions and 5 deletions

View File

@ -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'); ?>

View 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);});
}