WordPress.org

Make WordPress Core

Ticket #43364: 43364.diff

File 43364.diff, 1.8 KB (added by afercia, 10 months ago)
  • src/wp-admin/includes/options.php

     
    6161                        if ( "time_format_custom_radio" != $(this).attr("id") )
    6262                                $( 'input[name="time_format_custom"]' ).val( $( this ).val() ).closest( 'fieldset' ).find( '.example' ).text( $( this ).parent( 'label' ).children( '.format-i18n' ).text() );
    6363                });
     64
    6465                $( 'input[name="time_format_custom"]' ).on( 'click input', function() {
    6566                        $( '#time_format_custom_radio' ).prop( 'checked', true );
    6667                });
    67                 $("input[name='date_format_custom'], input[name='time_format_custom']").change( function() {
     68
     69                $( 'input[name="date_format_custom"], input[name="time_format_custom"]' ).on( 'input', function() {
    6870                        var format = $( this ),
    6971                                fieldset = format.closest( 'fieldset' ),
    7072                                example = fieldset.find( '.example' ),
    7173                                spinner = fieldset.find( '.spinner' );
    7274
    73                         spinner.addClass( 'is-active' );
     75                        // Debounce the event callback while users are typing.
     76                        clearTimeout( $.data( this, 'timer' ) );
     77                        $( this ).data( 'timer', setTimeout( function() {
     78                                // If custom date is not empty.
     79                                if ( format.val() ) {
     80                                        spinner.addClass( 'is-active' );
    7481
    75                         $.post( ajaxurl, {
    76                                         action: 'date_format_custom' == format.attr( 'name' ) ? 'date_format' : 'time_format',
    77                                         date : format.val()
    78                                 }, function( d ) { spinner.removeClass( 'is-active' ); example.text( d ); } );
    79                 });
     82                                        $.post( ajaxurl, {
     83                                                action: 'date_format_custom' == format.attr( 'name' ) ? 'date_format' : 'time_format',
     84                                                date    : format.val()
     85                                        }, function( d ) { spinner.removeClass( 'is-active' ); example.text( d ); } );
     86                                }
     87                         }, 500 ) );
     88                } );
    8089
    8190                var languageSelect = $( '#WPLANG' );
    8291                $( 'form' ).submit( function() {