Comments List Table:

* In a view that initially has comments, but they get removed due to user actions: show the `No Items` row instead of bombing out and showing nothing (which looks broken)
* To accomplish this, in `WP_Comments_List_Table::display()`: call `->display_rows_or_placeholder()` instead of `->display()`
* Listen for the end of row `.fadeOut()`s if necessary using jQuery Promises

Fixes #11200.


git-svn-id: https://develop.svn.wordpress.org/trunk@33657 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Scott Taylor 2015-08-20 05:53:41 +00:00
parent 88e804f6c0
commit 64944b7a87
2 changed files with 19 additions and 3 deletions

View File

@ -409,7 +409,10 @@ class WP_Comments_List_Table extends WP_List_Table {
</tbody>
<tbody id="the-extra-comment-list" data-wp-lists="list:comment" style="display: none;">
<?php $this->items = $this->extra_items; $this->display_rows(); ?>
<?php
$this->items = $this->extra_items;
$this->display_rows_or_placeholder();
?>
</tbody>
<tfoot>

View File

@ -152,7 +152,7 @@ setCommentsList = function() {
// In admin-ajax.php, we send back the unix time stamp instead of 1 on success
delAfter = function( r, settings ) {
var total_items_i18n, total,
var total_items_i18n, total, animated, animatedCallback,
response = true === settings.parsed ? {} : settings.parsed.responses[0],
commentStatus = true === settings.parsed ? '' : response.supplemental.status,
@ -333,9 +333,22 @@ setCommentsList = function() {
return;
}
theList.get(0).wpList.add( theExtraList.children(':eq(0)').remove().clone() );
theList.get(0).wpList.add( theExtraList.children( ':eq(0):not(.no-items)' ).remove().clone() );
refillTheExtraList();
animated = $( ':animated' );
animatedCallback = function () {
if ( ! $( '#the-comment-list tr:visible' ).length ) {
theList.get(0).wpList.add( theExtraList.find( '.no-items' ).clone() );
}
};
if ( animated.length ) {
animated.promise().done( animatedCallback );
} else {
animatedCallback();
}
};
refillTheExtraList = function(ev) {