WordPress.org

Make WordPress Core

Ticket #39087: 39087.5.diff

File 39087.5.diff, 6.8 KB (added by westonruter, 3 years ago)

https://github.com/xwp/wordpress-develop/pull/219

  • src/wp-admin/css/customize-controls.css

    diff --git src/wp-admin/css/customize-controls.css src/wp-admin/css/customize-controls.css
    index df6e49feac..bd9402f44c 100644
    body { 
    152152
    153153#customize-controls .customize-info .customize-panel-description,
    154154#customize-controls .customize-info .customize-section-description,
    155 #customize-controls .no-widget-areas-rendered-notice {
     155#customize-controls .non-rendered-widget-areas-notice {
    156156        color: #555d66;
    157157        display: none;
    158158        background: #fff;
    body { 
    160160        border-top: 1px solid #ddd;
    161161}
    162162
    163 #customize-controls .customize-info .customize-panel-description.open + .no-widget-areas-rendered-notice {
     163#customize-controls .customize-info .customize-panel-description.open + .non-rendered-widget-areas-notice {
    164164        border-top: none;
    165165}
     166.non-rendered-widget-areas-notice {
     167        font-style: italic;
     168}
     169.non-rendered-widget-areas-notice p:first-child {
     170        margin-top: 0;
     171}
     172.non-rendered-widget-areas-notice p:last-child {
     173        margin-bottom: 0;
     174}
    166175
    167176#customize-controls .customize-info .customize-section-description {
    168177        margin-bottom: 15px;
  • src/wp-admin/js/customize-widgets.js

    diff --git src/wp-admin/js/customize-widgets.js src/wp-admin/js/customize-widgets.js
    index 25c1eb5b7a..668984038c 100644
     
    15771577                        api.Panel.prototype.ready.call( panel );
    15781578
    15791579                        panel.deferred.embedded.done(function() {
    1580                                 var panelMetaContainer, noRenderedAreasNotice, shouldShowNotice;
     1580                                var panelMetaContainer, noticeContainer, updateNotice, getActiveSectionCount, shouldShowNotice;
    15811581                                panelMetaContainer = panel.container.find( '.panel-meta' );
    1582                                 noRenderedAreasNotice = $( '<div></div>', {
    1583                                         'class': 'no-widget-areas-rendered-notice'
     1582
     1583                                // @todo This should use the Notifications API introduced to panels. See <https://core.trac.wordpress.org/ticket/38794>.
     1584                                noticeContainer = $( '<div></div>', {
     1585                                        'class': 'non-rendered-widget-areas-notice'
    15841586                                });
    1585                                 noRenderedAreasNotice.append( $( '<em></em>', {
    1586                                         text: l10n.noAreasRendered
    1587                                 } ) );
    1588                                 panelMetaContainer.append( noRenderedAreasNotice );
     1587                                panelMetaContainer.append( noticeContainer );
    15891588
    1590                                 shouldShowNotice = function() {
    1591                                         return ( 0 === _.filter( panel.sections(), function( section ) {
     1589                                /**
     1590                                 * Get the number of active sections in the panel.
     1591                                 *
     1592                                 * @return {number} Number of active sidebar sections.
     1593                                 */
     1594                                getActiveSectionCount = function() {
     1595                                        return _.filter( panel.sections(), function( section ) {
    15921596                                                return section.active();
    1593                                         } ).length );
     1597                                        } ).length;
     1598                                };
     1599
     1600                                /**
     1601                                 * Determine whether or not the notice should be displayed.
     1602                                 *
     1603                                 * @return {boolean}
     1604                                 */
     1605                                shouldShowNotice = function() {
     1606                                        var activeSectionCount = getActiveSectionCount();
     1607                                        if ( 0 === activeSectionCount ) {
     1608                                                return true;
     1609                                        } else {
     1610                                                return activeSectionCount !== api.Widgets.data.registeredSidebars.length;
     1611                                        }
     1612                                };
     1613
     1614                                /**
     1615                                 * Update the notice.
     1616                                 *
     1617                                 * @returns {void}
     1618                                 */
     1619                                updateNotice = function() {
     1620                                        var activeSectionCount = getActiveSectionCount(), message, nonRenderedAreaCount, registeredWidgetCount;
     1621                                        noticeContainer.empty();
     1622
     1623                                        registeredWidgetCount = api.Widgets.data.registeredSidebars.length;
     1624                                        if ( activeSectionCount !== registeredWidgetCount ) {
     1625
     1626                                                if ( 0 !== activeSectionCount ) {
     1627                                                        nonRenderedAreaCount = registeredWidgetCount - activeSectionCount;
     1628                                                        message = ( 1 === nonRenderedAreaCount ? l10n.someAreasShown.singular : l10n.someAreasShown.plural ).replace( '%d', nonRenderedAreaCount );
     1629                                                } else {
     1630                                                        message = ( 1 === registeredWidgetCount ? l10n.noAreasShown.singular : l10n.noAreasShown.plural ).replace( '%d', registeredWidgetCount );
     1631                                                }
     1632
     1633                                                noticeContainer.append( $( '<p></p>', {
     1634                                                        text: message
     1635                                                } ) );
     1636                                                noticeContainer.append( $( '<p></p>', {
     1637                                                        text: l10n.navigatePreview
     1638                                                } ) );
     1639                                        }
    15941640                                };
     1641                                updateNotice();
    15951642
    15961643                                /*
    15971644                                 * Set the initial visibility state for rendered notice.
    15981645                                 * Update the visibility of the notice whenever a reflow happens.
    15991646                                 */
    1600                                 noRenderedAreasNotice.toggle( shouldShowNotice() );
     1647                                noticeContainer.toggle( shouldShowNotice() );
    16011648                                api.previewer.deferred.active.done( function () {
    1602                                         noRenderedAreasNotice.toggle( shouldShowNotice() );
     1649                                        noticeContainer.toggle( shouldShowNotice() );
    16031650                                });
    16041651                                api.bind( 'pane-contents-reflowed', function() {
    16051652                                        var duration = ( 'resolved' === api.previewer.deferred.active.state() ) ? 'fast' : 0;
     1653                                        updateNotice();
    16061654                                        if ( shouldShowNotice() ) {
    1607                                                 noRenderedAreasNotice.slideDown( duration );
     1655                                                noticeContainer.slideDown( duration );
    16081656                                        } else {
    1609                                                 noRenderedAreasNotice.slideUp( duration );
     1657                                                noticeContainer.slideUp( duration );
    16101658                                        }
    16111659                                });
    16121660                        });
  • src/wp-includes/class-wp-customize-widgets.php

    diff --git src/wp-includes/class-wp-customize-widgets.php src/wp-includes/class-wp-customize-widgets.php
    index 0cd2359d56..887c11fa0c 100644
    final class WP_Customize_Widgets { 
    732732                                'error'            => __( 'An error has occurred. Please reload the page and try again.' ),
    733733                                'widgetMovedUp'    => __( 'Widget moved up' ),
    734734                                'widgetMovedDown'  => __( 'Widget moved down' ),
    735                                 'noAreasRendered'  => __( 'There are no widget areas on the page shown, however other pages in this theme do have them.' ),
     735                                'navigatePreview'  => __( 'You can navigate to other pages on your site while using the Customizer to view and edit the widgets displayed on those pages.' ),
     736                                'someAreasShown'   => wp_array_slice_assoc(
     737                                        /* translators: placeholder is the number of other widget areas registered */
     738                                        _n_noop(
     739                                                'Your theme has %d other widget area, but this particular page doesn\'t display it.',
     740                                                'Your theme has %d other widget areas, but this particular page doesn\'t display them.'
     741                                        ),
     742                                        array( 'singular', 'plural' )
     743                                ),
     744                                'noAreasShown'    => wp_array_slice_assoc(
     745                                        /* translators: placeholder is the total number of widget areas registered */
     746                                        _n_noop(
     747                                                'Your theme has %d widget area, but this particular page doesn\'t display it.',
     748                                                'Your theme has %d widget areas, but this particular page doesn\'t display them.'
     749                                        ),
     750                                        array( 'singular', 'plural' )
     751                                ),
    736752                                'reorderModeOn'    => __( 'Reorder mode enabled' ),
    737753                                'reorderModeOff'   => __( 'Reorder mode closed' ),
    738754                                'reorderLabelOn'   => esc_attr__( 'Reorder widgets' ),
     755                                /* translators: placeholder is the count for the number of widgets found */
    739756                                'widgetsFound'     => __( 'Number of widgets found: %d' ),
    740757                                'noWidgetsFound'   => __( 'No widgets found.' ),
    741758                        ),