diff options
Diffstat (limited to 'plugins/jetpack/modules/comment-likes/comment-like-count.js')
-rw-r--r-- | plugins/jetpack/modules/comment-likes/comment-like-count.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/plugins/jetpack/modules/comment-likes/comment-like-count.js b/plugins/jetpack/modules/comment-likes/comment-like-count.js new file mode 100644 index 00000000..950b306b --- /dev/null +++ b/plugins/jetpack/modules/comment-likes/comment-like-count.js @@ -0,0 +1,38 @@ +jQuery( document ).ready( function( $ ) { + var jsonAPIbase = 'https://public-api.wordpress.com/rest/v1', + APIqueue = []; + + function getCommentLikeCounts() { + $( '.comment-like-count' ).each( function() { + var blogId = $( this ).attr( 'data-blog-id' ), + commentId = $( this ).attr( 'data-comment-id' ); + + APIqueue.push( '/sites/' + blogId + '/comments/' + commentId + '/likes' ); + } ); + + return $.ajax( { + type: 'GET', + url: jsonAPIbase + '/batch', + dataType: 'jsonp', + data: 'urls[]=' + APIqueue.map( encodeURIComponent ).join( '&urls[]=' ), + success: function( response ) { + for ( var path in response ) { + if ( ! response[ path ].error_data ) { + var urlPieces = path.split( '/' ), + commentId = urlPieces[ 4 ], + likeCount = response[ path ].found; + + if ( likeCount < 1 ) { + return; + } + + $( '#comment-like-count-' + commentId ).find( '.like-count' ).hide().text( likeCount ).fadeIn(); + } + } + }, + error: function() {} + } ); + } + + getCommentLikeCounts(); +} ); |