Ticket #29022: 29022.6.diff
File 29022.6.diff, 6.0 KB (added by , 9 years ago) |
---|
-
src/wp-admin/includes/class-wp-upgrader-skins.php
111 111 return; 112 112 } 113 113 114 switch ( $type ) { 115 case 'plugin': 116 case 'theme': 117 $transient = get_site_transient( "update_{$type}s" ); 118 if ( empty( $transient->updated ) ) { 119 $transient->updated = 1; 120 } else { 121 $transient->updated++; 122 } 123 set_site_transient( "update_{$type}s", $transient ); 124 125 break; 126 case 'wordpress': 127 delete_site_transient( 'update_core' ); 128 129 break; 130 case 'translation': 131 if ( false === wp_cache_get( 'translations_updated', 'updates' ) ) { 132 wp_cache_set( 'translations_updated', 1, 'updates' ); 133 } else { 134 wp_cache_incr( 'translations_updated', 1, 'updates' ); 135 } 136 137 break; 138 } 139 140 $update_data = wp_get_update_data(); 141 114 142 if ( defined( 'IFRAME_REQUEST' ) ) { 115 143 echo '<script type="text/javascript"> 116 144 if ( window.postMessage && JSON ) { 117 window.parent.postMessage( JSON.stringify( { action: "decrementUpdateCount", upgradeType: "' . $type . '" } ), window.location.protocol + "//" + window.location.hostname );145 window.parent.postMessage( JSON.stringify( { action: "decrementUpdateCount", upgradeType: "' . $type . '", upgradeTitle: "' . $update_data['title'] . '" } ), window.location.protocol + "//" + window.location.hostname ); 118 146 } 119 147 </script>'; 120 148 } else { 121 149 echo '<script type="text/javascript"> 122 150 (function( wp ) { 123 151 if ( wp && wp.updates.decrementCount ) { 124 wp.updates.decrementCount( "' . $type . '" );152 wp.updates.decrementCount( "' . $type . '", "' . $update_data['title'] . '" ); 125 153 } 126 154 })( window.wp ); 127 155 </script>'; -
src/wp-admin/js/updates.js
8 8 * Decrement update counts throughout the various menus 9 9 * 10 10 * @param {string} updateType 11 * @param {string} title 11 12 */ 12 wp.updates.decrementCount = function( upgradeType ) {13 wp.updates.decrementCount = function( upgradeType, title ) { 13 14 var count, pluginCount, $elem; 14 15 15 16 $elem = $( '#wp-admin-bar-updates .ab-label' ); … … 18 19 if ( count < 0 ) { 19 20 return; 20 21 } 21 $( '#wp-admin-bar-updates .ab-item' ).removeAttr( 'title' );22 22 $elem.text( count ); 23 23 24 $( '#wp-admin-bar-updates .ab-item' ).attr( 'title', title ); 25 $( '#wp-admin-bar-updates .screen-reader-text' ).text( title ); 26 24 27 $elem = $( 'a[href="update-core.php"] .update-plugins' ); 25 28 $elem.each( function( index, elem ) { 26 29 elem.className = elem.className.replace( /count-\d+/, 'count-' + count ); … … 58 61 return; 59 62 } 60 63 61 wp.updates.decrementCount( message.upgradeType );64 wp.updates.decrementCount( message.upgradeType, message.upgradeTitle ); 62 65 63 66 } ); 64 67 -
src/wp-includes/load.php
452 452 453 453 if ( function_exists( 'wp_cache_add_global_groups' ) ) { 454 454 wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts', 'blog-id-cache' ) ); 455 wp_cache_add_non_persistent_groups( array( 'comment', 'counts', 'plugins' ) );455 wp_cache_add_non_persistent_groups( array( 'comment', 'counts', 'plugins', 'updates' ) ); 456 456 } 457 457 } 458 458 -
src/wp-includes/update.php
522 522 523 523 if ( $plugins = current_user_can( 'update_plugins' ) ) { 524 524 $update_plugins = get_site_transient( 'update_plugins' ); 525 if ( ! empty( $update_plugins->response ) ) 525 if ( ! empty( $update_plugins->response ) ) { 526 526 $counts['plugins'] = count( $update_plugins->response ); 527 if ( ! empty( $update_plugins->updated ) ) { 528 $counts['plugins'] -= $update_plugins->updated; 529 } 530 } 527 531 } 528 532 529 533 if ( $themes = current_user_can( 'update_themes' ) ) { 530 534 $update_themes = get_site_transient( 'update_themes' ); 531 if ( ! empty( $update_themes->response ) ) 535 if ( ! empty( $update_themes->response ) ) { 532 536 $counts['themes'] = count( $update_themes->response ); 537 if ( ! empty( $update_themes->updated ) ) { 538 $counts['themes'] -= $update_themes->updated; 539 } 540 } 533 541 } 534 542 535 543 if ( ( $core = current_user_can( 'update_core' ) ) && function_exists( 'get_core_updates' ) ) { … … 538 546 $counts['wordpress'] = 1; 539 547 } 540 548 541 if ( ( $core || $plugins || $themes ) && wp_get_translation_updates() ) 542 $counts['translations'] = 1; 549 if ( ( $core || $plugins || $themes ) && $translations = wp_get_translation_updates() ) { 550 $counts['translations'] = count( $translations ); 551 $translations_updated = wp_cache_get( 'translations_updated', 'updates' ); 552 if ( $translations_updated > 0 ) { 553 $counts['translations'] -= $translations_updated; 554 } 555 } 543 556 544 557 $counts['total'] = $counts['plugins'] + $counts['themes'] + $counts['wordpress'] + $counts['translations']; 545 558 $titles = array(); 546 if ( $counts['wordpress'] )559 if ( $counts['wordpress'] > 0 ) 547 560 $titles['wordpress'] = sprintf( __( '%d WordPress Update'), $counts['wordpress'] ); 548 if ( $counts['plugins'] )561 if ( $counts['plugins'] > 0 ) 549 562 $titles['plugins'] = sprintf( _n( '%d Plugin Update', '%d Plugin Updates', $counts['plugins'] ), $counts['plugins'] ); 550 if ( $counts['themes'] )563 if ( $counts['themes'] > 0 ) 551 564 $titles['themes'] = sprintf( _n( '%d Theme Update', '%d Theme Updates', $counts['themes'] ), $counts['themes'] ); 552 if ( $counts['translations'] )565 if ( $counts['translations'] > 0 ) 553 566 $titles['translations'] = __( 'Translation Updates' ); 554 567 555 568 $update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : '';