Вход Регистрация
Файл: wordpress/wp-admin/js/edit-comments.js
Строк: 792
<?php
/* global adminCommentsL10n, thousandsSeparator, list_args, QTags, ajaxurl, wpAjax */
var setCommentsListtheListtheExtraListcommentReply;

(function($) {
var 
getCountupdateCountupdatePending;

setCommentsList = function() {
    var 
totalInputperPageInputpageInputdimAfterdelBeforeupdateTotalCountdelAfterrefillTheExtraListdiff,
        
lastConfidentTime 0;

    
totalInput = $('input[name="_total"]''#comments-form');
    
perPageInput = $('input[name="_per_page"]''#comments-form');
    
pageInput = $('input[name="_page"]''#comments-form');

    
dimAfter = function( rsettings ) {
        var 
editRowreplyIDreplyButton,
            
= $( '#' settings.element );

        
editRow = $('#replyrow');
        
replyID = $('#comment_ID'editRow).val();
        
replyButton = $('#replybtn'editRow);

        if ( 
c.is('.unapproved') ) {
            if ( 
settings.data.id == replyID )
                
replyButton.text(adminCommentsL10n.replyApprove);

            
c.find('div.comment_status').html('0');
        } else {
            if ( 
settings.data.id == replyID )
                
replyButton.text(adminCommentsL10n.reply);

            
c.find('div.comment_status').html('1');
        }

        
diff = $('#' settings.element).is('.' settings.dimClass) ? : -1;
        
updatePendingdiff );
    };

    
// Send current total, page, per_page and url
    
delBefore = function( settings, list ) {
        var 
noteidelnhaauthor,
            
action false,
            
wpListsData = $( settings.target ).attr'data-wp-lists' );

        
settings.data._total totalInput.val() || 0;
        
settings.data._per_page perPageInput.val() || 0;
        
settings.data._page pageInput.val() || 0;
        
settings.data._url document.location.href;
        
settings.data.comment_status = $('input[name="comment_status"]''#comments-form').val();

        if ( 
wpListsData.indexOf(':trash=1') != -)
            
action 'trash';
        else if ( 
wpListsData.indexOf(':spam=1') != -)
            
action 'spam';

        if ( 
action ) {
            
id wpListsData.replace(/.*?comment-([0-9]+).*/, '$1');
            
el = $('#comment-' id);
            
note = $('#' action '-undo-holder').html();

            
el.find('.check-column :checkbox').prop('checked'false); // Uncheck the row so as not to be affected by Bulk Edits.

            
if ( el.siblings('#replyrow').length && commentReply.cid == id )
                
commentReply.close();

            if ( 
el.is('tr') ) {
                
el.children(':visible').length;
                
author = $('.author strong'el).text();
                
= $('<tr id="undo-' id '" class="undo un' action '" style="display:none;"><td colspan="' '">' note '</td></tr>');
            } else {
                
author = $('.comment-author'el).text();
                
= $('<div id="undo-' id '" style="display:none;" class="undo un' action '">' note '</div>');
            }

            
el.before(h);

            $(
'strong''#undo-' id).text(author);
            
= $('.undo a''#undo-' id);
            
a.attr('href''comment.php?action=un' action 'comment&c=' id '&_wpnonce=' settings.data._ajax_nonce);
            
a.attr('data-wp-lists''delete:the-comment-list:comment-' id '::un' action '=1');
            
a.attr('class''vim-z vim-destructive');
            $(
'.avatar'el).first().clone().prependTo('#undo-' id ' .' action '-undo-inside');

            
a.click(function(){
                list.
wpList.del(this);
                $(
'#undo-' id).css( {backgroundColor:'#ceb'} ).fadeOut(350, function(){
                    $(
this).remove();
                    $(
'#comment-' id).css('backgroundColor''').fadeIn(300, function(){ $(this).show(); });
                });
                return 
false;
            });
        }

        return 
settings;
    };

    
// Updates the current total (stored in the _total input)
    
updateTotalCount = function( totaltimesetConfidentTime ) {
        if ( 
time lastConfidentTime )
            return;

        if ( 
setConfidentTime )
            
lastConfidentTime time;

        
totalInput.valtotal.toString() );
    };

    
