Make WordPress Core

Ticket #13363: 13363.3.diff

File 13363.3.diff, 8.3 KB (added by fushar, 13 months ago)

Patch refreshed.

  • src/js/_enqueues/admin/edit-comments.js

    diff --git a/src/js/_enqueues/admin/edit-comments.js b/src/js/_enqueues/admin/edit-comments.js
    index e7a9282d4b..29ff597293 100644
    a b var getCount, updateCount, updateCountText, updatePending, updateApproved, 
    302302 */
    303303window.setCommentsList = function() {
    304304        var totalInput, perPageInput, pageInput, dimAfter, delBefore, updateTotalCount, delAfter, refillTheExtraList, diff,
    305                 lastConfidentTime = 0;
     305        getActionFromClass, showUndo, lastConfidentTime = 0;
    306306
    307307        totalInput = $('input[name="_total"]', '#comments-form');
    308308        perPageInput = $('input[name="_per_page"]', '#comments-form');
    window.setCommentsList = function() { 
    338338                totalInput.val( total.toString() );
    339339        };
    340340
     341        getActionFromClass = function( wpListsData ) {
     342                if ( wpListsData.indexOf(':trash=1') != -1 ) {
     343                        return {
     344                                action: 'trash',
     345                                undoAction: 'untrash',
     346                                undoClass: ':untrash=1',
     347                        };
     348                }
     349                else if ( wpListsData.indexOf(':spam=1') != -1 ) {
     350                        return {
     351                                action: 'spam',
     352                                undoAction: 'unspam',
     353                                undoClass: ':unspam=1',
     354                        };
     355                }
     356                else if ( wpListsData.indexOf(':action=dim-comment&new=approved') != -1 ) {
     357                        return {
     358                                action: 'approve',
     359                                undoAction: 'unapprove',
     360                                undoClass: 'e7e7d3:action=dim-comment&new=unapproved',
     361                        };
     362                }
     363                else if ( wpListsData.indexOf(':action=dim-comment&new=unapproved') != -1 ) {
     364                        return {
     365                                action: 'unapprove',
     366                                undoAction: 'approve',
     367                                undoClass: 'e7e7d3:action=dim-comment&new=approved',
     368                        };
     369                }
     370                return false;
     371        };
     372
    341373        /**
    342374         * Changes DOM that need to be changed after a list item has been dimmed.
    343375         *
    window.setCommentsList = function() { 
    402434         * @return {Object} The settings object.
    403435         */
    404436        delBefore = function( settings, list ) {
    405                 var note, id, el, n, h, a, author,
    406                         action = false,
    407                         wpListsData = $( settings.target ).attr( 'data-wp-lists' );
    408 
    409437                settings.data._total = totalInput.val() || 0;
    410438                settings.data._per_page = perPageInput.val() || 0;
    411439                settings.data._page = pageInput.val() || 0;
    412440                settings.data._url = document.location.href;
    413441                settings.data.comment_status = $('input[name="comment_status"]', '#comments-form').val();
    414442
    415                 if ( wpListsData.indexOf(':trash=1') != -1 )
    416                         action = 'trash';
    417                 else if ( wpListsData.indexOf(':spam=1') != -1 )
    418                         action = 'spam';
     443                if (! $(settings.target).parent().hasClass('undo')) {
     444                        showUndo(settings, list);
     445                }
     446
     447                return settings;
     448        }
     449
     450        showUndo = function( settings, list ) {
     451                var note, id, el, n, h, a, author, undoAction, undoClass,
     452                action = false,
     453                wpListsData = $( settings.target ).attr( 'data-wp-lists' );
    419454
    420                 if ( action ) {
     455
     456                params = getActionFromClass( wpListsData );
     457
     458                if ( params ) {
    421459                        id = wpListsData.replace(/.*?comment-([0-9]+).*/, '$1');
    422460                        el = $('#comment-' + id);
    423                         note = $('#' + action + '-undo-holder').html();
     461                        note = $('#' + params.action + '-undo-holder').html();
    424462
    425463                        el.find('.check-column :checkbox').prop('checked', false); // Uncheck the row so as not to be affected by Bulk Edits.
    426464
    window.setCommentsList = function() { 
    430468                        if ( el.is('tr') ) {
    431469                                n = el.children(':visible').length;
    432470                                author = $('.author strong', el).text();
    433                                 h = $('<tr id="undo-' + id + '" class="undo un' + action + '" style="display:none;"><td colspan="' + n + '">' + note + '</td></tr>');
     471                                h = $('<tr id="undo-' + id + '" class="undo ' + params.undoAction + '" style="display:none;"><td colspan="' + n + '">' + note + '</td></tr>');
    434472                        } else {
    435473                                author = $('.comment-author', el).text();
    436                                 h = $('<div id="undo-' + id + '" style="display:none;" class="undo un' + action + '">' + note + '</div>');
     474                                h = $('<div id="undo-' + id + '" style="display:none;" class="undo ' + params.undoAction + '">' + note + '</div>');
    437475                        }
    438476
    439477                        el.before(h);
    440478
    441479                        $('strong', '#undo-' + id).text(author);
    442480                        a = $('.undo a', '#undo-' + id);
    443                         a.attr('href', 'comment.php?action=un' + action + 'comment&c=' + id + '&_wpnonce=' + settings.data._ajax_nonce);
    444                         a.attr('data-wp-lists', 'delete:the-comment-list:comment-' + id + '::un' + action + '=1');
     481                        a.attr('href', 'comment.php?action=' + params.undoAction + 'comment&c=' + id + '&_wpnonce=' + settings.data._ajax_nonce);
     482                        a.attr('data-wp-lists', 'delete:the-comment-list:comment-' + id + ':' + params.undoClass);
    445483                        a.attr('class', 'vim-z vim-destructive aria-button-if-js');
    446                         $('.avatar', el).first().clone().prependTo('#undo-' + id + ' .' + action + '-undo-inside');
     484                        $('.avatar', el).first().clone().prependTo('#undo-' + id + ' .' + params.action + '-undo-inside');
    447485
    448486                        a.on( 'click', function( e ){
    449487                                e.preventDefault();
    window.setCommentsList = function() { 
    456494                        });
    457495                }
    458496
    459                 return settings;
    460497        };
    461498
    462499        /**
    window.setCommentsList = function() { 
    529566                                } else if ( '0' === commentStatus ) {
    530567                                        pendingDiff = 1;
    531568                                }
     569
     570                        // The comment was approved.
     571                        } else if ( targetParent.hasClass( 'unapprove' ) ) {
     572                                approvedDiff = -1;
     573                                pendingDiff = 1;
     574
     575                        // The comment was unapproved.
     576                        } else if ( targetParent.hasClass( 'approve' ) ) {
     577                                approvedDiff = 1;
     578                                pendingDiff = -1;
    532579                        }
    533580
    534581                        undoing = true;
    window.setCommentsList = function() { 
    765812                .on('wpListDelEnd', function(e, s){
    766813                        var wpListsData = $(s.target).attr('data-wp-lists'), id = s.element.replace(/[^0-9]+/g, '');
    767814
    768                         if ( wpListsData.indexOf(':trash=1') != -1 || wpListsData.indexOf(':spam=1') != -1 )
     815                        if ( getActionFromClass( wpListsData ) )
    769816                                $('#undo-' + id).fadeIn(300, function(){ $(this).show(); });
    770817                });
    771818};
  • src/wp-admin/css/dashboard.css

    diff --git a/src/wp-admin/css/dashboard.css b/src/wp-admin/css/dashboard.css
    index 76270ae0d3..7b07cb8217 100644
    a b body #dashboard-widgets .postbox form .submit { 
    977977        width: 4px;
    978978}
    979979
    980 #activity-widget #the-comment-list .spam-undo-inside .avatar,
    981 #activity-widget #the-comment-list .trash-undo-inside .avatar {
     980#activity-widget #the-comment-list .undo-inside .avatar {
    982981        position: relative;
    983982        top: 0;
    984983}
  • src/wp-admin/css/edit.css

    diff --git a/src/wp-admin/css/edit.css b/src/wp-admin/css/edit.css
    index f808cf1c7f..9f57ba80f5 100644
    a b p.popular-tags a { 
    15351535        margin-left: 1em;
    15361536}
    15371537
    1538 .trash-undo-inside,
    1539 .spam-undo-inside {
     1538.undo-inside {
    15401539        margin: 1px 8px 1px 0;
    15411540        line-height: 1.23076923;
    15421541}
    15431542
    1544 .spam-undo-inside .avatar,
    1545 .trash-undo-inside .avatar {
     1543.undo-inside .avatar {
    15461544        height: 20px;
    15471545        width: 20px;
    15481546        margin-right: 8px;
    15491547        vertical-align: middle;
    15501548}
    15511549
     1550.undo-inside .approve {
     1551        display:inline;
     1552}
     1553
    15521554.stuffbox .editcomment {
    15531555        clear: none;
    15541556        margin-top: 0;
  • src/wp-admin/includes/template.php

    diff --git a/src/wp-admin/includes/template.php b/src/wp-admin/includes/template.php
    index 1d4a8e8da1..7e4c1d2d3e 100644
    a b function wp_comment_reply( $position = 1, $checkbox = false, $mode = 'single', $ 
    555555function wp_comment_trashnotice() {
    556556        ?>
    557557<div class="hidden" id="trash-undo-holder">
    558         <div class="trash-undo-inside">
     558        <div class="trash-undo-inside undo-inside">
    559559                <?php
    560560                /* translators: %s: Comment author, filled by Ajax. */
    561561                printf( __( 'Comment by %s moved to the Trash.' ), '<strong></strong>' );
    function wp_comment_trashnotice() { 
    564564        </div>
    565565</div>
    566566<div class="hidden" id="spam-undo-holder">
    567         <div class="spam-undo-inside">
     567        <div class="spam-undo-inside undo-inside">
    568568                <?php
    569569                /* translators: %s: Comment author, filled by Ajax. */
    570570                printf( __( 'Comment by %s marked as spam.' ), '<strong></strong>' );
    571571                ?>
    572572                <span class="undo unspam"><a href="#"><?php _e( 'Undo' ); ?></a></span>
    573573        </div>
     574</div>
     575<div class="hidden" id="approve-undo-holder">
     576        <div class="approve-undo-inside undo-inside">
     577                <?php
     578                /* translators: %s: Comment author, filled by Ajax. */
     579                printf( __( 'Comment by %s approved.' ), '<strong></strong>' );
     580                ?>
     581                <span class="undo unapprove"><a href="#"><?php _e( 'Undo' ); ?></a></span>
     582        </div>
     583</div>
     584<div class="hidden" id="unapprove-undo-holder">
     585        <div class="unapprove-undo-inside undo-inside">
     586                <?php
     587                /* translators: %s: Comment author, filled by Ajax. */
     588                printf( __( 'Comment by %s unapproved.' ), '<strong></strong>' );
     589                ?>
     590                <span class="undo approve"><a href="#"><?php _e( 'Undo' ); ?></a></span>
     591        </div>
    574592</div>
    575593        <?php
    576594}