Make WordPress Core

Changeset 42046


Ignore:
Timestamp:
10/31/2017 01:32:15 AM (9 years ago)
Author:
obenland
Message:

Customize: Spiff up theme updates

Fixes UI bugs around theme updates in the Customizer. Theme versions now get updated and users are no longer left alone after a successful update.

Props rinkuyadav999, celloexpressions for initial patch.
Fixes #42365.

Location:
trunk/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/css/customize-controls.css

    r42036 r42046  
    20312031}
    20322032
    2033 .themes-section-installed_themes .theme .notice-success {
     2033.themes-section-installed_themes .theme .notice-success:not(.updated-message) {
    20342034        display: none; /* Hide "installed" notice on installed themes tab. */
    20352035}
  • trunk/src/wp-admin/js/customize-controls.js

    r42042 r42046  
    33483348                                        if ( 'theme' === control.params.type && control.params.theme.id === response.slug ) {
    33493349                                                control.params.theme.hasUpdate = false;
    3350                                                 control.rerenderAsInstalled( true );
     3350                                                control.params.theme.version = response.newVersion;
     3351                                                setTimeout( function() {
     3352                                                        control.rerenderAsInstalled( true );
     3353                                                }, 2000 );
    33513354                                        }
    33523355                                });
  • trunk/src/wp-admin/js/updates.js

    r42018 r42046  
    938938
    939939                        // Update the theme details UI.
    940                         $notice = $( '#update-theme' ).closest( '.notice' ).removeClass( 'notice-large' );
     940                        $notice = $( '[data-slug="' + args.slug + '"].notice' ).removeClass( 'notice-large' );
    941941
    942942                        $notice.find( 'h3' ).remove();
    943943
    944944                        // Add the top-level UI, and update both.
    945                         $notice = $notice.add( $( '#customize-control-theme-installed_' + args.slug ).find( '.update-message' ) );
     945                        $notice = $notice.add( $( '#customize-control-installed_theme_' + args.slug ).find( '.update-message' ) );
    946946                        $notice = $notice.addClass( 'updating-message' ).find( 'p' );
    947947
    … …  
    989989
    990990                if ( 'customize' === pagenow ) {
    991                         $theme = wp.customize.control( 'installed_theme_' + response.slug ).container;
    992                 }
    993 
    994                 if ( 'themes-network' === pagenow ) {
     991                        $theme = $( '.updating-message' ).siblings( '.theme-name' );
     992
     993                        if ( $theme.length ) {
     994
     995                                // Update the version number in the row.
     996                                newText = $theme.html().replace( response.oldVersion, response.newVersion );
     997                                $theme.html( newText );
     998                        }
     999
     1000                        $notice = $( '.theme-info .notice' ).add( wp.customize.control( 'installed_theme_' + response.slug ).container.find( '.theme' ).find( '.update-message' ) );
     1001                } else if ( 'themes-network' === pagenow ) {
    9951002                        $notice = $theme.find( '.update-message' );
    9961003
    … …  
    10171024
    10181025                // Show updated message after modal re-rendered.
    1019                 if ( isModalOpen ) {
     1026                if ( isModalOpen && 'customize' !== pagenow ) {
    10201027                        $( '.theme-info .theme-author' ).after( wp.updates.adminNotice( updatedMessage ) );
    10211028                }
    … …  
    10471054
    10481055                if ( 'customize' === pagenow ) {
    1049                         $theme = wp.customize.control( 'installed_theme_' + response.slug ).container;
     1056                        $theme = wp.customize.control( 'installed_theme_' + response.slug ).container.find( '.theme' );
    10501057                }
    10511058
  • trunk/src/wp-includes/class-wp-customize-manager.php

    r42039 r42046  
    42774277                if ( ! is_multisite() && ( current_user_can( 'install_themes' ) || current_user_can( 'update_themes' ) || current_user_can( 'delete_themes' ) ) ) {
    42784278                        wp_enqueue_script( 'updates' );
     4279                        wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
     4280                                'totals' => wp_get_update_data(),
     4281                        ) );
    42794282                }
    42804283        }
Note: See TracChangeset for help on using the changeset viewer.