getCount = function(el) {
        var 
parseIntel.html().replace(/[^0-9]+/g''), 10 );
        if ( 
isNaN(n) )
            return 
0;
        return 
n;
    };

    
updateCount = function(eln) {
        var 
n1 '';
        if ( 
isNaN(n) )
            return;
        
'0' n.toString();
        if ( 
n.length ) {
            while ( 
n.length ) {
                
n1 thousandsSeparator n.substr(n.length 3) + n1;
                
n.substr(0n.length 3);
            }
            
n1;
        }
        
el.html(n);
    };

    
updatePending = function( diff ) {
        $(
'span.pending-count').each(function() {
            var 
= $(this), getCount(a) + diff;
            if ( 
)
                
0;
            
a.closest('.awaiting-mod')[ === 'addClass' 'removeClass' ]('count-0');
            
updateCounta);
        });
    };

    
// In admin-ajax.php, we send back the unix time stamp instead of 1 on success
    
delAfter = function( rsettings ) {
        var 
total_items_i18ntotalspamtrashpending,
            
untrash = $(settings.target).parent().is('span.untrash'),
            
unspam = $(settings.target).parent().is('span.unspam'),
            
unapproved = $('#' settings.element).is('.unapproved');

        function 
getUpdate(s) {
            if ( $(
settings.target).parent().is('span.' s) )
                return 
1;
            else if ( $(
'#' settings.element).is('.' s) )
                return -
1;

            return 
0;
        }

        if ( 
untrash )
            
trash = -1;
        else
            
trash getUpdate('trash');

        if ( 
unspam )
            
spam = -1;
        else
            
spam getUpdate('spam');

        if ( $(
settings.target).parent().is('span.unapprove') || ( ( untrash || unspam ) && unapproved ) ) {
            
// a comment was 'deleted' from another list (e.g. approved, spam, trash) and moved to pending,
            // or a trash/spam of a pending comment was undone
            
pending 1;
        } else if ( 
unapproved ) {
            
// a pending comment was trashed/spammed/approved
            
pending = -1;
        }

        if ( 
pending )
            
updatePending(pending);

        $(
'span.spam-count').each( function() {
            var 
= $(this), getCount(a) + spam;
            
updateCount(an);
        });

        $(
'span.trash-count').each( function() {
            var 
= $(this), getCount(a) + trash;
            
updateCount(an);
        });

        if ( ! $(
'#dashboard_right_now').length ) {
            
total totalInput.val() ? parseInttotalInput.val(), 10 ) : 0;
            if ( $(
settings.target).parent().is('span.undo') )
                
total++;
            else
                
total--;

            if ( 
total )
                
total 0;

            if ( ( 
'object' == typeof r ) && lastConfidentTime settings.parsed.responses[0].supplemental.time ) {
                
total_items_i18n settings.parsed.responses[0].supplemental.total_items_i18n || '';
                if ( 
total_items_i18n ) {
                    $(
'.displaying-num').texttotal_items_i18n );
                    $(
'.total-pages').textsettings.parsed.responses[0].supplemental.total_pages_i18n );
                    $(
'.tablenav-pages').find('.next-page, .last-page').toggleClass('disabled'settings.parsed.responses[0].supplemental.total_pages == $('.current-page').val());
                }
                
updateTotalCounttotalsettings.parsed.responses[0].supplemental.timetrue );
            } else {
                
updateTotalCounttotalrfalse );
            }
        }

        if ( ! 
theExtraList || theExtraList.size() === || theExtraList.children().size() === || untrash || unspam ) {
            return;
        }

        
theList.get(0).wpList.addtheExtraList.children(':eq(0)').remove().clone() );

        
refillTheExtraList();
    };

    
