Make WordPress Core

Ticket #43620: 43620.4.diff

File 43620.4.diff, 10.3 KB (added by xkon, 6 years ago)
  • src/wp-admin/css/edit.css

     
    685685
    686686.privacy-text-section .privacy-text-copy-button {
    687687        float: right;
    688         margin-top: -1.8em;
    689688}
    690689
    691690.privacy-text-section {
     
    692691        padding: 1px 14px 1px 12px;
    693692        border-top: 1px solid #e3e3e3;
    694693        border-left: 4px solid transparent;
     694        position: relative;
    695695}
    696696
     697.privacy-text-box-body .privacy-text-section:nth-child(odd):not(.text-removed):not(.text-updated) {
     698        background-color: #f9f9f9;
     699}
     700
    697701.privacy-text-section.text-updated {
    698702        border-left-color: #46b450;
    699703        background-color: #ecf7ed;
     
    704708        background-color: #fbeaea;
    705709}
    706710
     711.policy-text,
     712.policy-actions,
    707713.closed .privacy-text-box-body {
    708714        display: none;
    709715}
     716.policy-actions.show,
     717.policy-text.show {
     718        display: block;
     719}
    710720
     721.privacy-text-meta {
     722        font-size: 11px;
     723        color: #555D66;
     724        font-weight: 600;
     725}
     726
     727.policy-text-less {
     728        float: left;
     729        margin-top: 10px;
     730}
     731
     732.policy-text {
     733        margin-bottom: 50px;
     734}
     735
     736.policy-actions {
     737        height: 30px;
     738        margin-bottom: 10px;
     739        position: absolute;
     740        bottom: 0;
     741        width: calc( 100% - 30px );
     742}
     743
    711744/*------------------------------------------------------------------------------
    712745  11.1 - Custom Fields
    713746------------------------------------------------------------------------------*/
  • src/wp-admin/includes/admin-filters.php

     
    137137add_action( 'admin_init', array( 'WP_Privacy_Policy_Content', 'text_change_check' ), 20 );
    138138
    139139// Show a "postbox" with the text suggestions for a privacy policy.
    140 add_action( 'edit_form_after_title', array( 'WP_Privacy_Policy_Content', 'privacy_policy_postbox' ) );
     140add_action( 'edit_form_after_editor', array( 'WP_Privacy_Policy_Content', 'privacy_policy_postbox' ) );
    141141
    142142// Add the suggested policy text from WordPress.
    143143add_action( 'admin_init', array( 'WP_Privacy_Policy_Content', 'add_suggested_content' ), 15 );
  • src/wp-admin/includes/misc.php

     
    13621362
    13631363                ?>
    13641364                <div class="policy-text-updated notice notice-warning is-dismissible">
    1365                         <p><?php
    1366 
    1367                                 _e( 'The suggested privacy policy text has changed.' );
    1368 
    1369                                 if ( empty( $post ) || $post->ID != $policy_page_id ) {
    1370                                         ?>
    1371                                         <a href="<?php echo get_edit_post_link( $policy_page_id ); ?>"><?php _e( 'Edit the privacy policy.' ); ?></a>
    1372                                         <?php
    1373                                 }
    1374 
    1375                         ?></p>
     1365                        <p>
     1366                        <?php
     1367                        _e( 'The suggested privacy policy text has changed.' );
     1368                        if ( empty( $post ) || $post->ID != $policy_page_id ) {
     1369                                ?>
     1370                                <a href="<?php echo get_edit_post_link( $policy_page_id ); ?>"><?php _e( 'Edit the privacy policy.' ); ?></a>
     1371                                <?php
     1372                        }
     1373                        ?>
     1374                        </p>
    13761375                </div>
    13771376                <?php
    13781377        }
     
    13951394                update_option( '_wp_privacy_text_change_check', 'no-check' );
    13961395
    13971396                // Remove updated|removed status.
    1398                 $old = (array) get_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' );
    1399                 $done = array();
     1397                $old          = (array) get_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' );
     1398                $done         = array();
    14001399                $update_cache = false;
    14011400
    14021401                foreach ( $old as $old_key => $old_data ) {
     
    14391438         */
    14401439        public static function get_suggested_policy_text() {
    14411440                $policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' );
    1442                 $new = self::$policy_content;
    1443                 $old = (array) get_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' );
    1444                 $checked = array();
    1445                 $time = time();
    1446                 $update_cache = false;
     1441                $new            = self::$policy_content;
     1442                $old            = (array) get_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' );
     1443                $checked        = array();
     1444                $time           = time();
     1445                $update_cache   = false;
    14471446
    14481447                // Check for no-changes and updates.
    14491448                foreach ( $new as $new_key => $new_data ) {
     
    15461545
    15471546                $content_array = self::get_suggested_policy_text();
    15481547
    1549                 $content = '';
     1548                $content     = '';
    15501549                $date_format = get_option( 'date_format' );
    1551                 $copy = __( 'Copy' );
     1550                $copy        = __( 'Copy' );
    15521551
    15531552                foreach ( $content_array as $section ) {
    15541553                        $class = $meta = '';
     
    15551554
    15561555                        if ( ! empty( $section['removed'] ) ) {
    15571556                                $class = ' text-removed';
    1558                                 $date = date_i18n( $date_format, $section['removed'] );
    1559                                 $meta  = sprintf( __( 'Policy text removed %s.' ), $date );
     1557                                $date  = date_i18n( $date_format, $section['removed'] );
     1558                                // translators: %s date.
     1559                                $meta = sprintf( __( 'Policy text removed %s.' ), $date );
    15601560                        } elseif ( ! empty( $section['updated'] ) ) {
    15611561                                $class = ' text-updated';
    1562                                 $date = date_i18n( $date_format, $section['updated'] );
    1563                                 $meta  = sprintf( __( 'Policy text last updated %s.' ), $date );
     1562                                $date  = date_i18n( $date_format, $section['updated'] );
     1563                                // translators: %s date.
     1564                                $meta = sprintf( __( 'Policy text last updated %s.' ), $date );
    15641565                        } elseif ( ! empty( $section['added'] ) ) {
    15651566                                $class = ' text-added';
    1566                                 $date = date_i18n( $date_format, $section['added'] );
    1567                                 $meta  = sprintf( __( 'Policy text added %s.' ), $date );
     1567                                $date  = date_i18n( $date_format, $section['added'] );
     1568                                // translators: %s date.
     1569                                $meta = sprintf( __( 'Policy text added %s.' ), $date );
    15681570                        }
    15691571
    15701572                        $content .= '<div class="privacy-text-section' . $class . '">';
    15711573                        $content .= '<h3>' . $section['plugin_name'] . '</h3>';
    1572                         $content .= '<button type="button" class="privacy-text-copy-button button">';
    1573                         $content .= $copy;
    1574                         $content .= '<span class="screen-reader-text">' . sprintf( __( 'Copy suggested policy text from %s.' ), $section['plugin_name'] ) . '</span>';
    1575                         $content .= '</button>';
    15761574
    15771575                        if ( ! empty( $meta ) ) {
    15781576                                $content .= '<span class="privacy-text-meta">' . $meta . '</span>';
    15791577                        }
    15801578
    1581                         $content .= '<div class="policy-text">' . $section['policy_text'] . '</div>';
     1579                        if ( strlen( $section['policy_text'] ) >= 400 ) {
     1580                                $content .= '<div class="policy-actions">';
     1581                                $content .= '<a href="#" class="policy-text-less">' . __( 'Read Less' ) . '</a>';
     1582                                $content .= '<button type="button" class="privacy-text-copy-button button">';
     1583                                $content .= $copy;
     1584                                // translators: %s plugin name.
     1585                                $content .= '<span class="screen-reader-text">' . sprintf( __( 'Copy suggested policy text from %s.' ), $section['plugin_name'] ) . '</span>';
     1586                                $content .= '</button>';
     1587                                $content .= '</div>';
     1588                                $content .= '<div class="policy-text">' . $section['policy_text'] . '</div>';
     1589                                $content .= '<div class="policy-text-excerpt">' . substr( $section['policy_text'], 0, 400 ) . '&hellip;</div><p><a href="#" class="policy-text-more">' . __( 'Read More' ) . '</a></p>';
     1590                        } else {
     1591                                $content .= '<div class="policy-actions show">';
     1592                                $content .= '<button type="button" class="privacy-text-copy-button button">';
     1593                                $content .= $copy;
     1594                                // translators: %s plugin name.
     1595                                $content .= '<span class="screen-reader-text">' . sprintf( __( 'Copy suggested policy text from %s.' ), $section['plugin_name'] ) . '</span>';
     1596                                $content .= '</button>';
     1597                                $content .= '</div>';
     1598                                $content .= '<div class="policy-text show">' . $section['policy_text'] . '</div>';
     1599                        }
     1600
    15821601                        $content .= "</div>\n";
    15831602                }
    15841603
     
    15891608                                <span class="toggle-indicator" aria-hidden="true"></span>
    15901609                        </button>
    15911610                        <div class="privacy-text-box-head hndle">
    1592                                 <h2><?php _e( 'This suggested privacy policy text comes from plugins you have installed.' ); ?></h2>
     1611                                <h2><?php _e( 'This suggested privacy policy text comes from plugins & themes you have installed.' ); ?></h2>
    15931612                                <p>
    15941613                                        <?php _e( 'We suggest reviewing this text then copying and pasting it into your privacy policy page.' ); ?>
    15951614                                        <?php _e( 'Please remember you are responsible for the policies you choose to adopt, so review the content and make any necessary edits.' ); ?>
     
    16061625        /**
    16071626         * Return the default suggested privacy policy content.
    16081627         *
    1609          * @since 4.9.6         
     1628         * @since 4.9.6
    16101629         *
    16111630         * @return string The defauld policy content.
    16121631         */
     
    16331652         */
    16341653        public static function add_suggested_content() {
    16351654                $content = self::get_default_content();
    1636                 wp_add_privacy_policy_content(  'WordPress', $content );
     1655                wp_add_privacy_policy_content( 'WordPress', $content );
    16371656        }
    16381657}
  • src/wp-admin/js/post.js

     
    12681268                update();
    12691269        } );
    12701270
    1271         // Privacy policy postbox, copy button.
     1271} )( jQuery, new wp.utils.WordCounter() );
     1272
     1273
     1274// Privacy policy postbox, copy button, policy text read more, policy text read less.
     1275( function( $ ) {
     1276
    12721277        $( document ).on( 'click', function( event ) {
    12731278                var $target = $( event.target );
    12741279                var node, range;
    12751280
    12761281                if ( $target.is( 'button.privacy-text-copy-button' ) ) {
    1277                         node = $target.parent().find( 'div.policy-text' )[0];
     1282                        node = $target.parent().parent().find( 'div.policy-text' )[0];
    12781283
    12791284                        if ( node ) {
    12801285                                try {
    12811286                                        window.getSelection().removeAllRanges();
    1282                                         range = document.createRange(); 
    1283                                         range.selectNode( node ); 
     1287                                        range = document.createRange();
     1288                                        range.selectNode( node );
    12841289                                        window.getSelection().addRange( range );
    12851290
    12861291                                        document.execCommand( 'copy' );
     
    12881293                                } catch ( er ) {}
    12891294                        }
    12901295                }
     1296
     1297                if ( $target.is( 'a.policy-text-more' ) ) {
     1298                        event.preventDefault();
     1299                        $target.toggle();
     1300                        $target.parent().siblings('div.policy-text').toggle();
     1301                        $target.parent().siblings('div.policy-text-excerpt').toggle();
     1302                        $target.parent().parent().find('div.policy-actions').toggle();
     1303                }
     1304
     1305                if ( $target.is( 'a.policy-text-less' ) ) {
     1306                        event.preventDefault();
     1307                        $target.parent().toggle();
     1308                        $target.parent().siblings( 'div.policy-text' ).toggle();
     1309                        $target.parent().siblings('div.policy-text-excerpt').toggle();
     1310                        $target.parent().parent().find('a.policy-text-more').toggle();
     1311                        $target.parent().find('div.policy-actions').toggle();
     1312                }
    12911313        });
    12921314
    1293 } )( jQuery, new wp.utils.WordCounter() );
     1315} )( jQuery );