2011-05-07 00:56:00 -04:00
var theList , theExtraList , toggleWithKeyboard = false , getCount , updateCount , updatePending , dashboardTotals ;
2009-01-02 10:08:58 -05:00
( function ( $ ) {
setCommentsList = function ( ) {
2011-05-07 00:56:00 -04:00
var totalInput , perPageInput , pageInput , lastConfidentTime = 0 , dimAfter , delBefore , updateTotalCount , delAfter , refillTheExtraList ;
2009-05-24 19:47:49 -04:00
2011-01-22 13:47:42 -05:00
totalInput = $ ( 'input[name="_total"]' , '#comments-form' ) ;
perPageInput = $ ( 'input[name="_per_page"]' , '#comments-form' ) ;
pageInput = $ ( 'input[name="_page"]' , '#comments-form' ) ;
2009-01-02 10:08:58 -05:00
dimAfter = function ( r , settings ) {
2011-05-07 00:56:00 -04:00
var c = $ ( '#' + settings . element ) , editRow , replyID , replyButton ;
2009-01-02 10:08:58 -05:00
2011-05-07 00:56:00 -04: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 10:08:58 -05:00
$ ( 'span.pending-count' ) . each ( function ( ) {
2009-10-09 05:02:22 -04:00
var a = $ ( this ) , n , dif ;
2011-09-28 17:07:08 -04:00
2009-10-09 05:02:22 -04:00
n = a . html ( ) . replace ( /[^0-9]+/g , '' ) ;
2011-09-28 17:07:08 -04:00
n = parseInt ( n , 10 ) ;
if ( isNaN ( n ) )
return ;
2009-10-09 05:02:22 -04:00
dif = $ ( '#' + settings . element ) . is ( '.' + settings . dimClass ) ? 1 : - 1 ;
n = n + dif ;
2011-09-28 17:07:08 -04:00
if ( n < 0 )
n = 0 ;
2011-06-02 13:05:55 -04:00
a . closest ( '.awaiting-mod' ) [ 0 == n ? 'addClass' : 'removeClass' ] ( 'count-0' ) ;
2009-10-09 05:02:22 -04:00
updateCount ( a , n ) ;
dashboardTotals ( ) ;
2009-01-02 10:08:58 -05:00
} ) ;
} ;
// Send current total, page, per_page and url
2009-10-08 04:24:59 -04:00
delBefore = function ( settings , list ) {
2011-05-12 18:00:31 -04:00
var cl = $ ( settings . target ) . attr ( 'class' ) , id , el , n , h , a , author , action = false ;
2009-10-08 04:24:59 -04:00
settings . data . _total = totalInput . val ( ) || 0 ;
settings . data . _per _page = perPageInput . val ( ) || 0 ;
settings . data . _page = pageInput . val ( ) || 0 ;
2009-01-02 10:08:58 -05:00
settings . data . _url = document . location . href ;
2011-04-29 22:15:08 -04:00
settings . data . comment _status = $ ( 'input[name="comment_status"]' , '#comments-form' ) . val ( ) ;
2009-02-07 10:26:01 -05:00
2009-11-27 05:34:09 -05:00
if ( cl . indexOf ( ':trash=1' ) != - 1 )
action = 'trash' ;
else if ( cl . indexOf ( ':spam=1' ) != - 1 )
action = 'spam' ;
if ( action ) {
2009-10-08 04:24:59 -04:00
id = cl . replace ( /.*?comment-([0-9]+).*/ , '$1' ) ;
el = $ ( '#comment-' + id ) ;
2009-11-27 05:34:09 -05:00
note = $ ( '#' + action + '-undo-holder' ) . html ( ) ;
2009-10-08 04:24:59 -04:00
2011-05-24 21:04:12 -04:00
el . find ( '.check-column :checkbox' ) . prop ( 'checked' , false ) ; // Uncheck the row so as not to be affected by Bulk Edits.
2010-04-18 03:37:45 -04:00
2009-11-03 03:28:59 -05:00
if ( el . siblings ( '#replyrow' ) . length && commentReply . cid == id )
commentReply . close ( ) ;
2009-10-08 04:24:59 -04:00
if ( el . is ( 'tr' ) ) {
n = el . children ( ':visible' ) . length ;
2009-11-25 23:37:39 -05:00
author = $ ( '.author strong' , el ) . text ( ) ;
2009-11-27 05:34:09 -05:00
h = $ ( '<tr id="undo-' + id + '" class="undo un' + action + '" style="display:none;"><td colspan="' + n + '">' + note + '</td></tr>' ) ;
2009-10-08 04:24:59 -04:00
} else {
2009-11-25 23:37:39 -05:00
author = $ ( '.comment-author' , el ) . text ( ) ;
2009-11-27 05:34:09 -05:00
h = $ ( '<div id="undo-' + id + '" style="display:none;" class="undo un' + action + '">' + note + '</div>' ) ;
2009-10-08 04:24:59 -04:00
}
el . before ( h ) ;
2009-11-27 05:34:09 -05: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 18:00:31 -04:00
a . attr ( 'class' , 'delete:the-comment-list:comment-' + id + '::un' + action + '=1 vim-z vim-destructive' ) ;
2009-11-27 05:34:09 -05:00
$ ( '.avatar' , el ) . clone ( ) . prependTo ( '#undo-' + id + ' .' + action + '-undo-inside' ) ;
2009-10-08 04:24:59 -04:00
a . click ( function ( ) {
list . wpList . del ( this ) ;
2009-11-29 05:29:12 -05:00
$ ( '#undo-' + id ) . css ( { backgroundColor : '#ceb' } ) . fadeOut ( 350 , function ( ) {
2009-10-08 04:24:59 -04:00
$ ( this ) . remove ( ) ;
2009-11-03 03:28:59 -05:00
$ ( '#comment-' + id ) . css ( 'backgroundColor' , '' ) . fadeIn ( 300 , function ( ) { $ ( this ) . show ( ) } ) ;
2009-10-08 04:24:59 -04:00
} ) ;
return false ;
} ) ;
}
2009-01-02 10:08:58 -05:00
return settings ;
} ;
2009-10-08 04:24:59 -04:00
// Updates the current total (as displayed visibly)
2009-01-02 10:08:58 -05:00
updateTotalCount = function ( total , time , setConfidentTime ) {
2009-10-09 05:02:22 -04:00
if ( time < lastConfidentTime )
2009-01-02 10:08:58 -05:00
return ;
2009-10-09 05:02:22 -04:00
if ( setConfidentTime )
2009-01-02 10:08:58 -05:00
lastConfidentTime = time ;
2009-10-09 05:02:22 -04:00
totalInput . val ( total . toString ( ) ) ;
2009-01-02 10:08:58 -05:00
$ ( 'span.total-type-count' ) . each ( function ( ) {
2009-10-09 05:02:22 -04:00
updateCount ( $ ( this ) , total ) ;
2009-01-02 10:08:58 -05:00
} ) ;
} ;
2011-05-07 00:56:00 -04:00
dashboardTotals = function ( n ) {
2009-10-09 05:02:22 -04: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-29 20:53:25 -05: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 00:56:00 -04:00
} ;
2009-10-09 05:02:22 -04:00
2011-05-07 00:56:00 -04:00
getCount = function ( el ) {
2009-10-09 05:02:22 -04:00
var n = parseInt ( el . html ( ) . replace ( /[^0-9]+/g , '' ) , 10 ) ;
if ( isNaN ( n ) )
return 0 ;
return n ;
2011-05-07 00:56:00 -04:00
} ;
2009-10-09 05:02:22 -04:00
2011-05-07 00:56:00 -04:00
updateCount = function ( el , n ) {
2009-11-13 00:39:17 -05:00
var n1 = '' ;
2009-10-09 05:02:22 -04:00
if ( isNaN ( n ) )
return ;
n = n < 1 ? '0' : n . toString ( ) ;
2009-11-13 00:39:17 -05: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 05:02:22 -04:00
el . html ( n ) ;
2011-05-07 00:56:00 -04:00
} ;
updatePending = function ( n ) {
$ ( 'span.pending-count' ) . each ( function ( ) {
var a = $ ( this ) ;
if ( n < 0 )
n = 0 ;
2011-06-02 13:05:55 -04:00
a . closest ( '.awaiting-mod' ) [ 0 == n ? 'addClass' : 'removeClass' ] ( 'count-0' ) ;
2011-05-07 00:56:00 -04:00
updateCount ( a , n ) ;
dashboardTotals ( ) ;
} ) ;
} ;
2009-10-09 05:02:22 -04:00
2009-01-02 10:08:58 -05:00
// In admin-ajax.php, we send back the unix time stamp instead of 1 on success
delAfter = function ( r , settings ) {
2011-05-07 00:56:00 -04: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 05:02:22 -04: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 00:56:00 -04:00
2009-10-09 05:02:22 -04:00
spam = getUpdate ( 'spam' ) ;
trash = getUpdate ( 'trash' ) ;
if ( untrash )
trash = - 1 ;
2009-11-27 05:34:09 -05:00
if ( unspam )
spam = - 1 ;
2009-10-08 04:24:59 -04:00
2011-05-07 00:56:00 -04:00
pending = getCount ( $ ( 'span.pending-count' ) . eq ( 0 ) ) ;
2009-10-09 05:02:22 -04:00
2011-05-07 00:56:00 -04: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 10:08:58 -05:00
$ ( 'span.spam-count' ) . each ( function ( ) {
2009-10-09 05:02:22 -04:00
var a = $ ( this ) , n = getCount ( a ) + spam ;
updateCount ( a , n ) ;
2009-01-02 10:08:58 -05:00
} ) ;
2009-07-30 09:39:34 -04:00
$ ( 'span.trash-count' ) . each ( function ( ) {
2009-10-09 05:02:22 -04:00
var a = $ ( this ) , n = getCount ( a ) + trash ;
updateCount ( a , n ) ;
2009-07-20 23:11:12 -04:00
} ) ;
2009-10-09 05:02:22 -04:00
if ( $ ( '#dashboard_right_now' ) . length ) {
2009-11-29 19:49:33 -05:00
N = trash ? - 1 * trash : 0 ;
dashboardTotals ( N ) ;
2009-10-09 05:02:22 -04:00
} else {
2009-11-29 05:29:12 -05:00
total = totalInput . val ( ) ? parseInt ( totalInput . val ( ) , 10 ) : 0 ;
total = total - spam - trash ;
if ( total < 0 )
total = 0 ;
2009-10-09 05:02:22 -04:00
if ( ( 'object' == typeof r ) && lastConfidentTime < settings . parsed . responses [ 0 ] . supplemental . time ) {
2011-01-22 13:47:42 -05: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 05:29:12 -05:00
updateTotalCount ( total , settings . parsed . responses [ 0 ] . supplemental . time , true ) ;
} else {
updateTotalCount ( total , r , false ) ;
}
2009-01-02 10:08:58 -05:00
}
2010-12-22 14:03:43 -05:00
if ( ! theExtraList || theExtraList . size ( ) == 0 || theExtraList . children ( ) . size ( ) == 0 || untrash || unspam ) {
2009-01-02 10:08:58 -05:00
return ;
}
theList . get ( 0 ) . wpList . add ( theExtraList . children ( ':eq(0)' ) . remove ( ) . clone ( ) ) ;
2010-08-18 20:06:51 -04:00
2011-01-21 16:17:12 -05:00
refillTheExtraList ( ) ;
2010-12-14 06:53:31 -05:00
} ;
2011-01-05 23:11:14 -05:00
2011-05-07 00:56:00 -04: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 12:35:36 -05:00
2011-01-21 16:17:12 -05:00
if ( ! args . paged )
args . paged = 1 ;
2011-02-09 12:35:36 -05:00
2010-12-14 06:53:31 -05: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 16:17:12 -05:00
args . offset = Math . min ( 8 , per _page ) - 1 ; // fetch only the next item on the extra list
2010-12-14 06:53:31 -05:00
}
2011-01-05 23:11:14 -05:00
2010-12-20 10:26:44 -05:00
args . no _placeholder = true ;
2010-12-14 06:53:31 -05:00
args . paged ++ ;
2011-01-22 13:47:42 -05:00
// $.query.get() needs some correction to be sent into an ajax request
if ( true === args . comment _type )
args . comment _type = '' ;
2011-01-21 16:17:12 -05:00
args = $ . extend ( args , {
'action' : 'fetch-list' ,
'list_args' : list _args ,
'_ajax_fetch_list_nonce' : $ ( '#_ajax_fetch_list_nonce' ) . val ( )
} ) ;
2010-12-14 06:53:31 -05:00
2011-01-21 16:17:12 -05:00
$ . ajax ( {
url : ajaxurl ,
global : false ,
dataType : 'json' ,
data : args ,
success : function ( response ) {
theExtraList . get ( 0 ) . wpList . add ( response . rows ) ;
}
2010-08-18 20:06:51 -04:00
} ) ;
2011-01-21 16:17:12 -05:00
} ;
2009-01-02 10:08:58 -05:00
theExtraList = $ ( '#the-extra-comment-list' ) . wpList ( { alt : '' , delColor : 'none' , addColor : 'none' } ) ;
2009-10-18 01:59:03 -04: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 10:08:58 -05:00
2009-11-27 05:34:09 -05: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 01:59:03 -04:00
} ) ;
2009-01-02 10:08:58 -05:00
} ;
commentReply = {
2009-11-03 03:28:59 -05:00
cid : '' ,
act : '' ,
2009-01-02 10:08:58 -05:00
init : function ( ) {
var row = $ ( '#replyrow' ) ;
$ ( 'a.cancel' , row ) . click ( function ( ) { return commentReply . revert ( ) ; } ) ;
2009-01-12 20:31:19 -05: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 10:08:58 -05:00
// add events
$ ( '#the-comment-list .column-comment > p' ) . dblclick ( function ( ) {
2009-01-12 08:43:17 -05:00
commentReply . toggle ( $ ( this ) . parent ( ) ) ;
} ) ;
2009-01-02 10:08:58 -05:00
$ ( '#doaction, #doaction2, #post-query-submit' ) . click ( function ( e ) {
if ( $ ( '#the-comment-list #replyrow' ) . length > 0 )
commentReply . close ( ) ;
} ) ;
2009-05-24 19:47:49 -04:00
2009-01-12 20:31:19 -05:00
this . comments _listing = $ ( '#comments-form > input[name="comment_status"]' ) . val ( ) || '' ;
2011-01-05 23:11:14 -05:00
2011-01-18 12:32:35 -05:00
/ * $ ( l i s t T a b l e ) . b i n d ( ' b e f o r e C h a n g e P a g e ' , f u n c t i o n ( ) {
2010-12-20 12:53:50 -05:00
commentReply . close ( ) ;
2011-01-18 12:32:35 -05:00
} ) ; * /
2009-01-02 10:08:58 -05: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 03:28:59 -05:00
var c ;
if ( this . cid ) {
c = $ ( '#comment-' + this . cid ) ;
2011-08-20 15:55:51 -04:00
if ( typeof QTags != 'undefined' )
QTags . closeAllTags ( 'replycontent' ) ;
2009-11-03 03:28:59 -05: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-09-28 17:07:08 -04:00
$ ( '#replycontent' ) . css ( 'height' , '' ) ;
2009-11-03 03:28:59 -05:00
this . cid = '' ;
}
2009-01-02 10:08:58 -05:00
} ,
open : function ( id , p , a ) {
2011-08-20 15:55:51 -04:00
var t = this , editRow , rowData , act , c = $ ( '#comment-' + id ) , h = c . height ( ) , replyButton ;
2011-05-07 00:56:00 -04:00
2009-01-02 10:08:58 -05:00
t . close ( ) ;
2009-11-03 03:28:59 -05:00
t . cid = id ;
2009-01-02 10:08:58 -05:00
2009-11-03 03:28:59 -05:00
editRow = $ ( '#replyrow' ) ;
rowData = $ ( '#inline-' + id ) ;
2009-01-02 10:08:58 -05: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-09-28 17:07:08 -04:00
if ( h > 120 )
$ ( '#replycontent' , editRow ) . css ( 'height' , ( 35 + h ) + 'px' ) ;
2011-08-20 15:55:51 -04:00
2009-01-02 10:08:58 -05: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 03:28:59 -05:00
c . after ( editRow ) . fadeOut ( 'fast' , function ( ) {
$ ( '#replyrow' ) . fadeIn ( 300 , function ( ) { $ ( this ) . show ( ) } ) ;
2009-01-02 10:08:58 -05:00
} ) ;
} else {
2011-05-07 00:56:00 -04:00
replyButton = $ ( '#replybtn' , editRow ) ;
2009-01-02 10:08:58 -05:00
$ ( '#edithead, #savebtn' , editRow ) . hide ( ) ;
$ ( '#replyhead, #replybtn' , editRow ) . show ( ) ;
2009-11-03 03:28:59 -05:00
c . after ( editRow ) ;
2011-05-07 00:56:00 -04:00
if ( c . hasClass ( 'unapproved' ) ) {
replyButton . text ( adminCommentsL10n . replyApprove ) ;
} else {
replyButton . text ( adminCommentsL10n . reply ) ;
}
2009-11-03 03:28:59 -05:00
$ ( '#replyrow' ) . fadeIn ( 300 , function ( ) { $ ( this ) . show ( ) } ) ;
2009-01-02 10:08:58 -05:00
}
setTimeout ( function ( ) {
var rtop , rbottom , scrollTop , vp , scrollBottom ;
2009-05-24 19:47:49 -04:00
2009-01-02 10:08:58 -05: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 03:28:59 -05:00
if ( e . which == 27 )
commentReply . revert ( ) ; // close on Escape
2009-01-02 10:08:58 -05:00
} ) ;
} , 600 ) ;
return false ;
} ,
send : function ( ) {
var post = { } ;
2010-12-22 14:03:43 -05:00
$ ( '#replysubmit .error' ) . hide ( ) ;
2009-01-02 10:08:58 -05:00
$ ( '#replysubmit .waiting' ) . show ( ) ;
2011-05-21 13:11:13 -04:00
$ ( '#replyrow input' ) . not ( ':button' ) . each ( function ( ) {
2009-01-02 10:08:58 -05:00
post [ $ ( this ) . attr ( 'name' ) ] = $ ( this ) . val ( ) ;
} ) ;
post . content = $ ( '#replycontent' ) . val ( ) ;
post . id = post . comment _post _ID ;
2009-01-12 20:31:19 -05:00
post . comments _listing = this . comments _listing ;
2011-04-29 22:15:08 -04:00
post . p = $ ( '[name="p"]' ) . val ( ) ;
2009-01-02 10:08:58 -05:00
2011-05-07 00:56:00 -04:00
if ( $ ( '#comment-' + $ ( '#comment_ID' ) . val ( ) ) . hasClass ( 'unapproved' ) )
post . approve _parent = 1 ;
2009-01-02 10:08:58 -05:00
$ . ajax ( {
type : 'POST' ,
2009-10-20 13:45:12 -04:00
url : ajaxurl ,
2009-01-02 10:08:58 -05:00
data : post ,
success : function ( x ) { commentReply . show ( x ) ; } ,
error : function ( r ) { commentReply . error ( r ) ; }
} ) ;
return false ;
} ,
show : function ( xml ) {
2011-05-07 00:56:00 -04:00
var t = this , r , c , id , bg , pid ;
2009-01-02 10:08:58 -05:00
if ( typeof ( xml ) == 'string' ) {
2011-05-07 00:56:00 -04:00
t . error ( { 'responseText' : xml } ) ;
2009-01-02 10:08:58 -05:00
return false ;
}
r = wpAjax . parseAjaxResponse ( xml ) ;
if ( r . errors ) {
2011-05-07 00:56:00 -04:00
t . error ( { 'responseText' : wpAjax . broken } ) ;
2009-01-02 10:08:58 -05:00
return false ;
}
2011-09-07 15:48:25 -04:00
t . revert ( ) ;
2009-01-02 10:08:58 -05:00
r = r . responses [ 0 ] ;
c = r . data ;
2009-11-03 03:28:59 -05:00
id = '#comment-' + r . id ;
2011-05-07 00:56:00 -04:00
if ( 'edit-comment' == t . act )
2009-11-03 03:28:59 -05:00
$ ( id ) . remove ( ) ;
2009-01-02 10:08:58 -05:00
2011-05-07 00:56:00 -04:00
if ( r . supplemental . parent _approved ) {
2011-05-21 13:11:13 -04:00
pid = $ ( '#comment-' + r . supplemental . parent _approved ) ;
2011-05-07 00:56:00 -04:00
updatePending ( getCount ( $ ( 'span.pending-count' ) . eq ( 0 ) ) - 1 ) ;
2011-06-10 19:01:45 -04:00
2011-05-21 13:11:13 -04:00
if ( this . comments _listing == 'moderated' ) {
pid . animate ( { 'backgroundColor' : '#CCEEBB' } , 400 , function ( ) {
pid . fadeOut ( ) ;
} ) ;
return ;
}
2011-05-07 00:56:00 -04:00
}
2011-05-21 13:11:13 -04:00
$ ( c ) . hide ( )
$ ( '#replyrow' ) . after ( c ) ;
id = $ ( id ) ;
t . addEvents ( id ) ;
2011-06-10 19:01:45 -04:00
bg = id . hasClass ( 'unapproved' ) ? '#FFFFE0' : id . closest ( '.widefat' ) . css ( 'backgroundColor' ) ;
2009-01-02 10:08:58 -05:00
2011-05-21 13:11:13 -04:00
id . animate ( { 'backgroundColor' : '#CCEEBB' } , 300 )
2011-05-07 00:56:00 -04:00
. animate ( { 'backgroundColor' : bg } , 300 , function ( ) {
2011-05-21 13:11:13 -04: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 00:56:00 -04:00
}
} ) ;
2009-01-02 10:08:58 -05: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 08:43:17 -05:00
2009-01-02 10:08:58 -05:00
$ ( document ) . ready ( function ( ) {
var make _hotkeys _redirect , edit _comment , toggle _all , make _bulk ;
2009-01-12 08:43:17 -05:00
2009-02-07 10:26:01 -05:00
setCommentsList ( ) ;
2009-01-02 10:08:58 -05:00
commentReply . init ( ) ;
2010-11-20 17:02:25 -05:00
$ ( document ) . delegate ( 'span.delete a.delete' , 'click' , function ( ) { return false ; } ) ;
2009-01-02 10:08:58 -05:00
if ( typeof $ . table _hotkeys != 'undefined' ) {
make _hotkeys _redirect = function ( which ) {
return function ( ) {
var first _last , l ;
2009-05-24 19:47:49 -04:00
2009-01-02 10:08:58 -05:00
first _last = 'next' == which ? 'first' : 'last' ;
2011-01-21 15:28:41 -05:00
l = $ ( '.tablenav-pages .' + which + '-page:not(.disabled)' ) ;
2009-01-02 10:08:58 -05:00
if ( l . length )
window . location = l [ 0 ] . href . replace ( /\&hotkeys_highlight_(first|last)=1/g , '' ) + '&hotkeys_highlight_' + first _last + '=1' ;
}
} ;
2009-10-09 05:02:22 -04:00
2009-01-02 10:08:58 -05:00
edit _comment = function ( event , current _row ) {
window . location = $ ( 'span.edit a' , current _row ) . attr ( 'href' ) ;
} ;
2009-10-09 05:02:22 -04:00
2009-01-02 10:08:58 -05:00
toggle _all = function ( ) {
toggleWithKeyboard = true ;
2011-05-24 21:04:12 -04:00
$ ( 'input:checkbox' , '#cb' ) . click ( ) . prop ( 'checked' , false ) ;
2009-01-02 10:08:58 -05:00
toggleWithKeyboard = false ;
2009-10-09 05:02:22 -04:00
} ;
2009-01-02 10:08:58 -05:00
make _bulk = function ( value ) {
2009-10-09 05:02:22 -04:00
return function ( ) {
var scope = $ ( 'select[name="action"]' ) ;
2011-05-24 21:04:12 -04:00
$ ( 'option[value="' + value + '"]' , scope ) . prop ( 'selected' , true ) ;
2010-12-01 11:51:20 -05:00
$ ( '#doaction' ) . click ( ) ;
2009-01-02 10:08:58 -05:00
}
} ;
2009-10-09 05:02:22 -04:00
$ . table _hotkeys (
$ ( 'table.widefat' ) ,
2009-10-09 19:28:06 -04:00
[ 'a' , 'u' , 's' , 'd' , 'r' , 'q' , 'z' , [ 'e' , edit _comment ] , [ 'shift+x' , toggle _all ] ,
2010-12-01 11:51:20 -05:00
[ 'shift+a' , make _bulk ( 'approve' ) ] , [ 'shift+s' , make _bulk ( 'spam' ) ] ,
2009-10-09 05:02:22 -04: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 10:08:58 -05:00
) ;
}
} ) ;
} ) ( jQuery ) ;