WordPress.org

Make WordPress Core

Ticket #15500: garyc40-15500-rev2.patch

File garyc40-15500-rev2.patch, 2.9 KB (added by garyc40, 9 years ago)

fixed unnecessary event check as well as doing ajax check

  • wp-admin/includes/class-wp-comments-list-table.php

    diff --git wp-admin/includes/class-wp-comments-list-table.php wp-admin/includes/class-wp-comments-list-table.php
    index 67555ab..84134df 100644
    class WP_Comments_List_Table extends WP_List_Table { 
    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'] ) )
    61                         $number = (int) $_POST['number'];
    62                 else
     60                $doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX;
     61
     62                if ( isset( $_REQUEST['number'] ) ) {
     63                        $number = (int) $_REQUEST['number'];
     64                }
     65                else {
    6366                        $number = $comments_per_page + min( 8, $comments_per_page ); // Grab a few extra
     67                }
    6468
    6569                $page = $this->get_pagenum();
    6670
    67                 $start = $offset = ( $page - 1 ) * $comments_per_page;
     71                $start = ( $page - 1 ) * $comments_per_page;
     72               
     73                if ( $doing_ajax && isset( $_REQUEST['offset'] ) ) {
     74                        $start += $_REQUEST['offset'];
     75                }
    6876
    6977                $status_map = array(
    7078                        'moderated' => 'hold',
  • wp-admin/js/edit-comments.dev.js

    diff --git wp-admin/js/edit-comments.dev.js wp-admin/js/edit-comments.dev.js
    index eb6050d..76bcc79 100644
    setCommentsList = function() { 
    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(ev) {
     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 (ev) {
     224                        theExtraList.empty();
     225                        args.number = Math.min(8, per_page); // see WP_Comments_List_Table::prepare_items() @ class-wp-comments-list-table.php
     226                } else {
     227                        args.number = 1;
     228                        args.offset = per_page - 1; // fetch only the last item of the next page
     229                }
     230               
     231                args.paged ++;
     232
    217233                listTable.fetch_list(args, function(response) {
    218234                        theExtraList.get(0).wpList.add( response.rows );
    219235                });
    setCommentsList = function() { 
    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

    diff --git wp-admin/js/list-table.dev.js wp-admin/js/list-table.dev.js
    index 6f9682a..bf46c16 100644
    listTable.init(); 
    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