92 lines
2.4 KiB
JavaScript
92 lines
2.4 KiB
JavaScript
(function( $ ) {
|
|
'use strict';
|
|
|
|
var aiovg = window.aiovg_pagination || window.aiovg_public;
|
|
|
|
/**
|
|
* Called when the page has loaded.
|
|
*/
|
|
$(function() {
|
|
|
|
// Pagination
|
|
$( document ).on( 'click', '.aiovg-pagination-ajax a.page-numbers', function( event ) {
|
|
event.preventDefault();
|
|
|
|
var $this = $( this );
|
|
var $pagination = $this.closest( '.aiovg-pagination-ajax' );
|
|
var current = parseInt( $pagination.data( 'current' ) );
|
|
|
|
var params = $pagination.data( 'params' );
|
|
params.action = 'aiovg_load_more_' + params.source;
|
|
params.security = aiovg.ajax_nonce;
|
|
|
|
var paged = parseInt( $this.html() );
|
|
params.paged = paged++;
|
|
|
|
if ( $this.hasClass( 'prev' ) ) {
|
|
params.paged = current - 1;
|
|
}
|
|
|
|
if ( $this.hasClass( 'next' ) ) {
|
|
params.paged = current + 1;
|
|
}
|
|
|
|
var $gallery = $( '#aiovg-' + params.uid );
|
|
|
|
$pagination.addClass( 'aiovg-spinner' );
|
|
|
|
$.post( aiovg.ajax_url, params, function( response ) {
|
|
if ( response.success ) {
|
|
var html = $( response.data.html ).html();
|
|
$gallery.html( html );
|
|
|
|
$pagination.trigger( 'AIOVG.onGalleryUpdated' );
|
|
|
|
$( 'html, body' ).animate({
|
|
scrollTop: $gallery.offset().top - parseInt( aiovg.scroll_to_top_offset )
|
|
}, 500);
|
|
} else {
|
|
$pagination.removeClass( 'aiovg-spinner' );
|
|
}
|
|
});
|
|
});
|
|
|
|
// Load More.
|
|
$( document ).on( 'click', '.aiovg-more-ajax button', function( event ) {
|
|
event.preventDefault();
|
|
|
|
var $this = $( this );
|
|
var $pagination = $this.closest( '.aiovg-more-ajax' );
|
|
var numpages = parseInt( $this.data( 'numpages' ) );
|
|
|
|
var params = $pagination.data( 'params' );
|
|
params.action = 'aiovg_load_more_' + params.source;
|
|
params.security = aiovg.ajax_nonce;
|
|
|
|
var paged = parseInt( $this.data( 'paged' ) );
|
|
params.paged = ++paged;
|
|
|
|
$pagination.addClass( 'aiovg-spinner' );
|
|
|
|
$.post( aiovg.ajax_url, params, function( response ) {
|
|
$pagination.removeClass( 'aiovg-spinner' );
|
|
|
|
if ( paged < numpages ) {
|
|
$this.data( 'paged', params.paged );
|
|
} else {
|
|
$this.hide();
|
|
}
|
|
|
|
if ( response.success ) {
|
|
var html = $( response.data.html ).find( '.aiovg-grid' ).html();
|
|
$( '#aiovg-' + params.uid + ' .aiovg-grid' ).append( html );
|
|
|
|
$pagination.trigger( 'AIOVG.onGalleryUpdated' );
|
|
}
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
})( jQuery );
|