WordPress.org

Make WordPress Core

Ticket #18515: 18515-2.patch

File 18515-2.patch, 2.4 KB (added by azaozz, 10 years ago)
  • wp-admin/admin-ajax.php

     
    15451545        echo json_encode( array( 'message' => $message, 'last_edited' => $last_edited ) );
    15461546        die();
    15471547        break;
     1548case 'wp-remove-post-lock' :
     1549
     1550        $post_id = isset($_POST['post_ID']) ? (int) $_POST['post_ID'] : 0;
     1551        if ( !current_user_can('edit_post', $post_id) || empty($_POST['user_ID']) )
     1552                die();
     1553
     1554        $post = $post_type = null;
     1555
     1556        if ( $post_id ) {
     1557                $post = get_post($post_id);
     1558                if ( $post )
     1559                        $post_type = $post->post_type;
     1560        }
     1561
     1562        check_ajax_referer('update-' . $post_type . '_' . $post_id);
     1563
     1564        sleep(4);
     1565
     1566        if ( !$lock = get_post_meta( $post_id, '_edit_lock', true ) )
     1567                die('-1');
     1568
     1569        $lock = explode( ':', $lock );
     1570        $user_id = isset( $lock[1] ) ? $lock[1] : get_post_meta( $post_id, '_edit_last', true );
     1571        $locked = (int) $lock[0];
     1572
     1573        if ( time() - $locked < 5 ) // give a few seconds for the lock to be refreshed if the user reloaded the page
     1574                die('0');
     1575
     1576        if ( $user_id == $_POST['user_ID'] )
     1577                delete_post_meta( $post_id, '_edit_lock' );
     1578
     1579        die('1');
     1580        break;
    15481581default :
    15491582        do_action( 'wp_ajax_' . $_POST['action'] );
    15501583        die('0');
  • wp-admin/js/post.dev.js

     
    643643        }
    644644
    645645        wptitlehint();
     646
     647        // remove the post lock on unload
     648        $(window).unload(function() {
     649                $.ajax({
     650                        type: 'POST',
     651                        url: ajaxurl,
     652                        data: {
     653                                action: 'wp-remove-post-lock',
     654                                _wpnonce: $('#_wpnonce').val(),
     655                                post_ID: $('#post_ID').val(),
     656                                user_ID: $('#user_ID').val()
     657                        }
     658                });
     659        });
    646660});
  • wp-includes/script-loader.php

     
    281281
    282282                $scripts->add( 'postbox', "/wp-admin/js/postbox$suffix.js", array('jquery-ui-sortable'), '20110822', 1 );
    283283
    284                 $scripts->add( 'post', "/wp-admin/js/post$suffix.js", array('suggest', 'wp-lists', 'postbox'), '20110524', 1 );
     284                $scripts->add( 'post', "/wp-admin/js/post$suffix.js", array('suggest', 'wp-lists', 'postbox'), '20110824', 1 );
    285285                $scripts->add_script_data( 'post', 'postL10n', array(
    286286                        'ok' => __('OK'),
    287287                        'cancel' => __('Cancel'),