WordPress.org

Make WordPress Core

Ticket #23697: 23697-4.patch

File 23697-4.patch, 4.8 KB (added by azaozz, 5 years 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 );