WordPress.org

Make WordPress Core

Ticket #51754: 51754.5.diff

File 51754.5.diff, 5.1 KB (added by antpb, 4 months ago)
  • src/js/_enqueues/vendor/plupload/handlers.js

     
    361361        up.removeFile( file );
    362362}
    363363
     364/**
     365 * Copies the attachment URL to the clipboard.
     366 *
     367 * @since 5.8.0
     368 *
     369 * @param {MouseEvent} event A click event.
     370 *
     371 * @return {void}
     372 */
     373function copyAttachmentUploadURLClipboard() {
     374        var clipboard = new ClipboardJS( '.copy-attachment-url' ),
     375        successTimeout;
     376        clipboard.on( 'success', function( event ) {
     377                var triggerElement = jQuery( event.trigger ),
     378                        successElement = jQuery( '.success', triggerElement.closest( '.copy-to-clipboard-container' ) );
     379                // Clear the selection and move focus back to the trigger.
     380                event.clearSelection();
     381                // Handle ClipboardJS focus bug, see https://github.com/zenorocha/clipboard.js/issues/680
     382                triggerElement.trigger( 'focus' );
     383                // Show success visual feedback.
     384                clearTimeout( successTimeout );
     385                successElement.removeClass( 'hidden' );
     386                // Hide success visual feedback after 3 seconds since last success.
     387                successTimeout = setTimeout( function() {
     388                        successElement.addClass( 'hidden' );
     389                }, 3000 );
     390                // Handle success audible feedback.
     391                wp.a11y.speak( 'The file URL has been copied to your clipboard' );
     392        } );   
     393}
     394
    364395jQuery( document ).ready( function( $ ) {
     396        copyAttachmentUploadURLClipboard();
    365397        var tryAgainCount = {};
    366398        var tryAgain;
    367399
  • src/wp-admin/async-upload.php

     
    6060
    6161                        // Title shouldn't ever be empty, but use filename just in case.
    6262                        $file  = get_attached_file( $post->ID );
     63                        $fileurl  = wp_get_attachment_url( $post->ID );
    6364                        $title = $post->post_title ? $post->post_title : wp_basename( $file );
    64                         echo '<div class="filename new"><span class="title">' . esc_html( wp_html_excerpt( $title, 60, '&hellip;' ) ) . '</span></div>';
     65                        ?>
     66                        <div class="edit-attachment">
     67                                <span class="media-item-copy-container copy-to-clipboard-container">
     68                                        <button type="button" class="button button-small copy-attachment-url" data-clipboard-text="<?php echo $fileurl; ?>"><?php _e( 'Copy URL to clipboard' ); ?></button>
     69                                        <span class="success hidden" aria-hidden="true"><?php _e( 'Copied!' ); ?></span>
     70                                </span>
     71                        </div>
     72                        <?php                                           
     73                        echo '<div class="filename new"><span class="media-list-title"><strong>' . esc_html( wp_html_excerpt( $title, 60, '&hellip;' ) ) . '</strong></span> <span class="media-list-subtitle">' . basename($file) . '</span></div>';
    6574                        break;
    6675                case 2:
    6776                        add_filter( 'attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2 );
  • src/wp-admin/css/media.css

     
    5151        max-width: 128px;
    5252}
    5353
     54.media-list-subtitle {
     55        display: block;
     56}
     57
     58.media-list-title {
     59        display: block;
     60}
     61
    5462#wpbody-content #async-upload-wrap a {
    5563        display: none;
    5664}
     
    96104        padding: 0 0 0 5px;
    97105}
    98106
    99 .media-item .edit-attachment,
    100107.describe-toggle-on,
    101108.describe-toggle-off {
    102109        display: block;
     
    105112        margin-right: 10px;
    106113}
    107114
     115.media-item .edit-attachment {
     116        padding: 14px 0;
     117        line-height: 3.2;
     118        display: block;
     119        float: right;
     120        margin-right: 10px;
     121}
     122
     123.media-item-copy-container .success{
     124        line-height: 0;
     125}
     126
     127.media-item button .copy-attachment-url {
     128        margin-top:14px;
     129}
     130
     131.media-item .copy-to-clipboard-container {
     132        margin-top:7px;
     133}
     134
    108135.media-item .describe-toggle-off,
    109136.media-item.open .describe-toggle-on {
    110137        display: none;
     
    115142}
    116143
    117144.media-upload-form .media-item {
    118         min-height: 36px;
     145        min-height: 70px;
    119146        margin-bottom: 1px;
    120147        position: relative;
    121148        width: 100%;
     
    132159}
    133160
    134161.media-item .filename {
    135         line-height: 2.76923076;
     162        padding: 14px 0;
    136163        overflow: hidden;
    137164        margin-left: 6px;
    138165}
     
    139166
    140167.media-item .pinkynail {
    141168        float: left;
    142         margin: 2px 10px 0 3px;
    143         max-width: 40px;
    144         max-height: 32px;
     169        margin: 0 10px 0 0;
     170        max-height: 70px;
     171        max-width: 70px;
    145172}
    146173
    147174.media-item .startopen,
  • src/wp-includes/script-loader.php

     
    895895                $scripts->add( "plupload-$handle", false, array( 'plupload' ), '2.1.1' );
    896896        }
    897897
    898         $scripts->add( 'plupload-handlers', "/wp-includes/js/plupload/handlers$suffix.js", array( 'plupload', 'jquery' ) );
     898        $scripts->add( 'plupload-handlers', "/wp-includes/js/plupload/handlers$suffix.js", array( 'clipboard', 'jquery', 'plupload', 'underscore', 'wp-a11y', 'wp-i18n' ) );
    899899        did_action( 'init' ) && $scripts->localize( 'plupload-handlers', 'pluploadL10n', $uploader_l10n );
    900900
    901901        $scripts->add( 'wp-plupload', "/wp-includes/js/plupload/wp-plupload$suffix.js", array( 'plupload', 'jquery', 'json2', 'media-models' ), false, 1 );