WordPress.org

Make WordPress Core

Ticket #15897: garyc40-15897.patch

File garyc40-15897.patch, 9.1 KB (added by garyc40, 7 years ago)

there's a patch for that

  • wp-admin/admin-ajax.php

    diff --git wp-admin/admin-ajax.php wp-admin/admin-ajax.php
    index 5eb33e1..c740291 100644
    case 'replyto-comment' : 
    661661        $comment_id = wp_new_comment( $commentdata );
    662662        $comment = get_comment($comment_id);
    663663        if ( ! $comment ) die('1');
    664 
     664       
     665        $parent = get_comment( $comment_parent );
     666        if ( ! $parent->comment_approved && ! wp_update_comment( array( 'comment_ID' => $comment_parent, 'comment_approved' => 'approve' ) ) ) {
     667                die('1');
     668        }
    665669        $position = ( isset($_POST['position']) && (int) $_POST['position']) ? (int) $_POST['position'] : '-1';
    666670
    667671        $x = new WP_Ajax_Response();
  • wp-admin/css/wp-admin.dev.css

    diff --git wp-admin/css/wp-admin.dev.css wp-admin/css/wp-admin.dev.css
    index 1781101..0ffe20a 100644
    table.fixed { 
    13731373#comments-form .fixed .column-author {
    13741374        width: 20%;
    13751375}
     1376.comments tr.focus th, .comments tr.focus td {
     1377        border-top-width:1px;
     1378        border-top-style:solid;
     1379}
     1380
     1381.comments tr.blur th, .comments tr.blur td {
     1382        border-bottom-width:0;
     1383}
    13761384#commentsdiv.postbox .inside {
    13771385        line-height:1.4em;
    13781386        margin:0;
    span.imgedit-scale-warn { 
    35363544}
    35373545
    35383546.spam-undo-inside .avatar,
    3539 .trash-undo-inside .avatar {
     3547.trash-undo-inside .avatar,
     3548.replied-approved-notice-inside .avatar {
    35403549        height: 20px;
    35413550        width: 20px;
    35423551        margin-right: 8px;
  • wp-admin/includes/template.php

    diff --git wp-admin/includes/template.php wp-admin/includes/template.php
    index 5f5c1c3..7af5c66 100644
    function wp_comment_trashnotice() { 
    408408<div class="hidden" id="spam-undo-holder">
    409409        <div class="spam-undo-inside"><?php printf(__('Comment by %s marked as spam.'), '<strong></strong>'); ?> <span class="undo unspam"><a href="#"><?php _e('Undo'); ?></a></span></div>
    410410</div>
     411<div class="hidden" id="replied-approved-notice">
     412        <div class="replied-approved-notice-inside"><?php printf(__('Comment by %s replied to and approved.'), '<strong></strong>'); ?></div>
     413</div>
    411414<?php
    412415}
    413416
  • wp-admin/js/edit-comments.dev.js

    diff --git wp-admin/js/edit-comments.dev.js wp-admin/js/edit-comments.dev.js
    index 177dc86..3f29a56 100644
     
    1 var theList, theExtraList, toggleWithKeyboard = false;
     1var theList, theExtraList, toggleWithKeyboard = false, commentReply, setCommentsList;
    22(function($) {
    33
    44setCommentsList = function() {
    setCommentsList = function() { 
    1212                var c = $('#' + settings.element);
    1313
    1414                if ( c.is('.unapproved') )
    15                         c.find('div.comment_status').html('0')
     15                        c.find('div.comment_status').html('0');
    1616                else
    17                         c.find('div.comment_status').html('1')
     17                        c.find('div.comment_status').html('1');
    1818
    1919                $('span.pending-count').each( function() {
    2020                        var a = $(this), n, dif;
    setCommentsList = function() { 
    8080                                return false;
    8181                        });
    8282                }
    83 
    8483                return settings;
    8584        };
    8685
    setCommentsList = function() { 
    209208                        return;
    210209                }
    211210
    212                 theList.get(0).wpList.add( theExtraList.children(':eq(0)').remove().clone() );
    213 
    214                 refillTheExtraList();
     211                refillTheList();
    215212        };
    216213       
    217214        var refillTheExtraList = function(ev) {
    218215                var args = $.query.get(), total_pages = listTable.get_total_pages(), per_page = $('input[name=_per_page]', '#comments-form').val();
    219                
     216
    220217                if (args.paged > total_pages) {
    221218                        return;
    222219                }
    setCommentsList = function() { 
    237234                        theExtraList.get(0).wpList.add( response.rows );
    238235                });
    239236        };
     237       
     238        var refillTheList = function() {
     239                theList.get(0).wpList.add( theExtraList.children(':eq(0)').remove().clone() );
     240
     241                refillTheExtraList();
     242        }
    240243
    241244        theExtraList = $('#the-extra-comment-list').wpList( { alt: '', delColor: 'none', addColor: 'none' } );
    242245        theList = $('#the-comment-list').wpList( { alt: '', delBefore: delBefore, dimAfter: dimAfter, delAfter: delAfter, addColor: 'none' } )
    setCommentsList = function() { 
    247250                                $('#undo-' + id).fadeIn(300, function(){ $(this).show() });
    248251                });
    249252        $(listTable).bind('changePage', refillTheExtraList);
     253        $(commentReply).bind('repliedAndApproved', refillTheList);
    250254};
    251255
    252256commentReply = {
    253257        cid : '',
    254258        act : '',
     259       
     260        showOverlay : function(id) {
     261                var c = $('#comment-' + id),
     262                        excluded = c.find('td, th').css('opacity', 1).add('td, th', '#replyrow');
     263                listTable.$tbody.find('td, th').not(excluded).animate({opacity:'0.2'}, 300);
     264                c.addClass('focus');
     265                c.prev().addClass('blur');
     266        },
     267       
     268        hideOverlay : function() {
     269                listTable.$tbody.
     270                        find('.blur').removeClass('blur').end().
     271                        find('.focus').removeClass('focus');
     272        },
    255273
    256274        init : function() {
    257275                var row = $('#replyrow');
    commentReply = { 
    300318
    301319                if ( $('#the-comment-list #replyrow').length < 1 )
    302320                        return false;
     321                       
     322                listTable.$tbody.find('th, td').animate({opacity : 1}, 300);
    303323
    304324                $('#replyrow').fadeOut('fast', function(){
    305325                        commentReply.close();
    commentReply = { 
    323343                        $('input', '#edithead').val('');
    324344                        $('.error', '#replysubmit').html('').hide();
    325345                        $('.waiting', '#replysubmit').hide();
     346                        this.hideOverlay();
    326347
    327348                        if ( $.browser.msie )
    328349                                $('#replycontainer, #replycontent').css('height', '120px');
    commentReply = { 
    334355        },
    335356
    336357        open : function(id, p, a) {
    337                 var t = this, editRow, rowData, act, h, c = $('#comment-' + id);
     358                var t = this, editRow, rowData, act, h, c = $('#comment-' + id), replyButton;
    338359                t.close();
    339360                t.cid = id;
    340361
    commentReply = { 
    345366                $('#action', editRow).val(act);
    346367                $('#comment_post_ID', editRow).val(p);
    347368                $('#comment_ID', editRow).val(id);
    348 
     369                t.showOverlay(id);
     370               
    349371                if ( a == 'edit' ) {
    350372                        $('#author', editRow).val( $('div.author', rowData).text() );
    351373                        $('#author-email', editRow).val( $('div.author-email', rowData).text() );
    commentReply = { 
    366388                                $('#replyrow').fadeIn(300, function(){ $(this).show() });
    367389                        });
    368390                } else {
     391                        replyButton = $('#replybtn', editRow);
    369392                        $('#edithead, #savebtn', editRow).hide();
    370393                        $('#replyhead, #replybtn', editRow).show();
    371394                        c.after(editRow);
     395                        if (c.hasClass('unapproved')) {
     396                                replyButton.text(adminCommentsL10n.replyApprove);
     397                        } else {
     398                                replyButton.text(adminCommentsL10n.reply);
     399                        }
    372400                        $('#replyrow').fadeIn(300, function(){ $(this).show() });
    373401                }
    374402
    commentReply = { 
    406434        },
    407435
    408436        send : function() {
    409                 var post = {};
     437                var post = {}, c;
    410438
    411439                $('#replysubmit .error').hide();
    412440                $('#replysubmit .waiting').show();
    commentReply = { 
    419447                post.id = post.comment_post_ID;
    420448                post.comments_listing = this.comments_listing;
    421449                post.p = $('[name=p]').val();
    422 
     450                c = $('#comment-' + post.comment_ID);
    423451                $.ajax({
    424452                        type : 'POST',
    425453                        url : ajaxurl,
    426454                        data : post,
    427                         success : function(x) { commentReply.show(x); },
     455                        success : function(x) {
     456                                var is_moderated = commentReply.comments_listing == 'moderated', id, note, n, h, author;
     457                                if (is_moderated) {
     458                                        id = c.attr('id').replace(/[^0-9]+/g, '');
     459                                        note = $('#replied-approved-notice').html();
     460                                       
     461                                        c.find('.check-column :checkbox').attr('checked', '');
     462
     463                                        if ( c.is('tr') ) {
     464                                                n = c.children(':visible').length;
     465                                                author = $('.author strong', c).text();
     466                                                h = $('<tr id="replied-approved-' + id + '" class="undo" style="display:none;"><td colspan="' + n + '">' + note + '</td></tr>');
     467                                        } else {
     468                                                author = $('.comment-author', c).text();
     469                                                h = $('<div id="replied-approved-' + id + '" style="display:none;" class="undo">' + note + '</div>');
     470                                        }
     471                                        c.before(h);
     472                                        $('strong', '#replied-approved-' + id).text(author + ' ');
     473                                        $('.avatar', c).clone().prependTo('#replied-approved-' + id + ' .replied-approved-notice-inside');
     474
     475                                        c.fadeOut(350, function(){ h.fadeIn(350); });
     476                                        commentReply.revert();
     477                                        $(commentReply).trigger('repliedAndApproved');
     478                                        return;
     479                                }
     480                               
     481                                if (c.hasClass('unapproved')) {
     482                                        c.removeClass('unapproved').addClass('approved');
     483                                        c.find('div.comment_status').html('1');
     484                                }
     485                               
     486                                commentReply.show(x);
     487                        },
    428488                        error : function(r) { commentReply.error(r); }
    429489                });
    430490
  • wp-includes/js/wp-lists.dev.js

    diff --git wp-includes/js/wp-lists.dev.js wp-includes/js/wp-lists.dev.js
    index d425931..a8d32f8 100644
    wpList = { 
    142142                if ( !s.data._ajax_nonce ) { return true; }
    143143
    144144                element = $('#' + s.element);
    145 
    146145                if ( 'none' != s.delColor ) {
    147146                        element.css( 'backgroundColor', s.delColor ).fadeOut( 350, function(){
    148147                                list.wpList.recolor();
  • wp-includes/script-loader.php

    diff --git wp-includes/script-loader.php wp-includes/script-loader.php
    index 706fd0a..0df59e4 100644
    function wp_default_scripts( &$scripts ) { 
    316316                $scripts->add_data( 'admin-comments', 'group', 1 );
    317317                $scripts->localize( 'admin-comments', 'adminCommentsL10n', array(
    318318                        'hotkeys_highlight_first' => isset($_GET['hotkeys_highlight_first']),
    319                         'hotkeys_highlight_last' => isset($_GET['hotkeys_highlight_last'])
     319                        'hotkeys_highlight_last' => isset($_GET['hotkeys_highlight_last']),
     320                        'replyApprove' => __( 'Approve and Reply' ),
     321                        'reply' => __( 'Reply' ),
    320322                ) );
    321323
    322324                $scripts->add( 'xfn', "/wp-admin/js/xfn$suffix.js", array('jquery'), '20100403' );