WordPress.org

Make WordPress Core

Ticket #41316: 41316.12.diff

File 41316.12.diff, 18.2 KB (added by pento, 4 months ago)
  • src/wp-admin/admin-ajax.php

     
    6464        'parse-media-shortcode', 'destroy-sessions', 'install-plugin', 'update-plugin', 'crop-image',
    6565        'generate-password', 'save-wporg-username', 'delete-plugin', 'search-plugins',
    6666        'search-install-plugins', 'activate-plugin', 'update-theme', 'delete-theme', 'install-theme',
    67         'get-post-thumbnail-html', 'get-community-events', 'edit-theme-plugin-file',
     67        'get-post-thumbnail-html', 'get-community-events', 'edit-theme-plugin-file', 'update-try-gutenberg-panel',
    6868);
    6969
    7070// Deprecated
  • src/wp-admin/css/common.css

     
    764764
    765765/* @todo can we combine these into a class or use an existing dashicon one? */
    766766.welcome-panel .welcome-panel-close:before,
     767.try-gutenberg-panel .try-gutenberg-panel-close:before,
    767768.tagchecklist .ntdelbutton .remove-tag-icon:before,
    768769#bulk-titles div a:before,
    769770.notice-dismiss:before {
  • src/wp-admin/css/dashboard.css

     
    9898}
    9999
    100100/* Welcome Panel */
    101 .welcome-panel {
     101.welcome-panel,
     102.try-gutenberg-panel {
    102103        position: relative;
    103104        overflow: auto;
    104105        margin: 16px 0;
     
    110111        line-height: 2.1em;
    111112}
    112113
    113 .welcome-panel h2 {
     114.welcome-panel h2,
     115.try-gutenberg-panel h2 {
    114116        margin: 0;
    115117        font-size: 21px;
    116118        font-weight: 400;
    117119        line-height: 1.2;
    118120}
    119121
    120 .welcome-panel h3 {
     122.welcome-panel h3,
     123.try-gutenberg-panel h3 {
    121124        margin: 1.33em 0 0;
    122125        font-size: 16px;
    123126}
    124127
    125 .welcome-panel li {
     128.welcome-panel li,
     129.try-gutenberg-panel li {
    126130        font-size: 14px;
    127131}
    128132
    129 .welcome-panel p {
     133.welcome-panel p,
     134.try-gutenberg-panel p,
     135.try-gutenberg-panel-column p.about-description {
    130136        color: #72777c;
    131137}
    132138
    133 .welcome-panel a {
     139.welcome-panel a,
     140.try-gutenberg-panel a {
    134141        text-decoration: none;
    135142}
    136143
     
    139146        margin: 0;
    140147}
    141148
    142 .welcome-panel .welcome-panel-close {
     149.try-gutenberg-panel .about-description {
     150        font-size: 16px;
     151}
     152
     153.welcome-panel .welcome-panel-close,
     154.try-gutenberg-panel .try-gutenberg-panel-close {
    143155        position: absolute;
     156        z-index: 10;
    144157        top: 10px;
    145158        right: 10px;
    146159        padding: 10px 15px 10px 21px;
     
    149162        text-decoration: none;
    150163}
    151164
    152 .welcome-panel .welcome-panel-close:before {
     165.welcome-panel .welcome-panel-close:before,
     166.try-gutenberg-panel .try-gutenberg-panel-close:before {
    153167        position: absolute;
    154168        top: 8px;
    155169        left: 0;
     
    164178        white-space: normal;
    165179}
    166180
    167 .welcome-panel-content {
    168         margin-left: 13px;
     181.welcome-panel-content,
     182.try-gutenberg-panel-content {
     183        margin: 0 13px;
    169184        max-width: 1500px;
    170185}
    171186
    172 .welcome-panel .welcome-panel-column-container {
     187.try-gutenberg-panel img {
     188        width: 100%;
     189        border: 1px solid #f3f4f5;
     190}
     191
     192.try-gutenberg-panel .install-now.updating-message:before,
     193.try-gutenberg-panel .install-now.updated-message:before {
     194        margin-top: 11px;
     195}
     196
     197.welcome-panel .welcome-panel-column-container,
     198.try-gutenberg-panel .try-gutenberg-panel-column-container {
    173199        clear: both;
    174200        position: relative;
    175201}
    176202
    177 .welcome-panel .welcome-panel-column {
     203.welcome-panel .welcome-panel-column,
     204.try-gutenberg-panel .try-gutenberg-panel-column {
    178205        width: 32%;
    179206        min-width: 200px;
    180207        float: left;
    181208}
    182209
    183 .ie8 .welcome-panel .welcome-panel-column {
     210.try-gutenberg-panel .try-gutenberg-panel-column {
     211        width: calc( 64% - 40px );
     212        padding: 0 20px 20px 0;
     213}
     214
     215.try-gutenberg-panel .try-gutenberg-panel-image-column {
     216        width: calc( 32% - 20px );
     217}
     218
     219.ie8 .welcome-panel .welcome-panel-column,
     220.ie8 .try-gutenberg-panel .try-gutenberg-panel-column {
    184221        min-width: 230px;
    185222}
    186223
    187 .welcome-panel .welcome-panel-column:first-child {
     224.welcome-panel .welcome-panel-column:first-child
     225.try-gutenberg-panel .try-gutenberg-panel-column:first-child {
    188226        width: 36%;
    189227}
    190228
     
    192230        margin-top: 10px;
    193231}
    194232
    195 .welcome-panel-column p {
     233.welcome-panel-column p,
     234.try-gutenberg-panel-column p {
    196235        margin-top: 7px;
    197236        color: #444;
    198237}
    199238
     239.try-gutenberg-panel-column p:last-of-type {
     240        margin-top: 1.33em;
     241}
     242
    200243.welcome-panel .welcome-widgets-menus {
    201244        line-height: 16px;
    202245}
    203246
    204 .welcome-panel .welcome-panel-column ul {
    205         margin: 0.8em 1em 1em 0;
     247.welcome-panel .welcome-panel-column ul,
     248.try-gutenberg-panel .try-gutenberg-panel-column ul {
     249                margin: 0.8em 1em 1em 0;
    206250}
    207251
    208 .welcome-panel .welcome-panel-column li {
     252.welcome-panel .welcome-panel-column li,
     253.try-gutenberg-panel .try-gutenberg-panel-column li {
    209254        line-height: 16px;
    210255        list-style-type: none;
    211256        padding: 0 0 8px;
    212257}
    213258
     259.try-gutenberg-panel .notice {
     260        display: inline-block;
     261}
     262
    214263.welcome-panel .welcome-icon {
    215264        background: transparent !important;
    216265}
     
    12071256        }
    12081257}
    12091258
     1259@media screen and (max-width: 1024px) {
     1260        .try-gutenberg-panel .try-gutenberg-panel-image-column {
     1261                display: none;
     1262        }
     1263
     1264        .try-gutenberg-panel .try-gutenberg-panel-column {
     1265                width: calc( 98% - 20px );
     1266        }
     1267}
     1268
    12101269@media screen and (max-width: 870px) {
    12111270        .welcome-panel .welcome-panel-column,
     1271        .try-gutenberg-panel .try-gutenberg-panel-column,
    12121272        .welcome-panel .welcome-panel-column:first-child {
    12131273                display: block;
    12141274                float: none;
    12151275                width: 100%;
    12161276        }
    12171277
     1278        .try-gutenberg-panel .try-gutenberg-panel-image-column {
     1279                display: none;
     1280        }
     1281
    12181282        .welcome-panel .welcome-panel-column li {
    12191283                display: inline-block;
    12201284                margin-right: 13px;
     
    12231287        .welcome-panel .welcome-panel-column ul {
    12241288                margin: 0.4em 0 0;
    12251289        }
    1226 
    12271290}
    12281291
    12291292@media screen and ( max-width: 782px ) {
     
    12661329/* Smartphone */
    12671330@media screen and (max-width: 600px) {
    12681331        /* Keep the close icon from overlapping the Welcome text. */
    1269         .welcome-panel .welcome-panel-close {
     1332        .welcome-panel .welcome-panel-close,
     1333        .try-gutenberg-panel .try-gutenberg-panel-close {
    12701334                overflow: hidden;
    12711335                text-indent: 40px;
    12721336                white-space: nowrap;
     
    12781342        }
    12791343
    12801344        /* Make the close icon larger for tappability. */
    1281         .welcome-panel .welcome-panel-close:before {
     1345        .welcome-panel .welcome-panel-close:before,
     1346        .try-gutenberg-panel .try-gutenberg-panel-close:before {
    12821347                font-size: 20px;
    12831348                top: 5px;
    12841349                left: -35px;
  • src/wp-admin/includes/ajax-actions.php

     
    14851485}
    14861486
    14871487/**
     1488 * Ajax handler for updating whether to display the Try Gutenberg panel.
     1489 *
     1490 * @since 4.9.6
     1491 */
     1492function wp_ajax_update_try_gutenberg_panel() {
     1493        check_ajax_referer( 'try-gutenberg-panel-nonce', 'trygutenbergpanelnonce' );
     1494
     1495        update_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', empty( $_POST['visible'] ) ? 0 : 1 );
     1496
     1497        wp_die( 1 );
     1498}
     1499
     1500/**
    14881501 * Ajax handler for retrieving menu meta boxes.
    14891502 *
    14901503 * @since 3.1.0
  • src/wp-admin/includes/class-wp-screen.php

     
    10201020                                        update_user_meta( get_current_user_id(), 'show_welcome_panel', $welcome_checked );
    10211021                                } else {
    10221022                                        $welcome_checked = get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
    1023                                         if ( 2 == $welcome_checked && wp_get_current_user()->user_email != get_option( 'admin_email' ) ) {
     1023                                        if ( '' === $welcome_checked ) {
     1024                                                $welcome_checked = '1';
     1025                                        }
     1026                                        if ( '2' === $welcome_checked && wp_get_current_user()->user_email != get_option( 'admin_email' ) ) {
    10241027                                                $welcome_checked = false;
    10251028                                        }
    10261029                                }
     
    10281031                                echo '<input type="checkbox" id="wp_welcome_panel-hide"' . checked( (bool) $welcome_checked, true, false ) . ' />';
    10291032                                echo _x( 'Welcome', 'Welcome panel' ) . "</label>\n";
    10301033                        }
     1034
     1035                        if ( 'dashboard' === $this->id && has_action( 'try_gutenberg_panel' ) ) {
     1036                                if ( isset( $_GET['try_gutenberg'] ) ) {
     1037                                        $try_gutenberg_checked = empty( $_GET['try_gutenberg'] ) ? 0 : 1;
     1038                                        update_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', $try_gutenberg_checked );
     1039                                } else {
     1040                                        $try_gutenberg_checked = get_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', true );
     1041                                        if ( '' === $try_gutenberg_checked ) {
     1042                                                $try_gutenberg_checked = '1';
     1043                                        }
     1044                                        if ( '2' === $try_gutenberg_checked && wp_get_current_user()->user_email != get_option( 'admin_email' ) ) {
     1045                                                $try_gutenberg_checked = false;
     1046                                        }
     1047                                }
     1048                                echo '<label for="wp_try_gutenberg_panel-hide">';
     1049                                echo '<input type="checkbox" id="wp_try_gutenberg_panel-hide"' . checked( (bool) $try_gutenberg_checked, true, false ) . ' />';
     1050                                echo __( 'New Editor' ) . "</label>\n";
     1051                        }
    10311052                ?>
    10321053                </fieldset>
    10331054                <?php
  • src/wp-admin/includes/dashboard.php

     
    16191619        </div>
    16201620        <?php
    16211621}
     1622
     1623/**
     1624 * Displays a Try Gutenberg Panel, to introduce people to Gutenberg
     1625 *
     1626 * @since 4.9.6
     1627 */
     1628function wp_try_gutenberg_panel() {
     1629        $plugins = get_plugins();
     1630        $action = $url = $classes = '';
     1631
     1632        if ( current_user_can( 'install_plugins' ) && empty( $plugins['gutenberg/gutenberg.php'] ) ) {
     1633                $action = __( 'Install Today' );
     1634                $url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=gutenberg' ), 'install-plugin_gutenberg' );
     1635                $classes = ' install-now';
     1636        } else if ( current_user_can( 'install_plugins' ) && is_plugin_inactive( 'gutenberg/gutenberg.php' ) ) {
     1637                $action = __( 'Activate Today' );
     1638                $url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=gutenberg/gutenberg.php&from=try-gutenberg' ), 'activate-plugin_gutenberg/gutenberg.php' );
     1639                $classes = ' activate-now';
     1640        } else if ( current_user_can( 'edit_posts' ) && is_plugin_active( 'gutenberg/gutenberg.php' ) ) {
     1641                $action = __( 'Try Today' );
     1642                $url = admin_url( 'admin.php?page=gutenberg' );
     1643        }
     1644
     1645        ?>
     1646        <div class="try-gutenberg-panel-content plugin-card-gutenberg">
     1647                <div class="try-gutenberg-panel-column-container">
     1648                        <div class="try-gutenberg-panel-column try-gutenberg-panel-image-column">
     1649                                <picture>
     1650                                        <source srcset="about:blank" media="(max-width: 1024px)">
     1651                                        <img src="https://s.w.org/images/core/gutenberg-screenshot.gif?<?php echo date( 'Ymd' ); ?>" alt="<?php esc_attr_e( 'Gutenberg animated preview' ); ?>" />
     1652                                </picture>
     1653                        </div>
     1654                        <div class="try-gutenberg-panel-column">
     1655                                <h2><?php _e( 'Try the new editing experience' ); ?></h2>
     1656
     1657                                <p class="about-description"><?php _e( 'WordPress is working on a better way for you to create and control your content. Want to be one of the first to try the new editor?' ); ?></p>
     1658
     1659                                <?php if ( $action ) { ?>
     1660                                        <p><a class="button button-primary button-hero<?php echo $classes; ?>" href="<?php echo esc_url( $url ); ?>"><?php echo $action; ?></a></p>
     1661                                <?php } ?>
     1662
     1663                                <p>
     1664                                        <?php
     1665                                                printf( __( '<a href="%s">Learn More</a>' ),
     1666                                                        'https://wordpress.org/gutenberg/'
     1667                                                );
     1668                                        ?> |
     1669                                        <?php
     1670                                                printf( __( '<a href="%s">Get Support</a>' ),
     1671                                                        'https://wordpress.org/support/plugin/gutenberg/'
     1672                                                );
     1673                                        ?> |
     1674                                        <?php
     1675                                                printf( __( '<a href="%s">Report Issues</a>' ),
     1676                                                        'https://github.com/WordPress/gutenberg/'
     1677                                                );
     1678                                        ?>
     1679                                </p>
     1680                        </div>
     1681                </div>
     1682        </div>
     1683        <?php
     1684}
  • src/wp-admin/index.php

     
    103103<div class="wrap">
    104104        <h1><?php echo esc_html( $title ); ?></h1>
    105105
     106<?php if ( has_action( 'try_gutenberg_panel' ) ) :
     107        $classes = 'try-gutenberg-panel';
     108
     109        $option = get_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', true );
     110        // 0 = hide, 1 = toggled to show or single site creator, 2 = multisite site owner
     111        $hide = '0' === $option || ( '2' === $option && wp_get_current_user()->user_email !== get_option( 'admin_email' ) );
     112        if ( $hide )
     113                $classes .= ' hidden'; ?>
     114
     115        <div id="try-gutenberg-panel" class="<?php echo esc_attr( $classes ); ?>">
     116                <?php wp_nonce_field( 'try-gutenberg-panel-nonce', 'trygutenbergpanelnonce', false ); ?>
     117                <a class="try-gutenberg-panel-close" href="<?php echo esc_url( admin_url( '?try_gutenberg=0' ) ); ?>" aria-label="<?php esc_attr_e( 'Dismiss the Try Gutenberg panel' ); ?>"><?php _e( 'Dismiss' ); ?></a>
     118                <?php
     119                /**
     120                 * Add content to the Try Gutenberg panel on the admin dashboard.
     121                 *
     122                 * To remove the Try Gutenberg panel, use remove_action():
     123                 *
     124                 *     remove_action( 'try_gutenberg_panel', 'wp_try_gutenberg_panel' );
     125                 *
     126                 * @since 4.9.6
     127                 */
     128                do_action( 'try_gutenberg_panel' );
     129                ?>
     130        </div>
     131<?php endif; ?>
    106132<?php if ( has_action( 'welcome_panel' ) && current_user_can( 'edit_theme_options' ) ) :
    107133        $classes = 'welcome-panel';
    108134
    109135        $option = get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
    110136        // 0 = hide, 1 = toggled to show or single site creator, 2 = multisite site owner
    111         $hide = 0 == $option || ( 2 == $option && wp_get_current_user()->user_email != get_option( 'admin_email' ) );
     137        $hide = '0' === $option || ( '2' === $option && wp_get_current_user()->user_email != get_option( 'admin_email' ) );
    112138        if ( $hide )
    113139                $classes .= ' hidden'; ?>
    114140
  • src/wp-admin/js/dashboard.js

     
    3131                updateWelcomePanel( this.checked ? 1 : 0 );
    3232        });
    3333
     34        var tryGutenbergPanel = $( '#try-gutenberg-panel' ),
     35                tryGutenbergPanelHide = $('#wp_try_gutenberg_panel-hide'),
     36                updateTryGutenbergPanel, installGutenbergSuccess;
     37
     38        updateTryGutenbergPanel = function( visible ) {
     39                $.post( ajaxurl, {
     40                        action: 'update-try-gutenberg-panel',
     41                        visible: visible,
     42                        trygutenbergpanelnonce: $( '#trygutenbergpanelnonce' ).val()
     43                });
     44        };
     45
     46        installGutenbergSuccess = function( response ) {
     47                response.activateUrl += '&from=try-gutenberg';
     48                wp.updates.installPluginSuccess( response );
     49        };
     50
     51        if ( tryGutenbergPanel.hasClass('hidden') && tryGutenbergPanelHide.prop('checked') ) {
     52                tryGutenbergPanel.removeClass('hidden');
     53        }
     54
     55        $('.try-gutenberg-panel-close, .try-gutenberg-panel-dismiss a', tryGutenbergPanel).click( function(e) {
     56                e.preventDefault();
     57                tryGutenbergPanel.addClass('hidden');
     58                updateTryGutenbergPanel( 0 );
     59                $('#wp_try_gutenberg_panel-hide').prop('checked', false);
     60        });
     61
     62        tryGutenbergPanelHide.click( function() {
     63                tryGutenbergPanel.toggleClass('hidden', ! this.checked );
     64                updateTryGutenbergPanel( this.checked ? 1 : 0 );
     65        });
     66
     67        tryGutenbergPanel.on( 'click', '.install-now', function( e ) {
     68                e.preventDefault();
     69                var args = {
     70                        slug: 'gutenberg',
     71                        success: installGutenbergSuccess
     72                };
     73                wp.updates.installPlugin( args );
     74        } );
     75
    3476        // These widgets are sometimes populated via ajax
    3577        ajaxWidgets = ['dashboard_primary'];
    3678
  • src/wp-admin/js/updates.js

     
    585585
    586586                $message
    587587                        .removeClass( 'updating-message' )
    588                         .addClass( 'updated-message installed button-disabled' )
     588                        .addClass( 'updated-message installed' )
    589589                        .attr( 'aria-label', wp.updates.l10n.pluginInstalledLabel.replace( '%s', response.pluginName ) )
    590590                        .text( wp.updates.l10n.pluginInstalled );
    591591
     592                if ( $message.hasClass( 'button-primary' ) ) {
     593                        $message.addClass( 'button-primary-disabled' );
     594                } else if ( $message.hasClass( 'button-secondary' ) ) {
     595                        $message.addClass( 'button-secondary-disabled' );
     596                } else {
     597                        $message.addClass( 'button-disabled' );
     598                }
     599
    592600                wp.a11y.speak( wp.updates.l10n.installedMsg, 'polite' );
    593601
    594602                $document.trigger( 'wp-plugin-install-success', response );
     
    597605                        setTimeout( function() {
    598606
    599607                                // Transform the 'Install' button into an 'Activate' button.
    600                                 $message.removeClass( 'install-now installed button-disabled updated-message' ).addClass( 'activate-now button-primary' )
     608                                $message.removeClass( 'install-now installed button-primary-disabled button-secondary-disabled button-disabled updated-message' )
     609                                        .addClass( 'activate-now button-primary' )
    601610                                        .attr( 'href', response.activateUrl )
    602611                                        .attr( 'aria-label', wp.updates.l10n.activatePluginLabel.replace( '%s', response.pluginName ) )
    603612                                        .text( wp.updates.l10n.activatePlugin );
  • src/wp-admin/plugins.php

     
    6565                                wp_redirect( self_admin_url("import.php?import=" . str_replace('-importer', '', dirname($plugin))) ); // overrides the ?error=true one above and redirects to the Imports page, stripping the -importer suffix
    6666                        } else if ( isset($_GET['from']) && 'press-this' == $_GET['from'] ) {
    6767                                wp_redirect( self_admin_url( "press-this.php") );
     68                        } else if ( isset($_GET['from']) && 'try-gutenberg' == $_GET['from'] ) {
     69                                wp_redirect( self_admin_url( "admin.php?page=gutenberg") );
    6870                        } else {
    6971                                wp_redirect( self_admin_url("plugins.php?activate=true&plugin_status=$status&paged=$page&s=$s") ); // overrides the ?error=true one above
    7072                        }
  • src/wp-includes/default-filters.php

     
    318318add_action( 'transition_post_status',     '_update_term_count_on_transition_post_status', 10, 3 );
    319319add_action( 'comment_form',               'wp_comment_form_unfiltered_html_nonce'          );
    320320add_action( 'admin_init',                 'send_frame_options_header',               10, 0 );
     321add_action( 'try_gutenberg_panel',        'wp_try_gutenberg_panel'                         );
    321322add_action( 'welcome_panel',              'wp_welcome_panel'                               );
    322323
    323324// Cron tasks