Make WordPress Core

Changeset 41947


Ignore:
Timestamp:
10/19/2017 05:41:05 PM (8 years ago)
Author:
westonruter
Message:

Customize: Prevent drawing attention to save button if status unchanged from publish; account for changes to status/date when alerting about unsaved changes.

Also fix malformed ESLint directive from [41933].

Amends [41932].
See #39896, #42211.

Location:
trunk/src/wp-admin/js
Files:
2 edited

Legend:

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

    r41936 r41947  
    69876987
    69886988            section.expanded.bind( function( isExpanded ) {
     6989                var defaultChangesetStatus;
    69896990                publishSettingsBtn.attr( 'aria-expanded', String( isExpanded ) );
    69906991                publishSettingsBtn.toggleClass( 'active', isExpanded );
     
    69926993                if ( isExpanded ) {
    69936994                    cancelHighlightScheduleButton();
    6994                 } else if ( api.state( 'selectedChangesetStatus' ).get() !== api.state( 'changesetStatus' ).get() ) {
     6995                    return;
     6996                }
     6997
     6998                defaultChangesetStatus = api.state( 'changesetStatus' ).get();
     6999                if ( '' === defaultChangesetStatus || 'auto-draft' === defaultChangesetStatus ) {
     7000                    defaultChangesetStatus = 'publish';
     7001                }
     7002
     7003                if ( api.state( 'selectedChangesetStatus' ).get() !== defaultChangesetStatus ) {
    69957004                    highlightScheduleButton();
    69967005                } else if ( 'future' === api.state( 'selectedChangesetStatus' ).get() && api.state( 'selectedChangesetDate' ).get() !== api.state( 'changesetDate' ).get() ) {
     
    84808489
    84818490            function isCleanState() {
     8491                var defaultChangesetStatus;
    84828492
    84838493                /*
     
    84898499                }
    84908500
     8501                // Dirty if the changeset status has been changed but not saved yet.
     8502                defaultChangesetStatus = api.state( 'changesetStatus' ).get();
     8503                if ( '' === defaultChangesetStatus || 'auto-draft' === defaultChangesetStatus ) {
     8504                    defaultChangesetStatus = 'publish';
     8505                }
     8506                if ( api.state( 'selectedChangesetStatus' ).get() !== defaultChangesetStatus ) {
     8507                    return false;
     8508                }
     8509
     8510                // Dirty if scheduled but the changeset date hasn't been saved yet.
     8511                if ( 'future' === api.state( 'selectedChangesetStatus' ).get() && api.state( 'selectedChangesetDate' ).get() !== api.state( 'changesetDate' ).get() ) {
     8512                    return false;
     8513                }
     8514
    84918515                return api.state( 'saved' ).get() && 'auto-draft' !== api.state( 'changesetStatus' ).get();
    84928516            }
     
    85028526            function startPromptingBeforeUnload() {
    85038527                api.unbind( 'change', startPromptingBeforeUnload );
     8528                api.state( 'selectedChangesetStatus' ).unbind( startPromptingBeforeUnload );
     8529                api.state( 'selectedChangesetDate' ).unbind( startPromptingBeforeUnload );
    85048530
    85058531                // Prompt user with AYS dialog if leaving the Customizer with unsaved changes
     
    85148540            }
    85158541            api.bind( 'change', startPromptingBeforeUnload );
     8542            api.state( 'selectedChangesetStatus' ).bind( startPromptingBeforeUnload );
     8543            api.state( 'selectedChangesetDate' ).bind( startPromptingBeforeUnload );
    85168544
    85178545            function requestClose() {
  • trunk/src/wp-admin/js/widgets/media-widgets.js

    r41933 r41947  
    9494         */
    9595        initialize: function( options ) {
    96             var view = this, embedController; // eslint-disable-line consistent-thi
     96            var view = this, embedController; // eslint-disable-line consistent-this
    9797            wp.media.view.Embed.prototype.initialize.call( view, options );
    9898            if ( 'image' !== view.controller.options.mimeType ) {
Note: See TracChangeset for help on using the changeset viewer.