WordPress.org

Make WordPress Core

Ticket #15500: garyc40-15500.patch

File garyc40-15500.patch, 2.9 KB (added by garyc40, 9 years ago)
  • wp-admin/includes/class-wp-comments-list-table.php

     
    5757                $comments_per_page = $this->get_items_per_page( 'edit_comments_per_page' );
    5858                $comments_per_page = apply_filters( 'comments_per_page', $comments_per_page, $comment_status );
    5959
    60                 if ( isset( $_POST['number'] ) )
     60                $doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX;
     61
     62                if ( isset( $_POST['number'] ) ) {
    6163                        $number = (int) $_POST['number'];
    62                 else
     64                }
     65                elseif ( $doing_ajax && isset( $_REQUEST['number'] ) ) {
     66                        // ajax requests may use GET or POST
     67                        $number = (int) $_REQUEST['number'];
     68                }
     69                else {
    6370                        $number = $comments_per_page + min( 8, $comments_per_page ); // Grab a few extra
     71                }
    6472
    6573                $page = $this->get_pagenum();
    6674
    67                 $start = $offset = ( $page - 1 ) * $comments_per_page;
     75                $start = ( $page - 1 ) * $comments_per_page;
     76               
     77                if ( $doing_ajax && isset( $_REQUEST['offset'] ) ) {
     78                        $start += $_REQUEST['offset'];
     79                }
    6880
    6981                $status_map = array(
    7082                        'moderated' => 'hold',
  • wp-admin/js/edit-comments.dev.js

     
    210210
    211211                theList.get(0).wpList.add( theExtraList.children(':eq(0)').remove().clone() );
    212212
    213                 // Refill the extra list
    214                 var args = $.query.get();
    215                 args.number = 1;
    216                 args.paged++;
     213                refillTheExtraList();
     214        };
     215       
     216        var refillTheExtraList = function() {
     217                var args = $.query.get(), total_pages = listTable.get_total_pages(), per_page = $('input[name=_per_page]', '#comments-form').val();
     218               
     219                if (args.paged > total_pages) {
     220                        return;
     221                }
     222
     223                if (arguments.length == 0) {
     224                        args.number = 1;
     225                        args.offset = per_page - 1; // fetch only the last item of the next page
     226                } else {
     227                        theExtraList.empty();
     228                        args.number = Math.min(8, per_page); // see WP_Comments_List_Table::prepare_items() @ class-wp-comments-list-table.php
     229                }
     230               
     231                args.paged ++;
     232
    217233                listTable.fetch_list(args, function(response) {
    218234                        theExtraList.get(0).wpList.add( response.rows );
    219235                });
     
    227243                        if ( s.target.className.indexOf(':trash=1') != -1 || s.target.className.indexOf(':spam=1') != -1 )
    228244                                $('#undo-' + id).fadeIn(300, function(){ $(this).show() });
    229245                });
     246        $(listTable).bind('changePage', refillTheExtraList);
    230247};
    231248
    232249commentReply = {
  • wp-admin/js/list-table.dev.js

     
    158158                listTable.update_rows({'paged': paged}, false, function() {
    159159                        if ( $el.parents('.tablenav.bottom').length )
    160160                                scrollTo(0, 0);
     161                               
     162                        $(listTable).trigger('changePage');
    161163                });
    162164        }
    163165