Make WordPress Core

Ticket #29022: 29022.2.diff

File 29022.2.diff, 5.7 KB (added by adamsilverstein, 9 years ago)

update counts after upgrades

  • src/wp-admin/js/updates.js

     
    1010         * @param {string} updateType
    1111         */
    1212        wp.updates.decrementCount = function( upgradeType ) {
    13                 var count, pluginCount, $elem;
     13                var count, pluginCount, $elem, title = '', localizedUpgradeCount;
    1414
    1515                $elem = $( '#wp-admin-bar-updates .ab-label' );
    1616                count = $elem.text();
     
    1818                if ( count < 0 ) {
    1919                        return;
    2020                }
    21                 $( '#wp-admin-bar-updates .ab-item' ).removeAttr( 'title' );
    2221                $elem.text( count );
    2322
    2423                $elem = $( 'a[href="update-core.php"] .update-plugins' );
     
    2524                $elem.each( function( index, elem ) {
    2625                        elem.className = elem.className.replace( /count-\d+/, 'count-' + count );
    2726                } );
    28                 $elem.removeAttr( 'title' );
    2927                $elem.find( '.update-count' ).text( count );
    3028
    3129                if ( 'plugin' === upgradeType ) {
     
    3230                        $elem = $( '#menu-plugins' );
    3331                        pluginCount = $elem.find( '.plugin-count' ).eq(0).text();
    3432                        pluginCount = parseInt( pluginCount, 10 ) - 1;
    35                         if ( pluginCount < 0 ) {
    36                                 return;
     33                        if ( pluginCount >= 0 ) {
     34                                $elem.find( '.plugin-count' ).text( pluginCount );
     35                                $elem.find( '.update-plugins' ).each( function( index, elem ) {
     36                                        elem.className = elem.className.replace( /count-\d+/, 'count-' + pluginCount );
     37                                } );
    3738                        }
    38                         $elem.find( '.plugin-count' ).text( pluginCount );
    39                         $elem.find( '.update-plugins' ).each( function( index, elem ) {
    40                                 elem.className = elem.className.replace( /count-\d+/, 'count-' + pluginCount );
    41                         } );
    4239                }
     40                reduceCount = function( count ) {
     41                        return ( 0 === count ? count : count - 1 );
     42                }
     43
     44                // Contruct the new title
     45                // Plugins first
     46                count = parseInt( updatesL10n.pluginCount, 10 );
     47                if ( 'plugin' === upgradeType ) {
     48                        count = reduceCount( count );
     49                        updatesL10n.pluginCount = count;
     50                }
     51
     52                if ( 0 !== count ) {
     53                        localizedUpgradeCount = ( count == 1 ? updatesL10n.plugin : updatesL10n.plugins ).replace( '%d', count );
     54                        title += localizedUpgradeCount;
     55                }
     56
     57                count = parseInt( updatesL10n.themeCount, 10 );
     58                if ( 'theme' === upgradeType ) {
     59                        count = reduceCount( count );
     60                        updatesL10n.themeCount = count;
     61                }
     62
     63                if ( 0 !== count ) {
     64                        localizedUpgradeCount = ( count == 1 ? updatesL10n.theme : updatesL10n.themes ).replace( '%d', count );
     65                        title += '' === title ? '' : ', ' + localizedUpgradeCount;
     66                }
     67
     68                count = parseInt( updatesL10n.wordpressCount, 10 );
     69                if ( 'wordpress' === upgradeType ) {
     70                        count = reduceCount( count );
     71                        updatesL10n.wordpressCount = count;
     72                }
     73
     74                if ( 0 !== count ) {
     75                        title += ( '' === title ? '' : ', ' ) +  updatesL10n.wordpress;
     76                }
     77
     78                count = parseInt( updatesL10n.translationCount, 10 );
     79                if ( 'translation' === upgradeType ) {
     80                        count = reduceCount( count );
     81                        updatesL10n.translationCount = count;
     82                }
     83
     84                if ( 0 !== count ) {
     85                        localizedUpgradeCount = ( count == 1 ? updatesL10n.translation : updatesL10n.translations ).replace( '%d', count );
     86                        title += ( '' === title ? '' : ', ' ) + localizedUpgradeCount;
     87                }
     88
     89                $( '#wp-admin-bar-updates .ab-item' ).attr( 'title', title );
     90                $( '#wp-admin-bar-updates .screen-reader-text' ).text( title );
     91
    4392        };
    4493
    4594        $( window ).on( 'message', function( e ) {
  • src/wp-includes/script-loader.php

     
    496496
    497497                $scripts->add( 'updates', "/wp-admin/js/updates$suffix.js", array( 'jquery' ) );
    498498
     499                $update_data = wp_get_update_data();
     500
     501                did_action( 'init' ) && $scripts->localize( 'updates', 'updatesL10n', array(
     502                        'plugin'           => __( '%d Plugin Update' ),
     503                        'plugins'          => __( '%d Plugin Updates' ),
     504                        'theme'            => __( '%d Theme Update' ),
     505                        'themes'           => __( '%d Theme Updates' ),
     506                        'translation'      => __( '%d Translation Update' ),
     507                        'translations'     => __( '%d Translations Updates' ),
     508                        'wordpress'        => __( 'WordPress Update' ),
     509                        'pluginCount'      => $update_data['counts']['plugins'],
     510                        'translationCount' => $update_data['counts']['translations'],
     511                        'themeCount'       => $update_data['counts']['themes'],
     512                        'wordpressCount'   => $update_data['counts']['wordpress']
     513                        ) ) ;
     514
    499515                $scripts->add( 'farbtastic', '/wp-admin/js/farbtastic.js', array('jquery'), '1.2' );
    500516
    501517                $scripts->add( 'iris', '/wp-admin/js/iris.min.js', array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), false, 1 );
     
    510526                $scripts->add( 'dashboard', "/wp-admin/js/dashboard$suffix.js", array( 'jquery', 'admin-comments', 'postbox' ), false, 1 );
    511527
    512528                $scripts->add( 'list-revisions', "/wp-includes/js/wp-list-revisions$suffix.js" );
    513                
     529
    514530                $scripts->add( 'media-grid', "/wp-includes/js/media-grid$suffix.js", array( 'media-editor' ), false, 1 );
    515531                $scripts->add( 'media', "/wp-admin/js/media$suffix.js", array( 'jquery' ), false, 1 );
    516532                did_action( 'init' ) && $scripts->localize( 'media', 'attachMediaBoxL10n', array(
  • src/wp-includes/update.php

     
    550550        if ( $counts['themes'] )
    551551                $titles['themes'] = sprintf( _n( '%d Theme Update', '%d Theme Updates', $counts['themes'] ), $counts['themes'] );
    552552        if ( $counts['translations'] )
    553                 $titles['translations'] = __( 'Translation Updates' );
     553                $titles['translations'] = sprintf( _n( '%d Translation Update', '%d Translation Updates', $counts['translations'] ), $counts['translations'] );
    554554
    555555        $update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : '';
    556556