Make WordPress Core

Ticket #29022: 29022.8.diff

File 29022.8.diff, 8.9 KB (added by afercia, 6 years ago)
  • src/js/_enqueues/wp/updates.js

     
    279279                        $appearanceNavMenuUpdateCount = $( 'a[href="themes.php"] .update-plugins' ),
    280280                        itemCount;
    281281
    282                 $adminBarUpdates.find( '.ab-item' ).removeAttr( 'title' );
     282                $adminBarUpdates.find( '.ab-item' ).attr( 'title', settings.totals.title );
    283283                $adminBarUpdates.find( '.ab-label' ).text( settings.totals.counts.total );
     284                $adminBarUpdates.find( '.updates-total-text' ).text( settings.totals.title );
    284285
    285286                // Remove the update count from the toolbar if it's zero.
    286287                if ( 0 === settings.totals.counts.total ) {
     
    293294                } );
    294295                if ( settings.totals.counts.total > 0 ) {
    295296                        $dashboardNavMenuUpdateCount.find( '.update-count' ).text( settings.totals.counts.total );
     297                        $dashboardNavMenuUpdateCount.find( '.updates-total-text' ).text( settings.totals.title );
    296298                } else {
    297299                        $dashboardNavMenuUpdateCount.remove();
    298300                }
     
    303305                } );
    304306                if ( settings.totals.counts.total > 0 ) {
    305307                        $pluginsNavMenuUpdateCount.find( '.plugin-count' ).text( settings.totals.counts.plugins );
     308                        $pluginsNavMenuUpdateCount.find( '.updates-plugins-text' ).text( settings.totals.titles.plugins );
    306309                } else {
    307310                        $pluginsNavMenuUpdateCount.remove();
    308311                }
     
    340343         *
    341344         * @since 3.9.0
    342345         *
    343          * @param {string} type The type of item that was updated or deleted.
    344          *                      Can be 'plugin', 'theme'.
     346         * @param {string} type       The type of item that was updated or deleted.
     347         *                            Can be 'plugin', 'theme'.
     348         * @param {object} updateData The available updates counts and UI strings.
    345349         */
    346         wp.updates.decrementCount = function( type ) {
     350        wp.updates.decrementCount = function( type, updateData ) {
    347351                settings.totals.counts.total = Math.max( --settings.totals.counts.total, 0 );
     352                settings.totals.title        = updateData.title;
    348353
    349354                if ( 'plugin' === type ) {
    350355                        settings.totals.counts.plugins = Math.max( --settings.totals.counts.plugins, 0 );
     356                        settings.totals.titles.plugins = updateData.titles.plugins;
    351357                } else if ( 'theme' === type ) {
    352358                        settings.totals.counts.themes = Math.max( --settings.totals.counts.themes, 0 );
    353359                }
    354360
    355                 wp.updates.refreshCount( type );
     361                wp.updates.refreshCount();
    356362        };
    357363
    358364        /**
     
    442448
    443449                wp.a11y.speak( wp.updates.l10n.updatedMsg, 'polite' );
    444450
    445                 wp.updates.decrementCount( 'plugin' );
     451                wp.updates.decrementCount( 'plugin', response.updateData );
    446452
    447453                $document.trigger( 'wp-plugin-update-success', response );
    448454        };
     
    802808                        // Remove plugin from update count.
    803809                        if ( -1 !== _.indexOf( plugins.upgrade, response.plugin ) ) {
    804810                                plugins.upgrade = _.without( plugins.upgrade, response.plugin );
    805                                 wp.updates.decrementCount( 'plugin' );
     811                                wp.updates.decrementCount( 'plugin', response.updateData );
    806812                        }
    807813
    808814                        // Remove from views.
     
    10151021                wp.updates.addAdminNotice( _.extend( { selector: $notice }, updatedMessage ) );
    10161022                wp.a11y.speak( wp.updates.l10n.updatedMsg, 'polite' );
    10171023
    1018                 wp.updates.decrementCount( 'theme' );
     1024                wp.updates.decrementCount( 'theme', response.updateData );
    10191025
    10201026                $document.trigger( 'wp-theme-update-success', response );
    10211027
     
    12921298                                // Remove theme from update count.
    12931299                                if ( $themeRow.hasClass( 'update' ) ) {
    12941300                                        totals.upgrade--;
    1295                                         wp.updates.decrementCount( 'theme' );
     1301                                        wp.updates.decrementCount( 'theme', response.updateData );
    12961302                                }
    12971303
    12981304                                // Remove from views.
     
    24362442
    24372443                                // Called from `wp-admin/includes/class-wp-upgrader-skins.php`.
    24382444                                case 'decrementUpdateCount':
    2439                                         /** @property {string} message.upgradeType */
    2440                                         wp.updates.decrementCount( message.upgradeType );
     2445                                        wp.updates.decrementCount( message.upgradeType, message.upgradeData );
    24412446                                        break;
    24422447
    24432448                                case 'install-plugin':
  • src/wp-admin/includes/ajax-actions.php

     
    39293929                        $status['newVersion'] = $theme->get( 'Version' );
    39303930                }
    39313931
     3932                // Add available updates counts and UI strings to the response.
     3933                $update_data          = wp_get_update_data();
     3934                $status['updateData'] = $update_data;
     3935
    39323936                wp_send_json_success( $status );
    39333937        } elseif ( false === $result ) {
    39343938                global $wp_filesystem;
     
    40184022                wp_send_json_error( $status );
    40194023        }
    40204024
     4025        // Add available updates counts and UI strings to the response.
     4026        $update_data          = wp_get_update_data();
     4027        $status['updateData'] = $update_data;
     4028
    40214029        wp_send_json_success( $status );
    40224030}
    40234031
     
    42174225                        /* translators: %s: Plugin version */
    42184226                        $status['newVersion'] = sprintf( __( 'Version %s' ), $plugin_data['Version'] );
    42194227                }
     4228
     4229                // Add available updates counts and UI strings to the response.
     4230                $update_data          = wp_get_update_data();
     4231                $status['updateData'] = $update_data;
     4232
    42204233                wp_send_json_success( $status );
    42214234        } elseif ( false === $result ) {
    42224235                global $wp_filesystem;
     
    43094322                wp_send_json_error( $status );
    43104323        }
    43114324
     4325        // Add available updates counts and UI strings to the response.
     4326        $update_data          = wp_get_update_data();
     4327        $status['updateData'] = $update_data;
     4328
    43124329        wp_send_json_success( $status );
    43134330}
    43144331
  • src/wp-admin/menu.php

     
    4343                $cap = 'update_languages';
    4444        }
    4545        /* translators: %s: number of pending updates */
    46         $submenu['index.php'][10] = array( sprintf( __( 'Updates %s' ), "<span class='update-plugins count-{$update_data['counts']['total']}'><span class='update-count'>" . number_format_i18n( $update_data['counts']['total'] ) . '</span></span>' ), $cap, 'update-core.php' );
     46        $updates_text = '';
     47        if ( isset( $update_data['title'] ) ) {
     48                $updates_text = '<span class="updates-total-text screen-reader-text">' . $update_data['title'] . '</span>';
     49        }
     50
     51        $submenu['index.php'][10] = array( sprintf( __( 'Updates %s' ), "<span class='update-plugins count-{$update_data['counts']['total']}'><span class='update-count' aria-hidden='true'>" . number_format_i18n( $update_data['counts']['total'] ) . '</span>' . $updates_text . '</span>' ), $cap, 'update-core.php' );
    4752        unset( $cap );
    4853}
    4954
     
    217222        if ( ! isset( $update_data ) ) {
    218223                $update_data = wp_get_update_data();
    219224        }
    220         $count = "<span class='update-plugins count-{$update_data['counts']['plugins']}'><span class='plugin-count'>" . number_format_i18n( $update_data['counts']['plugins'] ) . '</span></span>';
     225
     226        $updates_plugin_text = '';
     227        if ( isset( $update_data['titles']['plugins'] ) ) {
     228                $updates_plugin_text = '<span class="updates-plugins-text screen-reader-text">' . $update_data['titles']['plugins'] . '</span>';
     229        }
     230
     231        $count = "<span class='update-plugins count-{$update_data['counts']['plugins']}'><span class='plugin-count' aria-hidden='true'>" . number_format_i18n( $update_data['counts']['plugins'] ) . '</span>' . $updates_plugin_text . '</span>';
    221232}
    222233
    223234/* translators: %s: number of pending plugin updates */
  • src/wp-includes/admin-bar.php

     
    10011001                return;
    10021002        }
    10031003
    1004         $title  = '<span class="ab-icon"></span><span class="ab-label">' . number_format_i18n( $update_data['counts']['total'] ) . '</span>';
    1005         $title .= '<span class="screen-reader-text">' . $update_data['title'] . '</span>';
     1004        $title  = '<span class="ab-icon"></span><span class="ab-label" aria-hidden="true">' . number_format_i18n( $update_data['counts']['total'] ) . '</span>';
     1005        $title .= '<span class="updates-total-text screen-reader-text">' . $update_data['title'] . '</span>';
    10061006
    10071007        $wp_admin_bar->add_menu(
    10081008                array(
  • src/wp-includes/update.php

     
    692692        $update_data = array(
    693693                'counts' => $counts,
    694694                'title'  => $update_title,
     695                'titles' => $titles,
    695696        );
    696697        /**
    697698         * Filters the returned array of update data for plugins, themes, and WordPress core.
  • tests/phpunit/tests/ajax/DeletePlugin.php

     
    143143                // Get the response.
    144144                $response = json_decode( $this->_last_response, true );
    145145
     146                $update_data = wp_get_update_data();
     147
    146148                $expected = array(
    147149                        'success' => true,
    148150                        'data'    => array(
     
    150152                                'slug'       => 'foo',
    151153                                'plugin'     => 'foo.php',
    152154                                'pluginName' => '',
     155                                'updateData' => $update_data,
    153156                        ),
    154157                );
    155158