WordPress.org

Make WordPress Core

Ticket #44588: 44588.7.diff

File 44588.7.diff, 6.4 KB (added by garrett-eclipse, 19 months ago)

Refresh for a few minor items and made the Copied text dismissable after 3 seconds so additional clicks will receive the indication their text was copied.

  • src/js/_enqueues/admin/privacy-tools.js

     
    7777
    7878                        appendResultsAfterRow( $requestRow, 'notice-success', summaryMessage, [] );
    7979                        $this.hide();
    80                        
     80
    8181                        if ( 'undefined' !== typeof zipUrl ) {
    8282                                window.location = zipUrl;
    8383                        } else if ( ! sendAsEmail ) {
     
    232232
    233233        // Privacy policy page, copy button.
    234234        $( document ).on( 'click', function( event ) {
    235                 var $target = $( event.target );
    236                 var $parent, $container, range;
     235                var $parent,
     236                        $container,
     237                        range,
     238                        __ = wp.i18n.__,
     239                        $target = $( event.target ),
     240                        copiedNotice = $target.siblings( '.success' );
    237241
    238242                if ( $target.is( 'button.privacy-text-copy' ) ) {
    239243                        $parent = $target.parent().parent();
     
    253257                                        window.getSelection().addRange( range );
    254258                                        document.execCommand( 'copy' );
    255259
     260                                        copiedNotice.addClass( 'visible' );
     261                                        wp.a11y.speak( __( 'The section has been copied to your clipboard.' ) );
     262
    256263                                        $container.removeClass( 'hide-privacy-policy-tutorial' );
    257264                                        window.getSelection().removeAllRanges();
     265
     266                                        setTimeout( function(){ copiedNotice.removeClass( 'visible' ); }, 3000 );
    258267                                } catch ( er ) {}
    259268                        }
    260269                }
  • src/wp-admin/css/edit.css

     
    714714        padding-bottom: 6px;
    715715}
    716716
     717.privacy-text-actions .success {
     718        display: none;
     719        color: #40860a;
     720        float: right;
     721        padding-right: 1em;
     722}
     723
     724.privacy-text-actions .success.visible {
     725        display: inline-block;
     726        height: 32px;
     727}
     728
    717729.wp-privacy-policy-guide .policy-text h2 {
    718730        margin: 1.2em 0 1em;
    719731        padding: 0;
  • src/wp-admin/includes/class-wp-privacy-policy-content.php

     
    371371        public static function privacy_policy_guide() {
    372372
    373373                $content_array = self::get_suggested_policy_text();
    374 
    375374                $content       = '';
    376375                $toc           = array( '<li><a href="#wp-privacy-policy-guide-introduction">' . __( 'Introduction' ) . '</a></li>' );
    377376                $date_format   = __( 'F j, Y' );
    378                 $copy          = __( 'Copy this section to clipboard' );
    379                 $return_to_top = '<a href="#" class="return-to-top">' . __( '&uarr; Return to Top' ) . '</a>';
    380377
    381378                foreach ( $content_array as $section ) {
    382379                        $class   = '';
     
    384381                        $removed = '';
    385382
    386383                        if ( ! empty( $section['removed'] ) ) {
    387                                 $class = ' text-removed';
     384                                $class = 'text-removed';
    388385                                $date  = date_i18n( $date_format, $section['removed'] );
    389386                                /* translators: %s: Date of plugin deactivation. */
    390387                                $meta = sprintf( __( 'Removed %s.' ), $date );
     
    393390                                $removed = __( 'You deactivated this plugin on %s and may no longer need this policy.' );
    394391                                $removed = '<div class="error inline"><p>' . sprintf( $removed, $date ) . '</p></div>';
    395392                        } elseif ( ! empty( $section['updated'] ) ) {
    396                                 $class = ' text-updated';
     393                                $class = 'text-updated';
    397394                                $date  = date_i18n( $date_format, $section['updated'] );
    398395                                /* translators: %s: Date of privacy policy text update. */
    399396                                $meta = sprintf( __( 'Updated %s.' ), $date );
     
    407404                        $toc_id      = 'wp-privacy-policy-guide-' . sanitize_title( $plugin_name );
    408405                        $toc[]       = sprintf( '<li><a href="#%1$s">%2$s</a>' . $meta . '</li>', $toc_id, $plugin_name );
    409406
    410                         $content .= '<div class="privacy-text-section' . $class . '">';
     407                        $content .= '<div class="privacy-text-section ' . $class . '">';
    411408                        $content .= '<a id="' . $toc_id . '">&nbsp;</a>';
    412409                        /* translators: %s: Plugin name. */
    413410                        $content .= '<h2>' . sprintf( __( 'Source: %s' ), $plugin_name ) . '</h2>';
     
    414411                        $content .= $removed;
    415412
    416413                        $content .= '<div class="policy-text">' . $section['policy_text'] . '</div>';
    417                         $content .= $return_to_top;
     414                        $content .= '<a href="#" class="return-to-top">' . __( '&uarr; Return to Top' ) . '</a>';
    418415
    419416                        if ( empty( $section['removed'] ) ) {
    420                                 $content         .= '<div class="privacy-text-actions">';
    421                                         $content     .= '<button type="button" class="privacy-text-copy button">';
    422                                                 $content .= $copy;
    423                                                 $content .= '<span class="screen-reader-text">';
    424                                                 /* translators: %s: Plugin name. */
    425                                                 $content .= sprintf( __( 'Copy suggested policy text from %s.' ), $plugin_name );
    426                                                 $content .= '</span>';
    427                                         $content     .= '</button>';
    428                                 $content         .= '</div>';
     417                                $content .= '<div class="privacy-text-actions">';
     418                                $content .= '<button type="button" class="privacy-text-copy button">';
     419                                $content .= __( 'Copy this section to clipboard' );
     420                                $content .= '<span class="screen-reader-text">';
     421                                /* translators: %s: Plugin name. */
     422                                $content .= sprintf( __( 'Copy suggested policy text from %s.' ), $plugin_name );
     423                                $content .= '</span>';
     424                                $content .= '</button>';
     425                                $content .= '<span class="success" aria-hidden="true">' . __( 'Copied!' ) . '</span>';
     426                                $content .= '</div>';
    429427                        }
    430428
    431                         $content .= "</div>\n"; // End of .privacy-text-section.
     429                        $content .= "</div>"; // End of .privacy-text-section.
    432430                }
    433431
    434432                if ( count( $toc ) > 2 ) {
    435433                        ?>
    436                         <div  class="privacy-text-box-toc">
     434                        <div class="privacy-text-box-toc">
    437435                                <p><?php _e( 'Table of Contents' ); ?></p>
    438436                                <ol>
    439                                         <?php echo implode( "\n", $toc ); ?>
     437                                        <?php echo implode( $toc ); ?>
    440438                                </ol>
    441439                        </div>
    442440                        <?php
  • src/wp-includes/script-loader.php

     
    14631463                $scripts->add( 'site-health', "/wp-admin/js/site-health$suffix.js", array( 'clipboard', 'jquery', 'wp-util', 'wp-a11y', 'wp-i18n' ), false, 1 );
    14641464                $scripts->set_translations( 'site-health' );
    14651465
    1466                 $scripts->add( 'privacy-tools', "/wp-admin/js/privacy-tools$suffix.js", array( 'jquery' ), false, 1 );
     1466                $scripts->add( 'privacy-tools', "/wp-admin/js/privacy-tools$suffix.js", array( 'jquery', 'wp-a11y', 'wp-i18n' ), false, 1 );
    14671467                did_action( 'init' ) && $scripts->localize(
    14681468                        'privacy-tools',
    14691469                        'privacyToolsL10n',