WordPress.org

Make WordPress Core

Ticket #32941: 32941.1.patch

File 32941.1.patch, 7.7 KB (added by chandrapatel, 4 years ago)

I have added <fieldset></fieldset> element as child of form and then applied disabled attribute to this element which disabled all controls.

  • src/wp-admin/customize.php

     
    112112<body class="<?php echo esc_attr( $body_class ); ?>">
    113113<div class="wp-full-overlay expanded">
    114114        <form id="customize-controls" class="wrap wp-full-overlay-sidebar">
    115                 <div id="customize-header-actions" class="wp-full-overlay-header">
    116                         <?php
    117                         $save_text = $wp_customize->is_theme_active() ? __( 'Save &amp; Publish' ) : __( 'Save &amp; Activate' );
    118                         submit_button( $save_text, 'primary save', 'save', false );
    119                         ?>
    120                         <span class="spinner"></span>
    121                         <button type="button" class="customize-controls-preview-toggle">
    122                                 <span class="controls"><?php _e( 'Customize' ); ?></span>
    123                                 <span class="preview"><?php _e( 'Preview' ); ?></span>
    124                         </button>
    125                         <a class="customize-controls-close" href="<?php echo esc_url( $wp_customize->get_return_url() ); ?>">
    126                                 <span class="screen-reader-text"><?php _e( 'Close the Customizer and go back to the previous page' ); ?></span>
    127                         </a>
    128                 </div>
     115                <fieldset>
     116                        <div id="customize-header-actions" class="wp-full-overlay-header">
     117                                <?php
     118                                $save_text = $wp_customize->is_theme_active() ? __( 'Save &amp; Publish' ) : __( 'Save &amp; Activate' );
     119                                submit_button( $save_text, 'primary save', 'save', false );
     120                                ?>
     121                                <span class="spinner"></span>
     122                                <button type="button" class="customize-controls-preview-toggle">
     123                                        <span class="controls"><?php _e( 'Customize' ); ?></span>
     124                                        <span class="preview"><?php _e( 'Preview' ); ?></span>
     125                                </button>
     126                                <a class="customize-controls-close" href="<?php echo esc_url( $wp_customize->get_return_url() ); ?>">
     127                                        <span class="screen-reader-text"><?php _e( 'Close the Customizer and go back to the previous page' ); ?></span>
     128                                </a>
     129                        </div>
    129130
    130                 <div id="widgets-right" class="wp-clearfix"><!-- For Widget Customizer, many widgets try to look for instances under div#widgets-right, so we have to add that ID to a container div in the Customizer for compat -->
    131                 <div class="wp-full-overlay-sidebar-content" tabindex="-1">
    132                         <div id="customize-info" class="accordion-section customize-info">
    133                                 <div class="accordion-section-title">
    134                                         <span class="preview-notice"><?php
    135                                                 echo sprintf( __( 'You are customizing %s' ), '<strong class="panel-title site-title">' . get_bloginfo( 'name' ) . '</strong>' );
    136                                         ?></span>
    137                                         <button type="button" class="customize-help-toggle dashicons dashicons-editor-help" aria-expanded="false"><span class="screen-reader-text"><?php _e( 'Help' ); ?></span></button>
     131                        <div id="widgets-right" class="wp-clearfix"><!-- For Widget Customizer, many widgets try to look for instances under div#widgets-right, so we have to add that ID to a container div in the Customizer for compat -->
     132                        <div class="wp-full-overlay-sidebar-content" tabindex="-1">
     133                                <div id="customize-info" class="accordion-section customize-info">
     134                                        <div class="accordion-section-title">
     135                                                <span class="preview-notice"><?php
     136                                                        echo sprintf( __( 'You are customizing %s' ), '<strong class="panel-title site-title">' . get_bloginfo( 'name' ) . '</strong>' );
     137                                                ?></span>
     138                                                <button type="button" class="customize-help-toggle dashicons dashicons-editor-help" aria-expanded="false"><span class="screen-reader-text"><?php _e( 'Help' ); ?></span></button>
     139                                        </div>
     140                                        <div class="customize-panel-description"><?php
     141                                                _e( 'The Customizer allows you to preview changes to your site before publishing them. You can also navigate to different pages on your site to preview them.' );
     142                                        ?></div>
    138143                                </div>
    139                                 <div class="customize-panel-description"><?php
    140                                         _e( 'The Customizer allows you to preview changes to your site before publishing them. You can also navigate to different pages on your site to preview them.' );
    141                                 ?></div>
    142                         </div>
    143144
    144                         <div id="customize-theme-controls">
    145                                 <ul><?php // Panels and sections are managed here via JavaScript ?></ul>
     145                                <div id="customize-theme-controls">
     146                                        <ul><?php // Panels and sections are managed here via JavaScript ?></ul>
     147                                </div>
    146148                        </div>
    147                 </div>
    148                 </div>
     149                        </div>
    149150
    150                 <div id="customize-footer-actions" class="wp-full-overlay-footer">
    151                         <?php $previewable_devices = $wp_customize->get_previewable_devices(); ?>
    152                         <?php if ( ! empty( $previewable_devices ) ) : ?>
    153                         <div class="devices">
    154                                 <?php foreach ( (array) $previewable_devices as $device => $settings ) : ?>
    155                                         <?php
    156                                         if ( empty( $settings['label'] ) ) {
    157                                                 continue;
    158                                         }
    159                                         $active = ! empty( $settings['default'] );
    160                                         $class = 'preview-' . $device;
    161                                         if ( $active ) {
    162                                                 $class .= ' active';
    163                                         }
    164                                         ?>
    165                                         <button type="button" class="<?php echo esc_attr( $class ); ?>" aria-pressed="<?php echo esc_attr( $active ) ?>" data-device="<?php echo esc_attr( $device ); ?>">
    166                                                 <span class="screen-reader-text"><?php echo esc_html( $settings['label'] ); ?></span>
    167                                         </button>
    168                                 <?php endforeach; ?>
     151                        <div id="customize-footer-actions" class="wp-full-overlay-footer">
     152                                <?php $previewable_devices = $wp_customize->get_previewable_devices(); ?>
     153                                <?php if ( ! empty( $previewable_devices ) ) : ?>
     154                                <div class="devices">
     155                                        <?php foreach ( (array) $previewable_devices as $device => $settings ) : ?>
     156                                                <?php
     157                                                if ( empty( $settings['label'] ) ) {
     158                                                        continue;
     159                                                }
     160                                                $active = ! empty( $settings['default'] );
     161                                                $class = 'preview-' . $device;
     162                                                if ( $active ) {
     163                                                        $class .= ' active';
     164                                                }
     165                                                ?>
     166                                                <button type="button" class="<?php echo esc_attr( $class ); ?>" aria-pressed="<?php echo esc_attr( $active ) ?>" data-device="<?php echo esc_attr( $device ); ?>">
     167                                                        <span class="screen-reader-text"><?php echo esc_html( $settings['label'] ); ?></span>
     168                                                </button>
     169                                        <?php endforeach; ?>
     170                                </div>
     171                                <?php endif; ?>
     172                                <button type="button" class="collapse-sidebar button-secondary" aria-expanded="true" aria-label="<?php esc_attr_e( 'Collapse Sidebar' ); ?>">
     173                                        <span class="collapse-sidebar-arrow"></span>
     174                                        <span class="collapse-sidebar-label"><?php _e( 'Collapse' ); ?></span>
     175                                </button>
    169176                        </div>
    170                         <?php endif; ?>
    171                         <button type="button" class="collapse-sidebar button-secondary" aria-expanded="true" aria-label="<?php esc_attr_e( 'Collapse Sidebar' ); ?>">
    172                                 <span class="collapse-sidebar-arrow"></span>
    173                                 <span class="collapse-sidebar-label"><?php _e( 'Collapse' ); ?></span>
    174                         </button>
    175                 </div>
     177                </fieldset>
    176178        </form>
    177179        <div id="customize-preview" class="wp-full-overlay-main"></div>
    178180        <?php
  • src/wp-admin/js/customize-controls.js

     
    33383338                                        } );
    33393339                                        request = wp.ajax.post( 'customize_save', query );
    33403340
     3341                                        //Add disbaled state to fieldset element.
     3342                                        $( "#customize-controls > fieldset" ).prop( 'disabled', true );
     3343
    33413344                                        api.trigger( 'save', request );
    33423345
    33433346                                        request.always( function () {
     
    33623365                                                        } );
    33633366                                                }
    33643367                                                api.trigger( 'error', response );
     3368
     3369                                                //Remove disbaled state from fieldset element.
     3370                                                if( $( "#customize-controls > fieldset" ).prop( 'disabled' ) ) {
     3371                                                        $( "#customize-controls > fieldset" ).prop( 'disabled', false );
     3372                                                }
    33653373                                        } );
    33663374
    33673375                                        request.done( function( response ) {
     
    33733381                                                api.previewer.send( 'saved', response );
    33743382
    33753383                                                api.trigger( 'saved', response );
     3384
     3385                                                //Remove disbaled state from fieldset element.
     3386                                                if( $( "#customize-controls > fieldset" ).prop( 'disabled' ) ) {
     3387                                                        $( "#customize-controls > fieldset" ).prop( 'disabled', false );
     3388                                                }
    33763389                                        } );
    33773390                                };
    33783391