From b74d9a542f1abe32b91e6151865fb57a7bfc5b6f Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Tue, 2 Feb 2021 14:10:49 +0000 Subject: [PATCH] Bug 27594: Add access to public download link for publicly-accessible uploads This patch adds a link to the display of publicly-accessible uploads so that the user can copy the public link. This will hopefully lead to easier use of sound file uploads in the Audio Alerts system. To test, apply the patch and go to Tools -> Upload. - If necessary, upload a file with the "Allow public downloads" checkbox checked. - Upon upload you should be shown the results of your upload in a table with the file details. - In the "Public" column you should see that "Yes" is a link. - When you hover your mouse over the link you should see a tooltip, "Copy link to this file." - When you click the link the tooltip should say "Link copied to the clipboard." - Verify that the correct link has been copied. - Test uploading a file which is not publicly-accessible. - Confirm that the information in the "Public" column says "No" and is not a link. Note: I believe the "wrong filter" warning from the QA is a false positive because the variable in question should not be URI-encoded. --- .../intranet-tmpl/prog/en/modules/tools/upload.tt | 20 +++++++++++++++++++- koha-tmpl/intranet-tmpl/prog/js/staff-global.js | 15 ++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt index 3ed10dcae3..c9e2821df5 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt @@ -170,7 +170,13 @@ [% record.hashvalue | html %] [% record.uploadcategorycode | html %] [% IF !plugin %] - [% IF record.public %]Yes[% ELSE %]No[% END %] + + [% IF record.public %] + Yes + [% ELSE %] + No + [% END %] + [% IF record.permanent %]No[% ELSE %]Yes[% END %] [% END %] @@ -425,6 +431,18 @@ e.preventDefault(); SubmitMe('new'); }); + + $(".get-file").on("click", function(e){ + e.preventDefault(); + copyToClipboard( $(this).attr("href") ); + $(this).attr("data-original-title", _( "Link copied to the clipboard" ) ) + .tooltip("show"); + }); + $(".get-file").tooltip({ + delay: { "show": 100, "hide": 500 } + }).on("hidden.bs.tooltip", function(){ + $(this).attr("data-original-title", _( "Copy link to this file" ) ); + }); }); [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/js/staff-global.js b/koha-tmpl/intranet-tmpl/prog/js/staff-global.js index 4f06af9465..7411567556 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/staff-global.js +++ b/koha-tmpl/intranet-tmpl/prog/js/staff-global.js @@ -1,5 +1,5 @@ /* global shortcut delCookie delBasket Sticky */ -/* exported paramOfUrl addBibToContext delBibToContext */ +/* exported paramOfUrl addBibToContext delBibToContext copyToClipboard */ if ( KOHA === undefined ) var KOHA = {}; function _(s) { return s; } // dummy function for gettext @@ -358,3 +358,16 @@ function saveOrClearSimpleSearchParams() { localStorage.setItem('cat_search_pulldown_selection', pulldown_selection ); localStorage.setItem('searchbox_value', searchbox_value ); } + +// https://hackernoon.com/copying-text-to-clipboard-with-javascript-df4d4988697f +function copyToClipboard( text ){ + var el = document.createElement("textarea"); // Create a