Media: Add button in media upload page for copying the media url.

Adds a button to the media upload page to make copying the url possible on the same page when a media item upload is successful.

Props anotia, ryokuhi, Mista-Flo, lukecarbis, antpb, claytoncollie, shaunandrews, joedolson.
Fixes #51754.



git-svn-id: https://develop.svn.wordpress.org/trunk@51023 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Anthony Burchell
2021-05-26 01:39:47 +00:00
parent 7ec2c1dec8
commit ba7684417a
4 changed files with 102 additions and 16 deletions

View File

@@ -361,7 +361,39 @@ function wpFileExtensionError( up, file, message ) {
up.removeFile( file );
}
/**
* Copies the attachment URL to the clipboard.
*
* @since 5.8.0
*
* @param {MouseEvent} event A click event.
*
* @return {void}
*/
function copyAttachmentUploadURLClipboard() {
var clipboard = new ClipboardJS( '.copy-attachment-url' ),
successTimeout;
clipboard.on( 'success', function( event ) {
var triggerElement = jQuery( event.trigger ),
successElement = jQuery( '.success', triggerElement.closest( '.copy-to-clipboard-container' ) );
// Clear the selection and move focus back to the trigger.
event.clearSelection();
// Handle ClipboardJS focus bug, see https://github.com/zenorocha/clipboard.js/issues/680
triggerElement.trigger( 'focus' );
// Show success visual feedback.
clearTimeout( successTimeout );
successElement.removeClass( 'hidden' );
// Hide success visual feedback after 3 seconds since last success.
successTimeout = setTimeout( function() {
successElement.addClass( 'hidden' );
}, 3000 );
// Handle success audible feedback.
wp.a11y.speak( pluploadL10n.file_url_copied );
} );
}
jQuery( document ).ready( function( $ ) {
copyAttachmentUploadURLClipboard();
var tryAgainCount = {};
var tryAgain;