refillTheExtraList = function(ev) {
        var 
args = $.query.get(), total_pages = $('.total-pages').text(), per_page = $('input[name="_per_page"]''#comments-form').val();

        if (! 
args.paged)
            
args.paged 1;

        if (
args.paged total_pages) {
            return;
        }

        if (
ev) {
            
theExtraList.empty();
            
args.number Math.min(8per_page); // see WP_Comments_List_Table::prepare_items() @ class-wp-comments-list-table.php
        
} else {
            
args.number 1;
            
args.offset Math.min(8per_page) - 1// fetch only the next item on the extra list
        
}

        
args.no_placeholder true;

        
args.paged ++;

        
// $.query.get() needs some correction to be sent into an ajax request
        
if ( true === args.comment_type )
            
args.comment_type '';

        
args = $.extend(args, {
            
'action''fetch-list',
            
'list_args'list_args,
            
'_ajax_fetch_list_nonce': $('#_ajax_fetch_list_nonce').val()
        });

        $.
ajax({
            
urlajaxurl,
            global: 
false,
            
dataType'json',
            
dataargs,
            
success: function(response) {
                
theExtraList.get(0).wpList.addresponse.rows );
            }
        });
    };

    
theExtraList = $('#the-extra-comment-list').wpList( { alt''delColor'none'addColor'none' } );
    
theList = $('#the-comment-list').wpList( { alt''delBeforedelBeforedimAfterdimAfterdelAfterdelAfteraddColor'none' } )
        .
bind('wpListDelEnd', function(es){
            var 
wpListsData = $(s.target).attr('data-wp-lists'), id s.element.replace(/[^0-9]+/g'');

            if ( 
wpListsData.indexOf(':trash=1') != -|| wpListsData.indexOf(':spam=1') != -)
                $(
'#undo-' id).fadeIn(300, function(){ $(this).show(); });
        });
};

commentReply = {
    
cid '',
    
act '',

    
init : function() {
        var 
row = $('#replyrow');

        $(
'a.cancel'row).click(function() { return commentReply.revert(); });
        $(
'a.save'row).click(function() { return commentReply.send(); });
        $(
'input#author, input#author-email, input#author-url'row).keypress(function(e){
            if ( 
e.which == 13 ) {
                
commentReply.send();
                
e.preventDefault();
                return 
false;
            }
        });

        
// add events
        
$('#the-comment-list .column-comment > p').dblclick(function(){
            
commentReply.toggle($(this).parent());
        });

        $(
'#doaction, #doaction2, #post-query-submit').click(function(){
            if ( $(
'#the-comment-list #replyrow').length )
                
commentReply.close();
        });

        
this.comments_listing = $('#comments-form > input[name="comment_status"]').val() || '';

        
/* $(listTable).bind('beforeChangePage', function(){
            commentReply.close();
        }); */
    
},

    
addEvents : function(r) {
        
r.each(function() {
            $(
this).find('.column-comment > p').dblclick(function(){
                
commentReply.toggle($(this).parent());
            });
        });
    },

    
toggle : function(el) {
        if ( $(
el).css('display') != 'none' )
            $(
el).find('a.vim-q').click();
    },

    
revert : function() {

        if ( $(
'#the-comment-list #replyrow').length )
            return 
false;

        $(
'#replyrow').fadeOut('fast', function(){
            
commentReply.close();
        });

        return 
false;
    },

    
close : function() {
        var 
creplyrow = $('#replyrow');

        
// replyrow is not showing?
        
if ( replyrow.parent().is('#com-reply') )
            return;

        if ( 
this.cid && this.act == 'edit-comment' ) {
            
= $('#comment-' this.cid);
            
c.fadeIn(300, function(){ c.show(); }).css('backgroundColor''');
        }

        
// reset the Quicktags buttons
        
if ( typeof QTags != 'undefined' )
            
QTags.closeAllTags('replycontent');

        $(
'#add-new-comment').css('display''');

        
replyrow.hide();
        $(
'#com-reply').appendreplyrow );
        $(
'#replycontent').css('height''').val('');
        $(
'#edithead input').val('');
        $(
'.error'replyrow).empty().hide();
        $( 
'.spinner'replyrow ).removeClass'is-active' );

        
this.cid '';
    },

    
