/** * File: Extension_AlwaysCached_Page_View.js * * JavaScript for the Always Cached settings page. * * @since 2.8.0 * * @global w3tcData Localized data. */ jQuery(function() { jQuery(document).on( 'click', '.w3tc-alwayscached-queue-item', function(e) { e.preventDefault(); var row = jQuery(this).closest('tr'); var item_url = jQuery(this).data('url'); jQuery.ajax( { url: ajaxurl, method: 'GET', headers: { w3tcalwayscached: true, }, data: { action: 'w3tc_ajax', _wpnonce: w3tc_nonce[0], w3tc_action: 'extension_alwayscached_process_queue_item', item_url: item_url, }, success: function(response) { if ( response.success && 'ok' === response.data ) { alert(W3TCAlwaysCachedData.lang.processQueueItemSuccess); row.remove(); } else if ( ! response.success || 'failed' === response.data ) { alert(W3TCAlwaysCachedData.lang.processQueueItemFail); } }, error: function( xhr, status, error ) { alert(W3TCAlwaysCachedData.lang.processQueueItemFailAlert); console.error('AJAX error:', status, error ); } } ); } ); jQuery(document).on( 'click', '#w3tc-alwayscached-process, #w3tc-alwayscached-empty', function(e) { setTimeout( function() { jQuery('#w3tc-alwayscached-process').prop('disabled', true); jQuery('#w3tc-alwayscached-empty').prop('disabled', true); }, 100 ); } ); jQuery(document).on( 'click', '.w3tc-alwayscached-queue', function(e) { e.preventDefault(); var mode = jQuery(this).data('mode'); var elContainer = jQuery(this).parent().find('section'); jQuery.ajax( { url: ajaxurl, method: 'GET', data: { action: 'w3tc_ajax', _wpnonce: w3tc_nonce[0], w3tc_action: 'extension_alwayscached_queue', mode: mode }, success: function(data) { elContainer.html(data); elContainer.show(); } } ); } ); jQuery(document).on( 'click', '.w3tc-alwayscached-queue-filter-submit', function(e) { e.preventDefault(); var mode = jQuery(this).data('mode'); var search = jQuery(this).closest('section').find('.w3tc-alwayscached-queue-filter').val(); loadQueueTable( mode, 1, search ); } ); jQuery(document).on( 'click', '.w3tc-alwayscached-queue-view-pagination-page', function(e) { e.preventDefault(); var mode = jQuery(this).data('mode'); var page = jQuery(this).data('page'); var search = jQuery(this).closest('section').find('.w3tc-alwayscached-queue-filter').val(); loadQueueTable( mode, page, search ); } ); jQuery(document).on( 'change', '.w3tc-alwayscached-queue-view-pagination-page-input', function() { var max = parseInt(jQuery(this).attr('max')); var min = parseInt(jQuery(this).attr('min')); if (jQuery(this).val() > max) { jQuery(this).val(max); } else if (jQuery(this).val() < min) { jQuery(this).val(min); } } ); jQuery(document).on( 'click', '.w3tc-alwayscached-queue-view-pagination-page-input-submit', function(e) { e.preventDefault(); var mode = jQuery(this).data('mode'); var page = parseInt(jQuery(this).closest('section').find('.w3tc-alwayscached-queue-view-pagination-page-input').val()); var search = jQuery(this).closest('section').find('.w3tc-alwayscached-queue-filter').val(); loadQueueTable( mode, page, search ); } ); jQuery(document).on( 'change', '#alwayscached___wp_cron', function() { let $enabled = jQuery(this).prop('checked'); jQuery('#alwayscached___wp_cron_time').prop('disabled', ! $enabled); jQuery('#alwayscached___wp_cron_interval').prop('disabled', ! $enabled); } ); jQuery(document).on( 'change', '#alwayscached___flush_all', function() { let $enabled = jQuery(this).prop('checked'); jQuery('#alwayscached___flush_all_home').prop('disabled', ! $enabled); jQuery('#alwayscached___flush_all_posts_count').prop('disabled', ! $enabled); jQuery('#alwayscached___flush_all_pages_count').prop('disabled', ! $enabled); } ); function loadQueueTable(mode = 'pending', page = 1, search = '') { jQuery.ajax( { url: ajaxurl, method: 'GET', data: { action: 'w3tc_ajax', _wpnonce: w3tc_nonce[0], w3tc_action: 'extension_alwayscached_queue_filter', mode: mode, page: page, search: search }, success: function (response) { var tbody = ''; jQuery.each( response.rows, function (index, row) { tbody += '