2011-05-07 04:56:00 +00:00
var theList , theExtraList , toggleWithKeyboard = false , getCount , updateCount , updatePending , dashboardTotals ;
2009-01-02 15:08:58 +00:00
( function ( $ ) {
setCommentsList = function () {
2011-05-07 04:56:00 +00:00
var totalInput , perPageInput , pageInput , lastConfidentTime = 0 , dimAfter , delBefore , updateTotalCount , delAfter , refillTheExtraList ;
2009-05-24 23:47:49 +00:00
2011-01-22 18:47:42 +00:00
totalInput = $ ( 'input[name="_total"]' , '#comments-form' );
perPageInput = $ ( 'input[name="_per_page"]' , '#comments-form' );
pageInput = $ ( 'input[name="_page"]' , '#comments-form' );
2009-01-02 15:08:58 +00:00
dimAfter = function ( r , settings ) {
2011-05-07 04:56:00 +00:00
var c = $ ( '#' + settings . element ), editRow , replyID , replyButton ;
2009-01-02 15:08:58 +00:00
2011-05-07 04:56:00 +00:00
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' );
}
2009-01-02 15:08:58 +00:00
$ ( 'span.pending-count' ). each ( function () {
2009-10-09 09:02:22 +00:00
var a = $ ( this ), n , dif ;
n = a . html (). replace ( /[^0-9]+/g , '' );
2009-01-02 15:08:58 +00:00
n = parseInt ( n , 10 );
if ( isNaN ( n ) ) return ;
2009-10-09 09:02:22 +00:00
dif = $ ( '#' + settings . element ). is ( '.' + settings . dimClass ) ? 1 : - 1 ;
n = n + dif ;
2009-01-02 15:08:58 +00:00
if ( n < 0 ) { n = 0 ; }
2011-06-02 17:05:55 +00:00
a . closest ( '.awaiting-mod' )[ 0 == n ? 'addClass' : 'removeClass' ]( 'count-0' );
2009-10-09 09:02:22 +00:00
updateCount ( a , n );
dashboardTotals ();
2009-01-02 15:08:58 +00:00
});
};
// Send current total, page, per_page and url
2009-10-08 08:24:59 +00:00
delBefore = function ( settings , list ) {
2011-05-12 22:00:31 +00:00
var cl = $ ( settings . target ). attr ( 'class' ), id , el , n , h , a , author , action = false ;
2009-10-08 08:24:59 +00:00
settings . data . _total = totalInput . val () || 0 ;
settings . data . _per_page = perPageInput . val () || 0 ;
settings . data . _page = pageInput . val () || 0 ;
2009-01-02 15:08:58 +00:00
settings . data . _url = document . location . href ;
2011-04-30 02:15:08 +00:00
settings . data . comment_status = $ ( 'input[name="comment_status"]' , '#comments-form' ). val ();
2009-02-07 15:26:01 +00:00
2009-11-27 10:34:09 +00:00
if ( cl . indexOf ( ':trash=1' ) != - 1 )
action = 'trash' ;
else if ( cl . indexOf ( ':spam=1' ) != - 1 )
action = 'spam' ;
if ( action ) {
2009-10-08 08:24:59 +00:00
id = cl . replace ( /.*?comment-([0-9]+).*/ , '$1' );
el = $ ( '#comment-' + id );
2009-11-27 10:34:09 +00:00
note = $ ( '#' + action + '-undo-holder' ). html ();
2009-10-08 08:24:59 +00:00
2011-05-25 01:04:12 +00:00
el . find ( '.check-column :checkbox' ). prop ( 'checked' , false ); // Uncheck the row so as not to be affected by Bulk Edits.
2010-04-18 07:37:45 +00:00
2009-11-03 08:28:59 +00:00
if ( el . siblings ( '#replyrow' ). length && commentReply . cid == id )
commentReply . close ();
2009-10-08 08:24:59 +00:00
if ( el . is ( 'tr' ) ) {
n = el . children ( ':visible' ). length ;
2009-11-26 04:37:39 +00:00
author = $ ( '.author strong' , el ). text ();
2009-11-27 10:34:09 +00:00
h = $ ( '<tr id="undo-' + id + '" class="undo un' + action + '" style="display:none;"><td colspan="' + n + '">' + note + '</td></tr>' );
2009-10-08 08:24:59 +00:00
} else {
2009-11-26 04:37:39 +00:00
author = $ ( '.comment-author' , el ). text ();
2009-11-27 10:34:09 +00:00
h = $ ( '<div id="undo-' + id + '" style="display:none;" class="undo un' + action + '">' + note + '</div>' );
2009-10-08 08:24:59 +00:00
}
el . before ( h );
2009-11-27 10:34:09 +00:00
$ ( 'strong' , '#undo-' + id ). text ( author + ' ' );
a = $ ( '.undo a' , '#undo-' + id );
a . attr ( 'href' , 'comment.php?action=un' + action + 'comment&c=' + id + '&_wpnonce=' + settings . data . _ajax_nonce );
2011-05-12 22:00:31 +00:00
a . attr ( 'class' , 'delete:the-comment-list:comment-' + id + '::un' + action + '=1 vim-z vim-destructive' );
2009-11-27 10:34:09 +00:00
$ ( '.avatar' , el ). clone (). prependTo ( '#undo-' + id + ' .' + action + '-undo-inside' );
2009-10-08 08:24:59 +00:00
a . click ( function (){
list . wpList . del ( this );
2009-11-29 10:29:12 +00:00
$ ( '#undo-' + id ). css ( { backgroundColor : '#ceb' } ). fadeOut ( 350 , function (){
2009-10-08 08:24:59 +00:00
$ ( this ). remove ();
2009-11-03 08:28:59 +00:00
$ ( '#comment-' + id ). css ( 'backgroundColor' , '' ). fadeIn ( 300 , function (){ $ ( this ). show () });
2009-10-08 08:24:59 +00:00
});
return false ;
});
}
2009-01-02 15:08:58 +00:00
return settings ;
};
2009-10-08 08:24:59 +00:00
// Updates the current total (as displayed visibly)
2009-01-02 15:08:58 +00:00
updateTotalCount = function ( total , time , setConfidentTime ) {
2009-10-09 09:02:22 +00:00
if ( time < lastConfidentTime )
2009-01-02 15:08:58 +00:00
return ;
2009-10-09 09:02:22 +00:00
if ( setConfidentTime )
2009-01-02 15:08:58 +00:00
lastConfidentTime = time ;
2009-10-09 09:02:22 +00:00
totalInput . val ( total . toString () );
2009-01-02 15:08:58 +00:00
$ ( 'span.total-type-count' ). each ( function () {
2009-10-09 09:02:22 +00:00
updateCount ( $ ( this ), total );
2009-01-02 15:08:58 +00:00
});
};
2011-05-07 04:56:00 +00:00
dashboardTotals = function ( n ) {
2009-10-09 09:02:22 +00:00
var dash = $ ( '#dashboard_right_now' ), total , appr , totalN , apprN ;
n = n || 0 ;
if ( isNaN ( n ) || ! dash . length )
return ;
total = $ ( 'span.total-count' , dash );
appr = $ ( 'span.approved-count' , dash );
totalN = getCount ( total );
2009-11-30 01:53:25 +00:00
totalN = totalN + n ;
apprN = totalN - getCount ( $ ( 'span.pending-count' , dash ) ) - getCount ( $ ( 'span.spam-count' , dash ) );
updateCount ( total , totalN );
updateCount ( appr , apprN );
2011-05-07 04:56:00 +00:00
};
2009-10-09 09:02:22 +00:00
2011-05-07 04:56:00 +00:00
getCount = function ( el ) {
2009-10-09 09:02:22 +00:00
var n = parseInt ( el . html (). replace ( /[^0-9]+/g , '' ), 10 );
if ( isNaN ( n ) )
return 0 ;
return n ;
2011-05-07 04:56:00 +00:00
};
2009-10-09 09:02:22 +00:00
2011-05-07 04:56:00 +00:00
updateCount = function ( el , n ) {
2009-11-13 05:39:17 +00:00
var n1 = '' ;
2009-10-09 09:02:22 +00:00
if ( isNaN ( n ) )
return ;
n = n < 1 ? '0' : n . toString ();
2009-11-13 05:39:17 +00:00
if ( n . length > 3 ) {
while ( n . length > 3 ) {
n1 = thousandsSeparator + n . substr ( n . length - 3 ) + n1 ;
n = n . substr ( 0 , n . length - 3 );
}
n = n + n1 ;
}
2009-10-09 09:02:22 +00:00
el . html ( n );
2011-05-07 04:56:00 +00:00
};
updatePending = function ( n ) {
$ ( 'span.pending-count' ). each ( function () {
var a = $ ( this );
if ( n < 0 )
n = 0 ;
2011-06-02 17:05:55 +00:00
a . closest ( '.awaiting-mod' )[ 0 == n ? 'addClass' : 'removeClass' ]( 'count-0' );
2011-05-07 04:56:00 +00:00
updateCount ( a , n );
dashboardTotals ();
});
};
2009-10-09 09:02:22 +00:00
2009-01-02 15:08:58 +00:00
// In admin-ajax.php, we send back the unix time stamp instead of 1 on success
delAfter = function ( r , settings ) {
2011-05-07 04:56:00 +00:00
var total , N , untrash = $ ( settings . target ). parent (). is ( 'span.untrash' ),
unspam = $ ( settings . target ). parent (). is ( 'span.unspam' ), spam , trash , pending ,
unapproved = $ ( '#' + settings . element ). is ( '.unapproved' );
2009-10-09 09:02:22 +00:00
function getUpdate ( s ) {
if ( $ ( settings . target ). parent (). is ( 'span.' + s ) )
return 1 ;
else if ( $ ( '#' + settings . element ). is ( '.' + s ) )
return - 1 ;
return 0 ;
}
2011-05-07 04:56:00 +00:00
2009-10-09 09:02:22 +00:00
spam = getUpdate ( 'spam' );
trash = getUpdate ( 'trash' );
if ( untrash )
trash = - 1 ;
2009-11-27 10:34:09 +00:00
if ( unspam )
spam = - 1 ;
2009-10-08 08:24:59 +00:00
2011-05-07 04:56:00 +00:00
pending = getCount ( $ ( 'span.pending-count' ). eq ( 0 ) );
2009-10-09 09:02:22 +00:00
2011-05-07 04:56:00 +00:00
if ( $ ( settings . target ). parent (). is ( 'span.unapprove' ) || ( ( untrash || unspam ) && unapproved ) ) { // we "deleted" an approved comment from the approved list by clicking "Unapprove"
pending = pending + 1 ;
} else if ( unapproved ) { // we deleted a formerly unapproved comment
pending = pending - 1 ;
}
updatePending ( pending );
2009-01-02 15:08:58 +00:00
$ ( 'span.spam-count' ). each ( function () {
2009-10-09 09:02:22 +00:00
var a = $ ( this ), n = getCount ( a ) + spam ;
updateCount ( a , n );
2009-01-02 15:08:58 +00:00
});
2009-07-30 13:39:34 +00:00
$ ( 'span.trash-count' ). each ( function () {
2009-10-09 09:02:22 +00:00
var a = $ ( this ), n = getCount ( a ) + trash ;
updateCount ( a , n );
2009-07-21 03:11:12 +00:00
});
2009-10-09 09:02:22 +00:00
if ( $ ( '#dashboard_right_now' ). length ) {
2009-11-30 00:49:33 +00:00
N = trash ? - 1 * trash : 0 ;
dashboardTotals ( N );
2009-10-09 09:02:22 +00:00
} else {
2009-11-29 10:29:12 +00:00
total = totalInput . val () ? parseInt ( totalInput . val (), 10 ) : 0 ;
total = total - spam - trash ;
if ( total < 0 )
total = 0 ;
2009-10-09 09:02:22 +00:00
if ( ( 'object' == typeof r ) && lastConfidentTime < settings . parsed . responses [ 0 ]. supplemental . time ) {
2011-01-22 18:47:42 +00:00
total_items_i18n = settings . parsed . responses [ 0 ]. supplemental . total_items_i18n || '' ;
if ( total_items_i18n ) {
$ ( '.displaying-num' ). text ( total_items_i18n );
$ ( '.total-pages' ). text ( settings . 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 ());
}
2009-11-29 10:29:12 +00:00
updateTotalCount ( total , settings . parsed . responses [ 0 ]. supplemental . time , true );
} else {
updateTotalCount ( total , r , false );
}
2009-01-02 15:08:58 +00:00
}
2010-12-22 19:03:43 +00:00
if ( ! theExtraList || theExtraList . size () == 0 || theExtraList . children (). size () == 0 || untrash || unspam ) {
2009-01-02 15:08:58 +00:00
return ;
}
theList . get ( 0 ). wpList . add ( theExtraList . children ( ':eq(0)' ). remove (). clone () );
2010-08-19 00:06:51 +00:00
2011-01-21 21:17:12 +00:00
refillTheExtraList ();
2010-12-14 11:53:31 +00:00
};
2011-01-06 04:11:14 +00:00
2011-05-07 04:56:00 +00:00
refillTheExtraList = function ( ev ) {
var args = $ . query . get (), total_pages = $ ( '.total-pages' ). text (), per_page = $ ( 'input[name="_per_page"]' , '#comments-form' ). val ();
2011-02-09 17:35:36 +00:00
2011-01-21 21:17:12 +00:00
if ( ! args . paged )
args . paged = 1 ;
2011-02-09 17:35:36 +00:00
2010-12-14 11:53:31 +00:00
if ( args . paged > total_pages ) {
return ;
}
if ( ev ) {
theExtraList . empty ();
args . number = Math . min ( 8 , per_page ); // see WP_Comments_List_Table::prepare_items() @ class-wp-comments-list-table.php
} else {
args . number = 1 ;
2011-01-21 21:17:12 +00:00
args . offset = Math . min ( 8 , per_page ) - 1 ; // fetch only the next item on the extra list
2010-12-14 11:53:31 +00:00
}
2011-01-06 04:11:14 +00:00
2010-12-20 15:26:44 +00:00
args . no_placeholder = true ;
2010-12-14 11:53:31 +00:00
args . paged ++ ;
2011-01-22 18:47:42 +00:00
// $.query.get() needs some correction to be sent into an ajax request
if ( true === args . comment_type )
args . comment_type = '' ;
2011-01-21 21:17:12 +00:00
args = $ . extend ( args , {
'action' : 'fetch-list' ,
'list_args' : list_args ,
'_ajax_fetch_list_nonce' : $ ( '#_ajax_fetch_list_nonce' ). val ()
});
2010-12-14 11:53:31 +00:00
2011-01-21 21:17:12 +00:00
$ . ajax ({
url : ajaxurl ,
global : false ,
dataType : 'json' ,
data : args ,
success : function ( response ) {
theExtraList . get ( 0 ). wpList . add ( response . rows );
}
2010-08-19 00:06:51 +00:00
});
2011-01-21 21:17:12 +00:00
};
2009-01-02 15:08:58 +00:00
theExtraList = $ ( '#the-extra-comment-list' ). wpList ( { alt : '' , delColor : 'none' , addColor : 'none' } );
2009-10-18 05:59:03 +00:00
theList = $ ( '#the-comment-list' ). wpList ( { alt : '' , delBefore : delBefore , dimAfter : dimAfter , delAfter : delAfter , addColor : 'none' } )
. bind ( 'wpListDelEnd' , function ( e , s ){
var id = s . element . replace ( /[^0-9]+/g , '' );
2009-01-02 15:08:58 +00:00
2009-11-27 10:34:09 +00:00
if ( s . target . className . indexOf ( ':trash=1' ) != - 1 || s . target . className . indexOf ( ':spam=1' ) != - 1 )
$ ( '#undo-' + id ). fadeIn ( 300 , function (){ $ ( this ). show () });
2009-10-18 05:59:03 +00:00
});
2009-01-02 15:08:58 +00:00
};
commentReply = {
2009-11-03 08:28:59 +00:00
cid : '' ,
act : '' ,
2009-01-02 15:08:58 +00:00
init : function () {
var row = $ ( '#replyrow' );
$ ( 'a.cancel' , row ). click ( function () { return commentReply . revert (); });
2009-01-13 01:31:19 +00:00
$ ( '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 ;
}
});
2009-01-02 15:08:58 +00:00
// add events
$ ( '#the-comment-list .column-comment > p' ). dblclick ( function (){
2009-01-12 13:43:17 +00:00
commentReply . toggle ( $ ( this ). parent ());
});
2009-01-02 15:08:58 +00:00
$ ( '#doaction, #doaction2, #post-query-submit' ). click ( function ( e ){
if ( $ ( '#the-comment-list #replyrow' ). length > 0 )
commentReply . close ();
});
2009-05-24 23:47:49 +00:00
2009-01-13 01:31:19 +00:00
this . comments_listing = $ ( '#comments-form > input[name="comment_status"]' ). val () || '' ;
2011-01-06 04:11:14 +00:00
2011-01-18 17:32:35 +00:00
/* $(listTable).bind('beforeChangePage', function(){
2010-12-20 17:53:50 +00:00
commentReply.close();
2011-01-18 17:32:35 +00:00
}); */
2009-01-02 15:08:58 +00:00
},
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 < 1 )
return false ;
$ ( '#replyrow' ). fadeOut ( 'fast' , function (){
commentReply . close ();
});
return false ;
},
close : function () {
2009-11-03 08:28:59 +00:00
var c ;
if ( this . cid ) {
c = $ ( '#comment-' + this . cid );
2011-08-20 19:55:51 +00:00
if ( typeof QTags != 'undefined' )
QTags . closeAllTags ( 'replycontent' );
2009-11-03 08:28:59 +00:00
if ( this . act == 'edit-comment' )
c . fadeIn ( 300 , function (){ c . show () }). css ( 'backgroundColor' , '' );
$ ( '#replyrow' ). hide ();
$ ( '#com-reply' ). append ( $ ( '#replyrow' ) );
$ ( '#replycontent' ). val ( '' );
$ ( 'input' , '#edithead' ). val ( '' );
$ ( '.error' , '#replysubmit' ). html ( '' ). hide ();
$ ( '.waiting' , '#replysubmit' ). hide ();
2011-08-20 19:55:51 +00:00
$ ( '#replycontainer, #replycontent' ). height ( 120 );
2009-11-03 08:28:59 +00:00
this . cid = '' ;
}
2009-01-02 15:08:58 +00:00
},
open : function ( id , p , a ) {
2011-08-20 19:55:51 +00:00
var t = this , editRow , rowData , act , c = $ ( '#comment-' + id ), h = c . height (), replyButton ;
2011-05-07 04:56:00 +00:00
2009-01-02 15:08:58 +00:00
t . close ();
2009-11-03 08:28:59 +00:00
t . cid = id ;
2009-01-02 15:08:58 +00:00
2009-11-03 08:28:59 +00:00
editRow = $ ( '#replyrow' );
rowData = $ ( '#inline-' + id );
2009-01-02 15:08:58 +00:00
act = t . act = ( a == 'edit' ) ? 'edit-comment' : 'replyto-comment' ;
$ ( '#action' , editRow ). val ( act );
$ ( '#comment_post_ID' , editRow ). val ( p );
$ ( '#comment_ID' , editRow ). val ( id );
2011-08-20 19:55:51 +00:00
if ( h > 220 )
$ ( '#replycontainer, #replycontent' , editRow ). height ( h - 104 );
2009-01-02 15:08:58 +00:00
if ( a == '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' , editRow ). hide ();
2009-11-03 08:28:59 +00:00
c . after ( editRow ). fadeOut ( 'fast' , function (){
$ ( '#replyrow' ). fadeIn ( 300 , function (){ $ ( this ). show () });
2009-01-02 15:08:58 +00:00
});
} else {
2011-05-07 04:56:00 +00:00
replyButton = $ ( '#replybtn' , editRow );
2009-01-02 15:08:58 +00:00
$ ( '#edithead, #savebtn' , editRow ). hide ();
$ ( '#replyhead, #replybtn' , editRow ). show ();
2009-11-03 08:28:59 +00:00
c . after ( editRow );
2011-05-07 04:56:00 +00:00
if ( c . hasClass ( 'unapproved' ) ) {
replyButton . text ( adminCommentsL10n . replyApprove );
} else {
replyButton . text ( adminCommentsL10n . reply );
}
2009-11-03 08:28:59 +00:00
$ ( '#replyrow' ). fadeIn ( 300 , function (){ $ ( this ). show () });
2009-01-02 15:08:58 +00:00
}
setTimeout ( function () {
var rtop , rbottom , scrollTop , vp , scrollBottom ;
2009-05-24 23:47:49 +00:00
2009-01-02 15:08:58 +00:00
rtop = $ ( '#replyrow' ). offset (). top ;
rbottom = rtop + $ ( '#replyrow' ). height ();
scrollTop = window . pageYOffset || document . documentElement . scrollTop ;
vp = document . documentElement . clientHeight || self . innerHeight || 0 ;
scrollBottom = scrollTop + vp ;
if ( scrollBottom - 20 < rbottom )
window . scroll ( 0 , rbottom - vp + 35 );
else if ( rtop - 20 < scrollTop )
window . scroll ( 0 , rtop - 35 );
$ ( '#replycontent' ). focus (). keyup ( function ( e ){
2009-11-03 08:28:59 +00:00
if ( e . which == 27 )
commentReply . revert (); // close on Escape
2009-01-02 15:08:58 +00:00
});
}, 600 );
return false ;
},
send : function () {
var post = {};
2010-12-22 19:03:43 +00:00
$ ( '#replysubmit .error' ). hide ();
2009-01-02 15:08:58 +00:00
$ ( '#replysubmit .waiting' ). show ();
2011-05-21 17:11:13 +00:00
$ ( '#replyrow input' ). not ( ':button' ). each ( function () {
2009-01-02 15:08:58 +00:00
post [ $ ( this ). attr ( 'name' ) ] = $ ( this ). val ();
});
post . content = $ ( '#replycontent' ). val ();
post . id = post . comment_post_ID ;
2009-01-13 01:31:19 +00:00
post . comments_listing = this . comments_listing ;
2011-04-30 02:15:08 +00:00
post . p = $ ( '[name="p"]' ). val ();
2009-01-02 15:08:58 +00:00
2011-05-07 04:56:00 +00:00
if ( $ ( '#comment-' + $ ( '#comment_ID' ). val ()). hasClass ( 'unapproved' ) )
post . approve_parent = 1 ;
2009-01-02 15:08:58 +00:00
$ . ajax ({
type : 'POST' ,
2009-10-20 17:45:12 +00:00
url : ajaxurl ,
2009-01-02 15:08:58 +00:00
data : post ,
success : function ( x ) { commentReply . show ( x ); },
error : function ( r ) { commentReply . error ( r ); }
});
return false ;
},
show : function ( xml ) {
2011-05-07 04:56:00 +00:00
var t = this , r , c , id , bg , pid ;
2009-01-02 15:08:58 +00:00
2011-05-21 17:11:13 +00:00
t . revert ();
2009-01-02 15:08:58 +00:00
if ( typeof ( xml ) == 'string' ) {
2011-05-07 04:56:00 +00:00
t . error ({ 'responseText' : xml });
2009-01-02 15:08:58 +00:00
return false ;
}
r = wpAjax . parseAjaxResponse ( xml );
if ( r . errors ) {
2011-05-07 04:56:00 +00:00
t . error ({ 'responseText' : wpAjax . broken });
2009-01-02 15:08:58 +00:00
return false ;
}
r = r . responses [ 0 ];
c = r . data ;
2009-11-03 08:28:59 +00:00
id = '#comment-' + r . id ;
2011-05-07 04:56:00 +00:00
if ( 'edit-comment' == t . act )
2009-11-03 08:28:59 +00:00
$ ( id ). remove ();
2009-01-02 15:08:58 +00:00
2011-05-07 04:56:00 +00:00
if ( r . supplemental . parent_approved ) {
2011-05-21 17:11:13 +00:00
pid = $ ( '#comment-' + r . supplemental . parent_approved );
2011-05-07 04:56:00 +00:00
updatePending ( getCount ( $ ( 'span.pending-count' ). eq ( 0 ) ) - 1 );
2011-06-10 23:01:45 +00:00
2011-05-21 17:11:13 +00:00
if ( this . comments_listing == 'moderated' ) {
pid . animate ( { 'backgroundColor' : '#CCEEBB' }, 400 , function (){
pid . fadeOut ();
});
return ;
}
2011-05-07 04:56:00 +00:00
}
2011-05-21 17:11:13 +00:00
$ ( c ). hide ()
$ ( '#replyrow' ). after ( c );
id = $ ( id );
t . addEvents ( id );
2011-06-10 23:01:45 +00:00
bg = id . hasClass ( 'unapproved' ) ? '#FFFFE0' : id . closest ( '.widefat' ). css ( 'backgroundColor' );
2009-01-02 15:08:58 +00:00
2011-05-21 17:11:13 +00:00
id . animate ( { 'backgroundColor' : '#CCEEBB' }, 300 )
2011-05-07 04:56:00 +00:00
. animate ( { 'backgroundColor' : bg }, 300 , function () {
2011-05-21 17:11:13 +00:00
if ( pid && pid . length ) {
pid . animate ( { 'backgroundColor' : '#CCEEBB' }, 300 )
. animate ( { 'backgroundColor' : bg }, 300 )
. removeClass ( 'unapproved' ). addClass ( 'approved' )
. find ( 'div.comment_status' ). html ( '1' );
2011-05-07 04:56:00 +00:00
}
});
2009-01-02 15:08:58 +00:00
},
error : function ( r ) {
var er = r . statusText ;
$ ( '#replysubmit .waiting' ). hide ();
if ( r . responseText )
er = r . responseText . replace ( /<.[^<>]*?>/g , '' );
if ( er )
$ ( '#replysubmit .error' ). html ( er ). show ();
}
};
2009-01-12 13:43:17 +00:00
2009-01-02 15:08:58 +00:00
$ ( document ). ready ( function (){
var make_hotkeys_redirect , edit_comment , toggle_all , make_bulk ;
2009-01-12 13:43:17 +00:00
2009-02-07 15:26:01 +00:00
setCommentsList ();
2009-01-02 15:08:58 +00:00
commentReply . init ();
2010-11-20 22:02:25 +00:00
$ ( document ). delegate ( 'span.delete a.delete' , 'click' , function (){ return false ;});
2009-01-02 15:08:58 +00:00
2011-08-03 10:36:18 +00:00
if ( typeof QTags != 'undefined' )
2011-08-05 04:09:22 +00:00
quicktags ({ id : 'replycontent' , buttons : 'strong,em,link,block,del,ins,img,ul,ol,li,code,spell,close' });
2009-01-02 15:08:58 +00:00
if ( typeof $ . table_hotkeys != 'undefined' ) {
make_hotkeys_redirect = function ( which ) {
return function () {
var first_last , l ;
2009-05-24 23:47:49 +00:00
2009-01-02 15:08:58 +00:00
first_last = 'next' == which ? 'first' : 'last' ;
2011-01-21 20:28:41 +00:00
l = $ ( '.tablenav-pages .' + which + '-page:not(.disabled)' );
2009-01-02 15:08:58 +00:00
if ( l . length )
window . location = l [ 0 ]. href . replace ( /\&hotkeys_highlight_(first|last)=1/g , '' ) + '&hotkeys_highlight_' + first_last + '=1' ;
}
};
2009-10-09 09:02:22 +00:00
2009-01-02 15:08:58 +00:00
edit_comment = function ( event , current_row ) {
window . location = $ ( 'span.edit a' , current_row ). attr ( 'href' );
};
2009-10-09 09:02:22 +00:00
2009-01-02 15:08:58 +00:00
toggle_all = function () {
toggleWithKeyboard = true ;
2011-05-25 01:04:12 +00:00
$ ( 'input:checkbox' , '#cb' ). click (). prop ( 'checked' , false );
2009-01-02 15:08:58 +00:00
toggleWithKeyboard = false ;
2009-10-09 09:02:22 +00:00
};
2009-01-02 15:08:58 +00:00
make_bulk = function ( value ) {
2009-10-09 09:02:22 +00:00
return function () {
var scope = $ ( 'select[name="action"]' );
2011-05-25 01:04:12 +00:00
$ ( 'option[value="' + value + '"]' , scope ). prop ( 'selected' , true );
2010-12-01 16:51:20 +00:00
$ ( '#doaction' ). click ();
2009-01-02 15:08:58 +00:00
}
};
2009-10-09 09:02:22 +00:00
$ . table_hotkeys (
$ ( 'table.widefat' ),
2009-10-09 23:28:06 +00:00
[ 'a' , 'u' , 's' , 'd' , 'r' , 'q' , 'z' , [ 'e' , edit_comment ], [ 'shift+x' , toggle_all ],
2010-12-01 16:51:20 +00:00
[ 'shift+a' , make_bulk ( 'approve' )], [ 'shift+s' , make_bulk ( 'spam' )],
2009-10-09 09:02:22 +00:00
[ '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' ) }
2009-01-02 15:08:58 +00:00
);
}
});
})( jQuery );