open : function(comment_idpost_idaction) {
        var 
editRowrowDataactreplyButtoneditHeight,
            
this,
            
= $('#comment-' comment_id),
            
c.height();

        
t.close();
        
t.cid comment_id;

        
editRow = $('#replyrow');
        
rowData = $('#inline-'+comment_id);
        
action action || 'replyto';
        
act 'edit' == action 'edit' 'replyto';
        
act t.act act '-comment';

        $(
'#action'editRow).val(act);
        $(
'#comment_post_ID'editRow).val(post_id);
        $(
'#comment_ID'editRow).val(comment_id);

        if ( 
action == 'edit' ) {
            $(
'#author'editRow).val( $('div.author'rowData).text() );
            $(
'#author-email'editRow).val( $('div.author-email'rowData).text() );
            $(
'#author-url'editRow).val( $('div.author-url'rowData).text() );
            $(
'#status'editRow).val( $('div.comment_status'rowData).text() );
            $(
'#replycontent'editRow).val( $('textarea.comment'rowData).val() );
            $(
'#edithead, #savebtn'editRow).show();
            $(
'#replyhead, #replybtn, #addhead, #addbtn'editRow).hide();

            if ( 
120 ) {
                
// Limit the maximum height when editing very long comments to make it more manageable.
                // The textarea is resizable in most browsers, so the user can adjust it if needed.
                
editHeight 500 500 h;
                $(
'#replycontent'editRow).css('height'editHeight 'px');
            }

            
c.aftereditRow ).fadeOut('fast', function(){
                $(
'#replyrow').fadeIn(300, function(){ $(this).show(); });
            });
        } else if ( 
action == 'add' ) {
            $(
'#addhead, #addbtn'editRow).show();
            $(
'#replyhead, #replybtn, #edithead, #editbtn'editRow).hide();
            $(
'#the-comment-list').prepend(editRow);
            $(
'#replyrow').fadeIn(300);
        } else {
            
replyButton = $('#replybtn'editRow);
            $(
'#edithead, #savebtn, #addhead, #addbtn'editRow).hide();
            $(
'#replyhead, #replybtn'editRow).show();
            
c.after(editRow);

            if ( 
c.hasClass('unapproved') ) {
                
replyButton.text(adminCommentsL10n.replyApprove);
            } else {
                
replyButton.text(adminCommentsL10n.reply);
            }

            $(
'#replyrow').fadeIn(300, function(){ $(this).show(); });
        }

        
setTimeout(function() {
            var 
rtoprbottomscrollTopvpscrollBottom;

            
rtop = $('#replyrow').offset().top;
            
rbottom rtop + $('#replyrow').height();
            
scrollTop window.pageYOffset || document.documentElement.scrollTop;
            
vp document.documentElement.clientHeight || window.innerHeight || 0;
            
scrollBottom scrollTop vp;

            if ( 
scrollBottom 20 rbottom )
                
window.scroll(0rbottom vp 35);
            else if ( 
rtop 20 scrollTop )
                
window.scroll(0rtop 35);

            $(
'#replycontent').focus().keyup(function(e){
                if ( 
e.which == 27 )
                    
commentReply.revert(); // close on Escape
            
});
        }, 
600);

        return 
false;
    },

    
send : function() {
        var 
post = {};

        $(
'#replysubmit .error').hide();
        $( 
'#replysubmit .spinner' ).addClass'is-active' );

        $(
'#replyrow input').not(':button').each(function() {
            var 
= $(this);
            
postt.attr('name') ] = t.val();
        });

        
post.content = $('#replycontent').val();
        
post.id post.comment_post_ID;
        
post.comments_listing this.comments_listing;
        
post.= $('[name="p"]').val();

        if ( $(
'#comment-' + $('#comment_ID').val()).hasClass('unapproved') )
            
post.approve_parent 1;

        $.
ajax({
            
type 'POST',
            
url ajaxurl,
            
data post,
            
success : function(x) { commentReply.show(x); },
            
error : function(r) { commentReply.error(r); }
        });

        return 
false;
    },

    
