WordPress.org

Make WordPress Core

Ticket #32941: 32941.2.patch

File 32941.2.patch, 1.7 KB (added by chandrapatel, 4 years ago)

I have set flag if any settings changed during the save request. Then I check flag is set or not after saving request completed. If flag set then keep save button enable otherwise in disable mode.

  • src/wp-admin/js/customize-controls.js

     
    33383338                                        } );
    33393339                                        request = wp.ajax.post( 'customize_save', query );
    33403340
     3341                                        //Disable save button during the save request.
     3342                                        saveBtn.prop( 'disabled', true );
     3343
     3344                                        //Set to false because changes are saving.
     3345                                        api.is_dirty = false;
     3346
    33413347                                        api.trigger( 'save', request );
    33423348
    33433349                                        request.always( function () {
     
    33623368                                                        } );
    33633369                                                }
    33643370                                                api.trigger( 'error', response );
     3371
     3372                                                saveBtn.prop( 'disabled', false );
    33653373                                        } );
    33663374
    33673375                                        request.done( function( response ) {
    3368                                                 // Clear setting dirty states
    3369                                                 api.each( function ( value ) {
    3370                                                         value._dirty = false;
    3371                                                 } );
     3376                                                //If any setting changed during the save request then keep enable save button.
     3377                                                if( api.is_dirty ) {
     3378                                                        api.state('saved').set( false );
     3379                                                        saveBtn.prop( 'disabled', false );
     3380                                                } else {
     3381                                                        // Clear setting dirty states
     3382                                                        api.each( function ( value ) {
     3383                                                                value._dirty = false;
     3384                                                        } );
    33723385
    3373                                                 api.previewer.send( 'saved', response );
     3386                                                        api.previewer.send( 'saved', response );
    33743387
    3375                                                 api.trigger( 'saved', response );
     3388                                                        api.trigger( 'saved', response );
     3389                                                }
    33763390                                        } );
    33773391                                };
    33783392
     
    35803594                        activated( api.settings.theme.active );
    35813595                        processing( 0 );
    35823596
     3597                        //To check whether any setting changed during the save request.
     3598                        api.is_dirty = false;
     3599
    35833600                        api.bind( 'change', function() {
    35843601                                state('saved').set( false );
     3602                                api.is_dirty = true;
    35853603                        });
    35863604
    35873605                        api.bind( 'saved', function() {