WordPress.org

Make WordPress Core

Ticket #23216: 23216-4.patch

File 23216-4.patch, 6.8 KB (added by azaozz, 5 years ago)
  • wp-admin/includes/ajax-actions.php

     
    1313        $response = array();
    1414
    1515        // screen_id is the same as $current_screen->id and the JS global 'pagenow'
    16         if ( ! empty($_POST['screenid']) )
    17                 $screen_id = sanitize_key($_POST['screenid']);
     16        if ( ! empty($_POST['screen_id']) )
     17                $screen_id = sanitize_key($_POST['screen_id']);
    1818        else
    19                 $screen_id = 'site';
     19                $screen_id = 'front';
    2020
    2121        if ( ! empty($_POST['data']) ) {
    2222                $data = wp_unslash( (array) $_POST['data'] );
     
    2929        do_action( 'heartbeat_nopriv_tick', $response, $screen_id );
    3030
    3131        // send the current time according to the server
    32         $response['servertime'] = time();
     32        $response['server_time'] = time();
    3333
    3434        wp_send_json($response);
    3535}
     
    20582058        $response = array();
    20592059
    20602060        // screen_id is the same as $current_screen->id and the JS global 'pagenow'
    2061         if ( ! empty($_POST['screenid']) )
    2062                 $screen_id = sanitize_key($_POST['screenid']);
     2061        if ( ! empty($_POST['screen_id']) )
     2062                $screen_id = sanitize_key($_POST['screen_id']);
    20632063        else
    2064                 $screen_id = 'site';
     2064                $screen_id = 'front';
    20652065
    20662066        if ( ! empty($_POST['data']) ) {
    20672067                $data = (array) $_POST['data'];
    2068                 // todo: how much to sanitize and preset and what to leave to be accessed from $data or $_POST..?
    2069                 $user = wp_get_current_user();
    2070                 $data['user_id'] = $user->exists() ? $user->ID : 0;
    20712068
    20722069                // todo: separate filters: 'heartbeat_[action]' so we call different callbacks only when there is data for them,
    20732070                // or all callbacks listen to one filter and run when there is something for them in $data?
     
    20802077        do_action( 'heartbeat_tick', $response, $screen_id );
    20812078
    20822079        // send the current time acording to the server
    2083         $response['servertime'] = time();
     2080        $response['server_time'] = time();
    20842081
    20852082        wp_send_json($response);
    20862083}
  • wp-admin/includes/misc.php

     
    569569function wp_check_locked_posts( $response, $data, $screen_id ) {
    570570        $checked = array();
    571571
    572         if ( 'edit-post' == $screen_id && array_key_exists( 'wp-check-locked', $data ) && is_array( $data['wp-check-locked'] ) ) {
    573                 foreach ( $data['wp-check-locked'] as $key ) {
     572        if ( array_key_exists( 'wp-check-locked-posts', $data ) && is_array( $data['wp-check-locked-posts'] ) ) {
     573                foreach ( $data['wp-check-locked-posts'] as $key ) {
    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 ) ) ) {
     
    585585        }
    586586
    587587        if ( ! empty( $checked ) )
    588                 $response['wp-check-locked'] = $checked;
     588                $response['wp-check-locked-posts'] = $checked;
    589589
    590590        return $response;
    591591}
     
    597597 * @since 3.6
    598598 */
    599599function wp_refresh_post_lock( $response, $data, $screen_id ) {
    600         if ( 'post' == $screen_id && array_key_exists( 'wp-refresh-post-lock', $data ) ) {
     600        if ( array_key_exists( 'wp-refresh-post-lock', $data ) ) {
    601601                $received = $data['wp-refresh-post-lock'];
    602602                $send = array();
    603603
    604                 if ( !$post_id = absint( $received['post_id'] ) )
     604                if ( ! $post_id = absint( $received['post_id'] ) )
    605605                        return $response;
    606606
    607                 if ( !current_user_can('edit_post', $post_id) )
     607                if ( ! current_user_can('edit_post', $post_id) )
    608608                        return $response;
    609609
    610610                if ( ( $user_id = wp_check_post_lock( $post_id ) ) && ( $user = get_userdata( $user_id ) ) ) {
     
    636636 * @since 3.6
    637637 */
    638638function wp_refresh_post_nonces( $response, $data, $screen_id ) {
    639         if ( 'post' == $screen_id && array_key_exists( 'wp-refresh-post-nonces', $data ) ) {
     639        if ( array_key_exists( 'wp-refresh-post-nonces', $data ) ) {
    640640                $received = $data['wp-refresh-post-nonces'];
    641641
    642642                if ( ! $post_id = absint( $received['post_id'] ) )
  • wp-admin/js/inline-edit-post.js

     
    293293$( document ).ready( function(){ inlineEditPost.init(); } );
    294294
    295295// Show/hide locks on posts
    296 $( document ).on( 'heartbeat-tick.wp-check-locked', function( e, data ) {
    297         var locked = data['wp-check-locked'] || {};
     296$( document ).on( 'heartbeat-tick.wp-check-locked-posts', function( e, data ) {
     297        var locked = data['wp-check-locked-posts'] || {};
    298298
    299299        $('#the-list tr').each( function(i, el) {
    300300                var key = el.id, row = $(el), lock_data, avatar;
     
    315315                        row.find('.column-title .locked-avatar').empty();
    316316                }
    317317        });
    318 }).on( 'heartbeat-send.wp-check-locked', function( e, data ) {
     318}).on( 'heartbeat-send.wp-check-locked-posts', function( e, data ) {
    319319        var check = [];
    320320
    321321        $('#the-list tr').each( function(i, el) {
     
    324324        });
    325325
    326326        if ( check.length )
    327                 data['wp-check-locked'] = check;
     327                data['wp-check-locked-posts'] = check;
    328328});
    329329
    330330}(jQuery));
  • wp-includes/js/heartbeat.js

     
    1111                        running,
    1212                        beat,
    1313                        nonce,
    14                         screenid = typeof pagenow != 'undefined' ? pagenow : '',
     14                        screenId = typeof pagenow != 'undefined' ? pagenow : '',
    1515                        url = typeof ajaxurl != 'undefined' ? ajaxurl : '',
    1616                        settings,
    1717                        tick = 0,
     
    4242
    4343                        interval = settings.interval || 15; // default interval
    4444                        delete settings.interval;
    45                         // The interval can be from 5 to 60 sec.
    46                         if ( interval < 5 )
    47                                 interval = 5;
     45                        // The interval can be from 15 to 60 sec. and can be set temporarily to 5 sec.
     46                        if ( interval < 15 )
     47                                interval = 15;
    4848                        else if ( interval > 60 )
    4949                                interval = 60;
    5050
    5151                        interval = interval * 1000;
    5252
    53                         // 'screenid' can be added from settings on the front-end where the JS global 'pagenow' is not set
    54                         screenid = screenid || settings.screenid || 'site';
    55                         delete settings.screenid;
     53                        // 'screenId' can be added from settings on the front-end where the JS global 'pagenow' is not set
     54                        screenId = screenId || settings.screenId || 'front';
     55                        delete settings.screenId;
    5656
    5757                        // Add or overwrite public vars
    5858                        $.extend( this, settings );
     
    8383                        return false;
    8484                }
    8585
    86                 // Set error state and fire an event if XHR errors or timeout
     86                // Set error state and fire an event on XHR errors or timeout
    8787                function errorstate( error ) {
    8888                        var trigger;
    8989
     
    148148                        send.interval = interval / 1000;
    149149                        send._nonce = nonce;
    150150                        send.action = 'heartbeat';
    151                         send.screenid = screenid;
     151                        send.screen_id = screenId;
    152152                        send.has_focus = hasFocus;
    153153
    154154                        connecting = true;