show : function(xml) {
        var 
thisrcidbgpid;

        if ( 
typeof(xml) == 'string' ) {
            
t.error({'responseText'xml});
            return 
false;
        }

        
wpAjax.parseAjaxResponse(xml);
        if ( 
r.errors ) {
            
t.error({'responseText'wpAjax.broken});
            return 
false;
        }

        
t.revert();

        
r.responses[0];
        
id '#comment-' r.id;

        if ( 
'edit-comment' == t.act )
            $(
id).remove();

        if ( 
r.supplemental.parent_approved ) {
            
pid = $('#comment-' r.supplemental.parent_approved);
            
updatePending( -);

            if ( 
this.comments_listing == 'moderated' ) {
                
pid.animate( { 'backgroundColor':'#CCEEBB' }, 400, function(){
                    
pid.fadeOut();
                });
                return;
            }
        }

        
= $.trim(r.data); // Trim leading whitespaces
        
$(c).hide();
        $(
'#replyrow').after(c);

        
id = $(id);
        
t.addEvents(id);
        
bg id.hasClass('unapproved') ? '#FFFFE0' id.closest('.widefat, .postbox').css('backgroundColor');

        
id.animate( { 'backgroundColor':'#CCEEBB' }, 300 )
            .
animate( { 'backgroundColor'bg }, 300, function() {
                if ( 
pid && pid.length ) {
                    
pid.animate( { 'backgroundColor':'#CCEEBB' }, 300 )
                        .
animate( { 'backgroundColor'bg }, 300 )
                        .
removeClass('unapproved').addClass('approved')
                        .
find('div.comment_status').html('1');
                }
            });

    },

    
error : function(r) {
        var 
er r.statusText;

        $( 
'#replysubmit .spinner' ).removeClass'is-active' );

        if ( 
r.responseText )
            
er r.responseText.replace( /<.[^<>]*?>/g, '' );

        if ( er )
            $('#replysubmit .error').html(er).show();

    },

    addcomment: function(post_id) {
        var t = this;

        $('#add-new-comment').fadeOut(200, function(){
            t.open(0, post_id, 'add');
            $('table.comments-box').css('display', '');
            $('#no-comments').remove();
        });
    }
};

$(document).ready(function(){
    var make_hotkeys_redirect, edit_comment, toggle_all, make_bulk;

    setCommentsList();
    commentReply.init();
    $(document).delegate('span.delete a.delete', 'click', function(){return false;});

    if ( typeof $.table_hotkeys != 'undefined' ) {
        make_hotkeys_redirect = function(which) {
            return function() {
                var first_last, l;

                first_last = 'next' == which? 'first' : 'last';
                l = $('.tablenav-pages .'+which+'-page:not(.disabled)');
                if (l.length)
                    window.location = l[0].href.replace(/&hotkeys_highlight_(first|last)=1/g, '')+'&hotkeys_highlight_'+first_last+'=1';
            };
        };

        edit_comment = function(event, current_row) {
            window.location = $('span.edit a', current_row).attr('href');
        };

        toggle_all = function() {
            $('#cb-select-all-1').data( 'wp-toggle', 1 ).trigger( 'click' ).removeData( 'wp-toggle' );
        };

        make_bulk = function(value) {
            return function() {
                var scope = $('select[name="action"]');
                $('option[value="' + value + '"]', scope).prop('selected', true);
                $('#doaction').click();
            };
        };

        $.table_hotkeys(
            $('table.widefat'),
            [
                'a', 'u', 's', 'd', 'r', 'q', 'z',
                ['e', edit_comment],
                ['shift+x', toggle_all],
                ['shift+a', make_bulk('approve')],
                ['shift+s', make_bulk('spam')],
                ['shift+d', make_bulk('delete')],
                ['shift+t', make_bulk('trash')],
                ['shift+z', make_bulk('untrash')],
                ['shift+u', make_bulk('unapprove')]
            ],
            {
                highlight_first: adminCommentsL10n.hotkeys_highlight_first,
                highlight_last: adminCommentsL10n.hotkeys_highlight_last,
                prev_page_link_cb: make_hotkeys_redirect('prev'),
                next_page_link_cb: make_hotkeys_redirect('next'),
                hotkeys_opts: {
                    disableInInput: true,
                    type: 'keypress',
                    noDisable: '.check-column input[type="checkbox"]'
                },
                cycle_expr: '#the-comment-list tr',
                start_row_index: 0
            }
        );
    }

    // Quick Edit and Reply have an inline comment editor.
    $( '#the-comment-list' ).on( 'click', '.comment-inline', function (e) {
        e.preventDefault();
        var $el = $( this ),
            action = 'replyto';

        if ( 'undefined' !== typeof $el.data( 'action' ) ) {
            action = $el.data( 'action' );
        }

        commentReply.open( $el.data( 'commentId' ), $el.data( 'postId' ), action );
    } );
});

})(jQuery);
?>
Онлайн: 0
Реклама