WordPress.org

Make WordPress Core

Ticket #19905: 19905.diff

File 19905.diff, 2.5 KB (added by duck_, 6 years ago)
  • wp-admin/js/edit-comments.dev.js

     
    2727                        c.find('div.comment_status').html('1');
    2828                }
    2929
    30                 $('span.pending-count').each( function() {
    31                         var a = $(this), n, dif;
    32 
    33                         n = a.html().replace(/[^0-9]+/g, '');
    34                         n = parseInt(n, 10);
    35 
    36                         if ( isNaN(n) )
    37                                 return;
    38 
    39                         dif = $('#' + settings.element).is('.' + settings.dimClass) ? 1 : -1;
    40                         n = n + dif;
    41 
    42                         if ( n < 0 )
    43                                 n = 0;
    44 
    45                         a.closest('.awaiting-mod')[ 0 == n ? 'addClass' : 'removeClass' ]('count-0');
    46                         updateCount(a, n);
    47                         dashboardTotals();
    48                 });
     30                var diff = $('#' + settings.element).is('.' + settings.dimClass) ? 1 : -1;
     31                updatePending( diff );
    4932        };
    5033
    5134        // Send current total, page, per_page and url
     
    129112                apprN = totalN - getCount( $('span.pending-count', dash) ) - getCount( $('span.spam-count', dash) );
    130113                updateCount(total, totalN);
    131114                updateCount(appr, apprN);
    132 
    133115        };
    134116
    135117        getCount = function(el) {
     
    154136                el.html(n);
    155137        };
    156138
    157         updatePending = function(n) {
    158                 $('span.pending-count').each( function() {
    159                         var a = $(this);
    160 
    161                         if ( n < 0 )
     139        updatePending = function( diff ) {
     140                $('span.pending-count').each(function() {
     141                        var a = $(this), n = getCount(a) + diff;
     142                        if ( n < 1 )
    162143                                n = 0;
    163 
    164144                        a.closest('.awaiting-mod')[ 0 == n ? 'addClass' : 'removeClass' ]('count-0');
    165                         updateCount(a, n);
    166                         dashboardTotals();
     145                        updateCount( a, n );
    167146                });
     147
     148                dashboardTotals();
    168149        };
    169150
    170151        // In admin-ajax.php, we send back the unix time stamp instead of 1 on success
     
    193174                else
    194175                        spam = getUpdate('spam');
    195176
    196                 pending = getCount( $('span.pending-count').eq(0) );
    197 
    198                 if ( $(settings.target).parent().is('span.unapprove') || ( ( untrash || unspam ) && unapproved ) ) { // we "deleted" an approved comment from the approved list by clicking "Unapprove"
    199                         pending = pending + 1;
    200                 } else if ( unapproved ) { // we deleted a formerly unapproved comment
    201                         pending = pending - 1;
     177                if ( $(settings.target).parent().is('span.unapprove') || ( ( untrash || unspam ) && unapproved ) ) {
     178                        // a comment was 'deleted' from another list (e.g. approved, spam, trash) and moved to pending,
     179                        // or a trash/spam of a pending comment was undone
     180                        pending = 1;
     181                } else if ( unapproved ) {
     182                        // a pending comment was trashed/spammed/approved
     183                        pending = -1;
    202184                }
    203185
    204186                updatePending(pending);