WordPress.org

Make WordPress Core

Ticket #13821: 13821.diff

File 13821.diff, 2.7 KB (added by kovshenin, 8 years ago)
  • src/wp-admin/js/post.js

     
    370370}(jQuery));
    371371
    372372jQuery(document).ready( function($) {
    373         var stamp, visibility, $submitButtons, updateVisibility, updateText,
     373        var stamp, visibility, $submitButtons, updateVisibility, updatePasswordSubmitability, updateText, $postPassword,
    374374                sticky = '',
    375375                last = 0,
    376376                co = $('#content'),
     
    653653        // submitdiv
    654654        if ( $('#submitdiv').length ) {
    655655                stamp = $('#timestamp').html();
    656                 visibility = $('#post-visibility-display').html();
     656                visibility = $('#post-visibility-display').html(),
     657                $postPassword = $('#post_password');
    657658
     659                updatePasswordSubmitability = function() {
     660                        var passwordEmpty = $postPassword.val().trim().length < 1;
     661
     662                        $postVisibilitySelect.find('.save-post-visibility').toggleClass( 'button-disabled', passwordEmpty );
     663                        $postPassword.toggleClass( 'form-invalid', passwordEmpty );
     664                }
     665
    658666                updateVisibility = function() {
    659667                        if ( $postVisibilitySelect.find('input:radio:checked').val() != 'public' ) {
    660668                                $('#sticky').prop('checked', false);
     
    664672                        }
    665673                        if ( $postVisibilitySelect.find('input:radio:checked').val() != 'password' ) {
    666674                                $('#password-span').hide();
     675                                $postVisibilitySelect.find('.save-post-visibility').removeClass('button-disabled');
    667676                        } else {
    668677                                $('#password-span').show();
     678                                updatePasswordSubmitability();
    669679                        }
    670680                };
    671681
     
    760770                $postVisibilitySelect.find('.cancel-post-visibility').click( function( event ) {
    761771                        $postVisibilitySelect.slideUp('fast');
    762772                        $('#visibility-radio-' + $('#hidden-post-visibility').val()).prop('checked', true);
    763                         $('#post_password').val($('#hidden-post-password').val());
     773                        $postPassword.val( $('#hidden-post-password').val() );
    764774                        $('#sticky').prop('checked', $('#hidden-post-sticky').prop('checked'));
    765775                        $('#post-visibility-display').html(visibility);
    766776                        $('#visibility .edit-visibility').show().focus();
     
    769779                });
    770780
    771781                $postVisibilitySelect.find('.save-post-visibility').click( function( event ) { // crazyhorse - multiple ok cancels
     782                        if ( $(this).hasClass('button-disabled') ) {
     783                                return false;
     784                        }
     785
    772786                        $postVisibilitySelect.slideUp('fast');
    773787                        $('#visibility .edit-visibility').show();
    774788                        updateText();
     
    791805                        updateVisibility();
    792806                });
    793807
     808                // Disable submit button based on password field content
     809                $postPassword.on( 'change keyup', updatePasswordSubmitability );
     810
    794811                $timestampdiv.siblings('a.edit-timestamp').click( function( event ) {
    795812                        if ( $timestampdiv.is( ':hidden' ) ) {
    796813                                $timestampdiv.slideDown('fast');