WordPress.org

Make WordPress Core

Ticket #15500: garyc40-15500-rev2.patch

File garyc40-15500-rev2.patch, 2.9 KB (added by garyc40, 3 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