WordPress.org

Make WordPress Core

Ticket #23697: 23697-4.patch

File 23697-4.patch, 4.8 KB (added by azaozz, 23 months ago)
  • wp-admin/css/wp-admin.css

     
    34243424 
    34253425#notification-dialog .post-locked-avatar { 
    34263426        float: left; 
    3427         margin-right: 20px; 
     3427        margin: 0 20px 20px 0; 
    34283428} 
    34293429 
    34303430#notification-dialog .currently-editing { 
    3431         margin-bottom: 20px; 
    34323431        outline: 0; 
    34333432} 
    34343433 
     3434#notification-dialog .locked-saving img { 
     3435        float: left; 
     3436        margin-right: 3px; 
     3437} 
    34353438 
     3439#notification-dialog-wrap.saving .locked-saving, 
     3440#notification-dialog-wrap.saved .locked-saved { 
     3441        display: block; 
     3442} 
     3443 
    34363444/*------------------------------------------------------------------------------ 
    34373445  11.1 - Custom Fields 
    34383446------------------------------------------------------------------------------*/ 
  • wp-admin/includes/misc.php

     
    574574                        $post_id = (int) substr( $key, 5 ); 
    575575 
    576576                        if ( current_user_can( 'edit_post', $post_id ) && ( $user_id = wp_check_post_lock( $post_id ) ) && ( $user = get_userdata( $user_id ) ) ) { 
    577                                 $send = array(); 
     577                                $send = array( 'text' => sprintf( __( '%s is currently editing' ), $user->display_name ) ); 
    578578 
    579579                                if ( ( $avatar = get_avatar( $user->ID, 18 ) ) && preg_match( "|src='([^']+)'|", $avatar, $matches ) ) 
    580580                                        $send['avatar_src'] = $matches[1]; 
    581581 
    582                                 $send['text'] = sprintf( __( '%s is currently editing' ), $user->display_name ); 
    583582                                $checked[$key] = $send; 
    584583                        } 
    585584                } 
     
    608607                if ( !current_user_can('edit_post', $post_id) ) 
    609608                        return $response; 
    610609 
    611                 if ( $user_id = wp_check_post_lock( $post_id ) ) { 
    612                         $user = get_userdata( $user_id ); 
    613  
     610                if ( ( $user_id = wp_check_post_lock( $post_id ) ) && ( $user = get_userdata( $user_id ) ) ) { 
    614611                        $error = array( 
    615612                                'text' => sprintf( __( '%s has taken over and is currently editing.' ), $user->display_name ) 
    616613                        ); 
  • wp-admin/includes/post.php

     
    11941194        if ( ! $post = get_post() ) 
    11951195                return; 
    11961196 
    1197         if ( $user = wp_check_post_lock( $post->ID ) ) { 
    1198                 $user = get_userdata( $user ); 
     1197        if ( ( $user_id = wp_check_post_lock( $post->ID ) ) && ( $user = get_userdata( $user_id ) ) ) { 
    11991198                $locked = apply_filters( 'show_post_locked_dialog', true, $post, $user ); 
    12001199        } else { 
    12011200                $locked = false; 
     
    12471246                <div class="post-taken-over"> 
    12481247                        <div class="post-locked-avatar"></div> 
    12491248                        <p class="currently-editing wp-tab-first" tabindex="0"></p> 
     1249                        <p class="locked-saving hidden"><img src="images/wpspin_light-2x.gif" width="16" height="16" /> <?php _e('Saving revision...'); ?></p> 
     1250                        <p class="locked-saved hidden"><?php _e('Revision saved.'); ?></p> 
    12501251                        <p><a class="button button-primary wp-tab-last" href="<?php echo esc_url( admin_url('edit.php') ); ?>"><?php _e('Go to All Posts'); ?></a></p> 
    12511252                </div> 
    12521253                <?php 
  • wp-admin/js/post.js

     
    277277                        wrap = $('#notification-dialog-wrap'); 
    278278 
    279279                        if ( wrap.length && ! wrap.is(':visible') ) { 
    280                                 if ( typeof autosave == 'function' ) 
     280                                $(document).on('autosave-disable-buttons.post-lock', function() { 
     281                                        wrap.addClass('saving'); 
     282                                }).on('autosave-enable-buttons.post-lock', function() { 
     283                                        wrap.removeClass('saving').addClass('saved'); 
     284                                        window.onbeforeunload = null; 
     285                                }); 
     286 
     287                                if ( typeof autosave == 'function' ) { 
     288                                        // Save the latest changes and disable 
    281289                                        autosave(); 
     290                                        autosave = function(){}; 
     291                                } 
    282292 
    283293                                if ( received.lock_error.avatar_src ) { 
    284294                                        avatar = $('<img class="avatar avatar-64 photo" width="64" height="64" />').attr( 'src', received.lock_error.avatar_src.replace(/&amp;/g, '&') ); 
  • wp-includes/js/autosave.js

     
    227227} 
    228228 
    229229function autosave_enable_buttons() { 
     230        jQuery(document).trigger('autosave-enable-buttons'); 
    230231        if ( ! wp.heartbeat.connectionLost ) { 
    231232                // delay that a bit to avoid some rare collisions while the DOM is being updated. 
    232233                setTimeout(function(){ 
     
    238239} 
    239240 
    240241function autosave_disable_buttons() { 
     242        jQuery(document).trigger('autosave-disable-buttons'); 
    241243        jQuery('#submitpost').find(':button, :submit').prop('disabled', true); 
    242244        // Re-enable 5 sec later. Just gives autosave a head start to avoid collisions. 
    243245        setTimeout( autosave_enable_buttons, 5000 );