WordPress.org

Make WordPress Core

Ticket #32941: 32941.3.diff

File 32941.3.diff, 1.8 KB (added by westonruter, 4 years ago)
  • src/wp-admin/js/customize-controls.js

    diff --git src/wp-admin/js/customize-controls.js src/wp-admin/js/customize-controls.js
    index fad1087..b3d8fc4 100644
     
    33273327                                var self = this,
    33283328                                        processing = api.state( 'processing' ),
    33293329                                        submitWhenDoneProcessing,
    3330                                         submit;
     3330                                        submit,
     3331                                        modifiedWhileSaving = {};
    33313332
    33323333                                body.addClass( 'saving' );
    33333334
     3335                                function captureSettingModifiedDuringSave( setting ) {
     3336                                        modifiedWhileSaving[ setting.id ] = true;
     3337                                }
     3338                                api.bind( 'change', captureSettingModifiedDuringSave );
     3339
    33343340                                submit = function () {
    33353341                                        var request, query;
    33363342                                        query = $.extend( self.query(), {
     
    33383344                                        } );
    33393345                                        request = wp.ajax.post( 'customize_save', query );
    33403346
     3347                                        // Disable save button during the save request.
     3348                                        saveBtn.prop( 'disabled', true );
     3349
    33413350                                        api.trigger( 'save', request );
    33423351
    33433352                                        request.always( function () {
    33443353                                                body.removeClass( 'saving' );
     3354                                                saveBtn.prop( 'disabled', false );
     3355                                                api.unbind( 'change', captureSettingModifiedDuringSave );
    33453356                                        } );
    33463357
    33473358                                        request.fail( function ( response ) {
     
    33653376                                        } );
    33663377
    33673378                                        request.done( function( response ) {
    3368                                                 // Clear setting dirty states
    3369                                                 api.each( function ( value ) {
    3370                                                         value._dirty = false;
     3379
     3380                                                // Clear setting dirty states, if setting wasn't modified while saving.
     3381                                                api.each( function( setting ) {
     3382                                                        if ( ! modifiedWhileSaving[ setting.id ] ) {
     3383                                                                setting._dirty = false;
     3384                                                        }
    33713385                                                } );
    33723386
    33733387                                                api.previewer.send( 'saved', response );
    33743388
    33753389                                                api.trigger( 'saved', response );
     3390
     3391                                                // Restore the global dirty state if any settings were modified during save.
     3392                                                if ( ! _.isEmpty( modifiedWhileSaving ) ) {
     3393                                                        api.state( 'saved' ).set( false );
     3394                                                }
    33763395                                        } );
    33773396                                };
    33783397