jQuery(document).ready(function($) { var ewww_i = 0; // Tracks how many images optimized (foreground) in a single session. var ewww_j = 0; // Vs. tracks how many images optimized (foreground) since the last pause/resume. var ewww_k = 0; var ewww_background = 0; var ewww_aux_folders = 1; var ewww_force = 0; var ewww_force_smart = 0; var ewww_scan_only = 0; var ewww_webp_only = 0; var ewww_delay = 0; var ewww_batch_limit = 0; var ewwwTimeoutHandler, bulkResultsSlideTimer; var ewwwNumberFormat = new Intl.NumberFormat(); var ewww_tiny_skip = ''; var ewww_pending = 0; var ewww_hid_pending = false; var ewww_autopoll_timeout = 0; var ewww_table_visible = false; var ewww_table_action = 'bulk_aux_images_table'; var ewww_total_pages = 0; var ewww_total_images = 0; var ewww_total_pending = 0; var ewww_pointer = 0; var ewww_search = ''; var ewww_size_sort = false; var ewww_bulk_start_time = 0; var ewww_bulk_elapsed_time = 0; var ewww_time_per_image = 0; var ewww_time_remaining = 0; var ewww_days_remaining = 0; var ewww_hours_remaining = 0; var ewww_minutes_remaining = 0; var ewww_seconds_remaining = 0; var ewww_countdown = false; var ewww_error_counter = 30; var ewwwBulkFirstPage = false; var ewwwBulkFirstLoop = false; var ewww_quota_update; if (ewww_bulk.scan_only_mode) { ewww_scan_only = true; } if (ewww_bulk.selected_ids.length > 0) { ewww_autopoll = false; } $("#ewww-delay-slider").slider({ min: 0, max: 30, value: $("#ewww-delay").val(), slide: function(event, ui) { $("#ewww-delay").val(ui.value); } }); var ewwwdelayinput = document.getElementById("ewww-delay"); if (ewwwdelayinput) { ewwwdelayinput.onblur = function() { if (isNaN(this.value)) { this.value = 0; } else { this.value = Math.ceil(this.value); } }; } // If auto-poll is enabled, then the bulk process is already running, and this will not be needed. if (! ewww_autopoll) { // Populate the bulk information: media uploads, image sizes, dimensions, etc. var ewww_get_bulk_info_data = { action: 'ewww_get_bulk_info', ids: ewww_bulk.selected_ids, ewww_wpnonce: ewww_bulk._wpnonce, }; $.post(ajaxurl, ewww_get_bulk_info_data, function(response) { var is_json = true; try { var ewww_response = JSON.parse(response); } catch (err) { is_json = false; } if ( ! is_json ) { $('#ewww-bulk-queue-images').html('' + ewww_bulk.invalid_response + ''); console.log( response ); return false; } if ( ewww_response.error ) { $('#ewww-bulk-queue-images').html('' + ewww_response.error + ''); } else if ( ewww_response.html ) { $('#ewww-bulk-queue-images').html( ewww_response.html ); if (ewww_response.show_bulk_controls) { $('#ewww-bulk-controls').show(); } else { $('#ewww-bulk-controls').remove(); } } if (ewww_bulk.bulk_init) { if (ewww_bulk.selected_ids.length > 0) { $('#ewww-background').parent().hide(); $('#ewww-scan-only').parent().hide(); $('#ewww-aux-folders').parent().hide(); } $('#ewww-optimize-local-images a.button-primary').trigger('click'); } }) .fail(function() { $('#ewww-bulk-queue-images').html('' + ewww_bulk.invalid_response + ''); }); } // Show the bulk interface when the button is clicked. $('#ewww-optimize-local-images a.button-primary').on('click', function() { ewww_table_visible = false; $(this).hide(); $('#ewww-bulk-queue-images').show(); $('#ewww-bulk-controls').show(); $('#ewww-bulk-table-wrapper').hide() $('#ewww-bulk-results').slideDown(); $('#ewww-show-table').show(); $('#ewww-hide-table').hide(); return false; }); $('#ewww-bulk-queue-images').on('click', '#ewww-bulk-start-optimizing', function() { $('#ewww-bulk-queue-images').hide(); $('#ewww-bulk-controls').hide(); $('#ewww-bulk-queue-confirm').show(); return false; }); $('#ewww-bulk-confirm-optimizing').on('click', function() { ewwwCheckBulkOptions(); $(this).hide(); $('.ewww-bulk-confirm-info').hide(); if (ewww_background) { $('#ewww-bulk-background-notice').show(); ewwwAsyncInit(); } else { $('#ewww-bulk-foreground-notice').show(); $('#ewww-show-table').hide(); ewww_autopoll = false; ewwwScanInit(); } bulkResultsSlideTimer = setTimeout(function() { if (ewww_table_visible) { $('#ewww-bulk-queue-confirm').slideUp(400, function() { if (ewww_background) { $('#ewww-hide-table').show(); } }); } else { $('#ewww-bulk-results').slideUp(400, function() { $('#ewww-bulk-queue-confirm').hide(); if (ewww_background) { $('#ewww-show-table').show(); $('#ewww-hide-table').hide(); } ewww_pending = 0; }); } }, 7000); $('.ewww-bulk-spinner').show(); return false; }); function ewwwCheckBulkOptions() { if ($('#ewww-background:checkbox:checked').val()) { ewww_background = 1; } else if (ewww_bulk.easymode) { ewww_scan_only = 1; } if ($('#ewww-scan-only:checkbox:checked').val()) { ewww_scan_only = 1; } if ( ! $('#ewww-aux-folders:checkbox:checked').val()) { ewww_aux_folders = 0; } if ($('#ewww-force:checkbox:checked').val()) { ewww_force = 1; } if ($('#ewww-force-smart:checkbox:checked').val()) { ewww_force_smart = 1; } if ($('#ewww-webp-only:checkbox:checked').val()) { ewww_webp_only = 1; } if ( ! $('#ewww-delay').val().match( /^[1-9][0-9]*$/) ) { ewww_delay = 0; } else { ewww_delay = $('#ewww-delay').val(); } } function ewwwScanInit() { var ewww_scan_data = { action: 'ewww_bulk_scan_init', ewww_aux_folders: ewww_aux_folders, ewww_force: ewww_force, ewww_force_smart: ewww_force_smart, ewww_webp_only: ewww_webp_only, ewww_scan_only: ewww_scan_only, ewww_delay: ewww_delay, ewww_scan: true, ewww_wpnonce: ewww_bulk._wpnonce, ids: ewww_bulk.selected_ids, }; $.post(ajaxurl, ewww_scan_data, function(response) { var is_json = true; try { var ewww_response = JSON.parse(response); } catch (err) { is_json = false; } if ( ! is_json ) { $('#ewww-optimize-local-images').html('' + ewww_bulk.invalid_response + ''); console.log( response ); return false; } if ( ewww_response.error ) { $('#ewww-optimize-local-images').html('' + ewww_response.error + ''); $('.ewww-bulk-spinner').hide(); } else if ( ewww_response.message ) { $('#ewww-optimize-local-images').html(ewww_response.message); ewwwRunScan(); } else { $('#ewww-optimize-local-images').html('' + ewww_bulk.invalid_response + ''); $('.ewww-bulk-spinner').hide(); console.log( response ); return false; } }) .fail(function() { $('#ewww-optimize-local-images').html('' + ewww_bulk.invalid_response + ''); $('.ewww-bulk-spinner').hide(); console.log( response ); return false; }); } function ewwwRunScan() { var ewww_scan_data = { action: 'ewww_bulk_scan', ewww_force: ewww_force, ewww_force_smart: ewww_force_smart, ewww_webp_only: ewww_webp_only, ewww_scan_only: ewww_scan_only, ewww_scan: true, ewww_wpnonce: ewww_bulk._wpnonce, }; $.post(ajaxurl, ewww_scan_data, function(response) { var is_json = true; try { var ewww_response = JSON.parse(response); } catch (err) { is_json = false; } if ( ! is_json ) { $('#ewww-optimize-local-images').html('' + ewww_bulk.invalid_response + ''); $('.ewww-bulk-spinner').hide(); console.log( response ); return false; } if ( ewww_response.error ) { $('#ewww-optimize-local-images').html('' + ewww_response.error + ''); $('.ewww-bulk-spinner').hide(); } else if ( ewww_response.remaining ) { $('.ewww-aux-table').hide(); $('#ewww-show-table').hide(); $('#ewww-optimize-local-images').html( ewww_response.remaining ); if ( ewww_response.notice ) { $('#ewww-optimize-local-images').append( '
' + ewww_response.notice ); } if ( ewww_response.tiny_skip ) { $('#ewww-optimize-local-images').append( '
' + ewww_response.tiny_skip ); ewww_tiny_skip = ewww_response.tiny_skip; console.log( 'skipped some tiny images' ); } if ( ewww_response.bad_attachment ) { $('#ewww-optimize-local-images').append( '
' + ewww_bulk.bad_attachment + ' ' + ewww_response.bad_attachment ); } ewww_scan_failures = 0; ewwwRunScan(); } else if ( ewww_response.ready ) { ewww_total_pending = ewww_response.ready; $('#ewww-optimize-local-images').html(ewww_response.message); if ( ewww_tiny_skip ) { $('#ewww-optimize-local-images').append( '
' + ewww_tiny_skip + '' ); console.log( 'done, skipped some tiny images' ); } if (ewww_scan_only) { $('.ewww-bulk-spinner').hide(); $('.ewww-start-optimization').removeClass('button-secondary'); $('.ewww-start-optimization').addClass('button-primary'); $('.ewww-start-optimization').addClass('bulk-foreground'); $('.ewww-start-optimization').show(); $('.ewww-clear-queue').show(); if (!ewww_table_visible && !ewww_hid_pending) { ewww_pending = 1; ewww_table_visible = true; $('#ewww-search-pending').hide(); $('#ewww-search-optimized').hide(); $('#ewww-showing-queue').show(); ewwwUpdateTable(); } } else { ewwwStartOpt(); } } else if ( ewww_response.ready === 0 ) { $('.ewww-bulk-spinner').hide(); $('#ewww-show-table').show(); $('#ewww-optimize-local-images').html(ewww_response.message); if ( ewww_tiny_skip ) { $('#ewww-optimize-local-images').append( '
' + ewww_tiny_skip + '' ); console.log( 'done, skipped some tiny images' ); } } }) .fail(function() { ewww_scan_failures++; if (ewww_scan_failures > 10) { $('#ewww-optimize-local-images').html('' + ewww_bulk.scan_fail + ': ' + ewww_bulk.bulk_fail_more + ''); $('.ewww-bulk-spinner').hide(); } else { $('#ewww-optimize-local-images').html('' + ewww_bulk.scan_incomplete + ''); setTimeout(function() { ewwwStartScan(); }, 1000); } }); } $('.ewww-action-container').on('click', '.bulk-foreground.ewww-resume-scan', function() { $('.bulk-foreground.ewww-resume-scan').hide(); $('.ewww-clear-queue').hide(); $('#ewww-bulk-queue-images').hide(); $('#ewww-bulk-controls').hide(); $('#ewww-optimize-local-images').html(''); $('.ewww-bulk-spinner').show(); ewwwCheckBulkOptions(); ewwwRunScan(); return false; }); $('.ewww-action-container').on('click', '.bulk-foreground.ewww-start-optimization', function() { clearTimeout(bulkResultsSlideTimer); $('#ewww-bulk-queue-confirm').slideUp(); $('#ewww-bulk-queue-images').hide(); $('#ewww-bulk-controls').hide(); if (0===ewww_total_pending && ewww_previous_pending > 0) { ewww_total_pending = ewww_previous_pending; } ewwwCheckBulkOptions(); ewwwStartOpt(); return false; }); $('.ewww-action-container').on('click', '.bulk-foreground.ewww-pause-optimization', function() { ewww_k = 9; ewww_j = 0; $('.ewww-bulk-spinner').hide(); $('#ewww-bulk-timer').hide(); $('#ewww-bulk-counter').hide(); $('.bulk-foreground.ewww-pause-optimization').hide(); clearTimeout(ewwwTimeoutHandler); $('#ewww-optimize-local-images').html(ewww_bulk.operation_stopped); $('.ewww-resume-optimization').addClass('bulk-foreground'); $('.ewww-resume-optimization').show(); $('.ewww-clear-queue').show(); return false; }); $('.ewww-action-container').on('click', '.bulk-foreground.ewww-resume-optimization', function() { if (9===ewww_k) { ewwwResumeOpt(); } else { ewwwStartOpt(); } return false; }); function ewwwUpdateQuota() { var ewww_quota_update_data = { action: 'bulk_quota_update', ewww_wpnonce: ewww_bulk._wpnonce, }; var existing_quota_data = $('#ewww-bulk-credits-available').html(); if (existing_quota_data && existing_quota_data.length > 0) { $.post(ajaxurl, ewww_quota_update_data, function(response) { $('#ewww-bulk-credits-available').html(response); if (response.length > 0) { $('#ewww-bulk-credits-available').fadeIn(); } }); } else { clearInterval(ewww_quota_update); } } function ewwwResumeOpt () { ewww_k = 0; ewww_quota_update = setInterval( ewwwUpdateQuota, 60000 ); ewwwUpdateQuota(); $('.ewww-resume-optimization').hide(); $('.ewww-start-optimization').hide(); $('.ewww-clear-queue').hide(); $('#ewww-hide-table').hide(); $('#ewww-show-table').hide(0,function(){ $('.ewww-pause-optimization').show(); $('.ewww-bulk-spinner').fadeIn(); }); ewww_bulk_start_time = Date.now(); $('#ewww-optimize-local-images').html(''); $('#ewww-bulk-progressbar').fadeIn(); $('#ewww-bulk-timer').fadeIn(); $('#ewww-bulk-counter').fadeIn(); // Reset the table to page 1 (cached). ewww_pointer = 0; ewww_pending = 0; $('#ewww-search-pending').show(); $('#ewww-search-optimized').hide(); $('.ewww-search-input').val(''); $('.current-page-info .current-page').text(1); ewwwBulkFirstPage.clone().replaceAll('#ewww-bulk-table table'); if (ewwwBulkFirstPage.find('tbody tr').length < 50) { $('.next-page').addClass('disabled'); $('.last-page').addClass('disabled'); } $('.prev-page').addClass('disabled'); $('.first-page').addClass('disabled'); ewwwProcessImage(); } function ewwwStartOpt () { ewww_k = 0; ewww_quota_update = setInterval( ewwwUpdateQuota, 60000 ); ewwwUpdateQuota(); $('#ewwwio-settings-menu').hide(); $('#ewww-settings-wrap').hide(); $('.ewww-pause-optimization').addClass('bulk-foreground'); $('.ewww-resume-optimization').hide(); $('.ewww-start-optimization').hide(); $('.ewww-clear-queue').hide(); $('#ewww-show-table').hide(0,function(){ $('#ewwwio-bulk-header .ewww-action-container.ewwwio-flex-space-between').addClass('full-width'); $('.ewww-pause-optimization').show(); $('.ewww-bulk-spinner').fadeIn(); }); if (ewww_delay) { ewww_batch_limit = 1; } ewww_bulk_start_time = Date.now(); var ewww_init_data = { action: 'ewww_bulk_init', ewww_force: ewww_force, ewww_force_smart: ewww_force_smart, ewww_webp_only: ewww_webp_only, ewww_scan_only: ewww_scan_only, ewww_delay: ewww_delay, ewww_wpnonce: ewww_bulk._wpnonce, }; $.post(ajaxurl, ewww_init_data, function(response) { var is_json = true; try { var ewww_init_response = JSON.parse(response); } catch (err) { is_json = false; } if ( ! is_json || ! response ) { $('#ewww-optimize-local-images').html('' + ewww_bulk.invalid_response + ''); $('.ewww-bulk-spinner').hide(); console.log( response ); return false; } if ( ewww_init_response.error ) { $('#ewww-optimize-local-images').html('' + ewww_init_response.error + ''); $('.ewww-bulk-spinner').hide(); if ( ewww_init_response.data ) { console.log( ewww_init_response.data ); } } else { $('#ewww-optimize-local-images').html(ewww_init_response.results); $('#ewww-bulk-progressbar').progressbar({ max: ewww_total_pending }); $('#ewww-bulk-progressbar').slideDown(); $('#ewww-bulk-counter .optimized-images-count').text(0); $('#ewww-bulk-counter .total-images-count').text(ewww_total_pending); $('#ewww-bulk-counter').fadeIn(); // Initialize the table, but don't show it until we have a result. ewww_pointer = 0; ewww_pending = 0; $('.ewww-search-input').val(''); $('#ewww-show-table').hide(); $('#ewww-hide-table').hide(); var ewww_table_data = { action: ewww_table_action, ewww_wpnonce: ewww_bulk._wpnonce, ewww_offset: ewww_pointer, ewww_search: '', ewww_pending: ewww_pending, ewww_size_sort: false, }; $.post(ajaxurl, ewww_table_data, function(response) { try { var ewww_response = JSON.parse(response); } catch (err) { $('#ewww-optimize-local-images').html('' + ewww_bulk.invalid_response + ''); $('.ewww-pause-optimization').hide(); $('.ewww-bulk-spinner').hide(); console.log( response ); return false; } if ( ewww_response.error ) { $('#ewww-optimize-local-images').html('' + ewww_response.error + ''); $('.ewww-pause-optimization').hide(); $('.ewww-bulk-spinner').hide(); return false; } ewwwBulkFirstPage = $(ewww_response.table); ewwwBulkFirstLoop = ewww_response; ewww_total_images = ewww_response.total_images; $('.next-page').addClass('disabled'); $('.last-page').addClass('disabled'); $('.prev-page').addClass('disabled'); $('.first-page').addClass('disabled'); ewwwProcessImage(); }); } }); } function ewwwProcessImage() { var ewww_loop_data = { action: 'ewww_bulk_loop', ewww_wpnonce: ewww_bulk._wpnonce, ewww_force: ewww_force, ewww_force_smart: ewww_force_smart, ewww_webp_only: ewww_webp_only, ewww_batch_limit: ewww_batch_limit, ewww_error_counter: ewww_error_counter, }; $.post(ajaxurl, ewww_loop_data, function(response) { var is_json = true; try { var ewww_response = JSON.parse(response); } catch (err) { is_json = false; } if ( ! is_json || ! response ) { $('.ewww-bulk-spinner').hide(); $('#ewww-bulk-timer').hide(); $('#ewww-bulk-counter').hide(); $('.ewww-pause-optimization').hide(); $('#ewww-optimize-local-images').append('' + ewww_bulk.invalid_response + ''); clearInterval(ewww_quota_update); clearInterval(ewww_countdown); ewww_countdown = false; if ( ! response ) { console.log( 'empty response' ); } else { console.log( response ); } return false; } ewww_i += ewww_response.completed; ewww_j += ewww_response.completed; if ( ewww_response.add_to_total > 0 ) { ewww_total_pending = ewww_total_pending + ewww_response.add_to_total; $('#ewww-bulk-progressbar').progressbar({ max: ewww_total_pending }); $('#ewww-bulk-counter .total-images-count').text(ewww_total_pending); } $('#ewww-bulk-progressbar').progressbar( "option", "value", ewww_i ); $('#ewww-bulk-counter .optimized-images-count').text(ewww_i); if ( ewww_response.update_meta ) { var ewww_updatemeta_data = { action: 'ewww_bulk_update_meta', attachment_id: ewww_response.update_meta, ewww_wpnonce: ewww_bulk._wpnonce, }; $.post(ajaxurl, ewww_updatemeta_data); } if ( ewww_response.error ) { $('.ewww-bulk-spinner').hide(); $('#ewww-bulk-timer').hide(); $('#ewww-bulk-counter').hide(); $('.ewww-pause-optimization').hide(); $('#ewww-optimize-local-images').append('' + ewww_response.error + ''); clearInterval(ewww_quota_update); clearInterval(ewww_countdown); ewwwUpdateQuota(); ewww_countdown = false; } else if (ewww_k == 9) { if ( ewww_response.results ) { ewwwAddTableRow(ewww_response.results); } clearInterval(ewww_quota_update); clearInterval(ewww_countdown); ewww_countdown = false; } else if ( response == 0 ) { $('.ewww-bulk-spinner').hide(); $('#ewww-bulk-timer').hide(); $('#ewww-bulk-counter').hide(); $('.ewww-pause-optimization').hide(); clearInterval(ewww_quota_update); clearInterval(ewww_countdown); ewww_countdown = false; $('#ewww-optimize-local-images').html('' + ewww_bulk.operation_stopped + ''); } else if ( ewww_i < ewww_total_pending && ! ewww_response.done ) { if ( ewww_bulk_start_time ) { ewww_bulk_elapsed_time = Date.now() - ewww_bulk_start_time; ewww_time_per_image = (ewww_bulk_elapsed_time + (ewww_delay * 1000)) / ewww_j; ewww_time_remaining = Math.floor((ewww_total_pending - ewww_i) * ewww_time_per_image / 1000); ewwwTimeIncrementsUpdate(); if ( ! ewww_countdown) { $('#ewww-bulk-timer').fadeIn(); $('#ewww-bulk-timer .time-remaining').html(ewww_days_remaining + ':' + ewww_hours_remaining + ':' + ewww_minutes_remaining + ':' + ewww_seconds_remaining); ewww_countdown = setInterval( ewwwCountDown, 1000 ); } } if ( ewww_response.results ) { ewwwAddTableRow(ewww_response.results); } if ( ewww_response.next_file ) { $('#ewww-optimize-local-images').html(ewww_response.next_file); } if ( ewww_response.new_nonce ) { ewww_bulk._wpnonce = ewww_response.new_nonce; } ewww_error_counter = 30; ewwwTimeoutHandler = setTimeout(ewwwProcessImage, ewww_delay * 1000); } else { if ( ewww_response.results ) { ewwwAddTableRow(ewww_response.results); } var ewww_cleanup_data = { action: 'ewww_bulk_cleanup', ewww_wpnonce: ewww_bulk._wpnonce, }; $.post(ajaxurl, ewww_cleanup_data, function(response) { $('#ewww-optimize-local-images').html(response); $('.ewww-bulk-spinner').hide(); $('#ewww-bulk-timer').hide(); $('#ewww-search-pending').hide(); $('.ewww-pause-optimization').hide(); $('#ewww-hide-table').show(); $('#ewwwio-settings-menu').show(); $('#ewww-settings-wrap').show(); ewwwBulkCleanup(); }); } }) .fail(function() { if (ewww_error_counter == 0) { $('#ewww-optimize-local-images').html('

' + ewww_bulk.operation_interrupted + ': ' + ewww_bulk.bulk_fail_more + '

'); $('.ewww-bulk-spinner').hide(); clearInterval(ewww_quota_update); clearInterval(ewww_countdown); } else { $('#ewww-optimize-local-images').html('

' + ewww_bulk.temporary_failure + ' ' + ewww_error_counter + ' (' + ewww_bulk.bulk_fail_more + ')

'); ewww_error_counter--; ewwwTimeoutHandler = setTimeout(function() { ewwwProcessImage(); }, 1000); } }); } function ewwwBulkCleanup() { clearInterval(ewww_quota_update); clearInterval(ewww_countdown); ewww_countdown = false; ewww_total_pending = 0; ewww_i = 0; ewww_force = 0; ewww_force_smart = 0; ewww_webp_only = 0; } function ewwwCountDown() { if (ewww_time_remaining > 1) { ewww_time_remaining--; } ewwwTimeIncrementsUpdate(); $('#ewww-bulk-timer .time-remaining').text(ewww_days_remaining + ':' + ewww_hours_remaining + ':' + ewww_minutes_remaining + ':' + ewww_seconds_remaining); } function ewwwTimeIncrementsUpdate() { ewww_days_remaining = Math.floor(ewww_time_remaining / 86400); ewww_hours_remaining = Math.floor((ewww_time_remaining - (ewww_days_remaining * 86400)) / 3600); ewww_minutes_remaining = Math.floor((ewww_time_remaining - (ewww_days_remaining * 86400) - (ewww_hours_remaining * 3600)) / 60); ewww_seconds_remaining = ewww_time_remaining - (ewww_days_remaining * 86400) - (ewww_hours_remaining * 3600) - (ewww_minutes_remaining * 60); if (ewww_days_remaining < 10) { ewww_days_remaining = '0'+ewww_days_remaining; } if (ewww_hours_remaining < 10) { ewww_hours_remaining = '0'+ewww_hours_remaining; } if (ewww_minutes_remaining < 10) { ewww_minutes_remaining = '0'+ewww_minutes_remaining; } if (ewww_seconds_remaining < 10) { ewww_seconds_remaining = '0'+ewww_seconds_remaining; } } function ewwwAddTableRow(image_rows) { if (ewwwBulkFirstLoop && ewwwBulkFirstLoop.table) { ewwwBulkFirstPage.find('.ewww-no-images').remove(); $('#ewww-bulk-table').html(ewwwBulkFirstPage); $('.ewww-search-count').text(ewwwBulkFirstLoop.search_result); $('#ewww-search-optimized').hide(); $('#ewww-search-pending').show(); $('#ewww-showing-queue').hide(); if ( ewwwBulkFirstLoop.total_pages > 0 ) { ewww_total_pages = ewwwBulkFirstLoop.total_pages; } $('.current-page-info').html(ewwwBulkFirstLoop.pagination); if (ewwwBulkFirstLoop.total_images_text) { $('.ewww-tablenav-pages .displaying-num').html(ewwwBulkFirstLoop.total_images_text); } ewwwBulkFirstLoop = false; $('.ewww-aux-table').show(); } $('#ewww-bulk-table-wrapper').show(); $('#ewww-bulk-results').slideDown(); ewww_table_visible = true; // We store a copy of the last 50 image records in s3io_bulk_first_page, and need to use it here, // in case they are on a page other than the first one. var isAlternate = ewwwBulkFirstPage.find('tbody tr').first().hasClass('alternate'); $.each(image_rows, function(index, value) { ewww_total_images++; var image_row = $(value); if (! isAlternate) { image_row.addClass('alternate'); } if (0 === ewww_pointer && ! ewww_pending && ! ewww_search) { $('.prev-page').addClass('disabled'); $('.first-page').addClass('disabled'); image_row.prependTo('#ewww-bulk-table tbody').hide().fadeIn(400,function() { $('#ewww-bulk-table tbody tr.ewww-no-images').remove(); if ($('#ewww-bulk-table tbody').children().length > 50) { // Remove the last row, as it belongs on the next page now. $('#ewww-bulk-table tbody').children().last().remove(); } ewwwBulkFirstPage = $('#ewww-bulk-table table').clone(); }); } else { ewwwBulkFirstPage.find('tbody').prepend(image_row); if (ewwwBulkFirstPage.find('tbody tr').length > 50) { // Remove the last row, as it belongs on the next page now. ewwwBulkFirstPage.find('tbody tr').last().remove(); } } isAlternate = ! isAlternate; }); if (ewww_total_images >= 50) { ewww_total_pages = Math.ceil(ewww_total_images / 50); $('.current-page-info .total-pages').text(ewwwNumberFormat.format(ewww_total_pages)); $('.next-page').removeClass('disabled'); $('.last-page').removeClass('disabled'); } else { $('.next-page').addClass('disabled'); $('.last-page').addClass('disabled'); } $('.displaying-num .total-images').text(ewwwNumberFormat.format(ewww_total_images)); } function ewwwAsyncInit() { var ewww_async_init_data = { action: 'ewww_bulk_async_init', ewww_aux_folders: ewww_aux_folders, ewww_delay: ewww_delay, ewww_force: ewww_force, ewww_force_smart: ewww_force_smart, ewww_scan_only: ewww_scan_only, ewww_webp_only: ewww_webp_only, ewww_wpnonce: ewww_bulk._wpnonce, }; $.post(ajaxurl, ewww_async_init_data, function(response) { var is_json = true; try { var ewww_response = JSON.parse(response); } catch (err) { is_json = false; } if ( ! is_json ) { $('#ewww-optimize-local-images').html('' + ewww_bulk.invalid_response + ''); $('.ewww-bulk-spinner').hide(); console.log( response ); return false; } if ( ewww_response.error ) { $('#ewww-optimize-local-images').html('' + ewww_response.error + ''); $('.ewww-bulk-spinner').hide(); } else if ( ewww_response.media_remaining ) { $('.ewww-bulk-spinner').show(); $('#ewww-optimize-local-images').html( ewww_response.media_remaining ); if (!ewww_pending) { $('#ewww-search-pending').show(); } if (ewww_scan_only) { $('.ewww-clear-queue').show(); } else { $('.ewww-pause-optimization').show(); $('.ewww-clear-queue').show(); } ewww_autopoll = true; ewww_autopoll_timeout = setTimeout(ewwwUpdateAsyncBulkStatus,20000); } }) .fail(function() { $('#ewww-optimize-local-images').html('' + ewww_bulk.invalid_response + ''); $('.ewww-bulk-spinner').hide(); }); } if (ewww_autopoll) { $('.ewww-bulk-spinner').show(); ewww_autopoll_timeout = setTimeout(ewwwUpdateAsyncBulkStatus,20000); } function ewwwUpdateAsyncBulkStatus() { var ewww_update_status_data = { action: 'ewww_bulk_async_get_status', ewww_wpnonce: ewww_bulk._wpnonce, }; $.post(ajaxurl, ewww_update_status_data, function(response) { var is_json = true; try { var ewww_response = JSON.parse(response); } catch (err) { is_json = false; } if ( ! is_json ) { $('#ewww-optimize-local-images').html('' + ewww_bulk.invalid_response + ''); $('.ewww-bulk-spinner').hide(); console.log( response ); return false; } if (ewww_response.new_nonce) { ewww_bulk._wpnonce = ewww_response.new_nonce; } if (ewww_scan_only) { $('.ewww-start-optimization').show(); if (!ewww_table_visible && !ewww_hid_pending && ewww_response.images_queued > 0) { ewww_pending = 1; ewww_table_visible = true; $('#ewww-search-pending').hide(); $('#ewww-search-optimized').show(); ewwwUpdateTable(); } } if (ewww_response.media_remaining) { $('#ewww-optimize-local-images').html( ewww_response.media_remaining ); if (!ewww_pending) { $('#ewww-search-pending').show(); } } else if (ewww_response.images_remaining) { $('#ewww-optimize-local-images').html( ewww_response.images_remaining ); if (!ewww_pending) { $('#ewww-search-pending').show(); } if (ewww_scan_only) { $('.ewww-bulk-spinner').hide(); ewww_autopoll = false; return; } if (ewww_table_visible) { ewwwUpdateTable(); } } else { $('.ewww-queue-controls').hide(); $('.ewww-bulk-spinner').hide(); if (ewww_response.error) { $('#ewww-optimize-local-images').html('' + ewww_response.error + ''); } else if (ewww_response.complete) { if (ewww_table_visible) { ewwwUpdateTable(); } $('#ewww-optimize-local-images').html( ewww_response.complete ); $('#ewww-search-pending').hide(); } ewww_autopoll = false; return; } console.log('checking status again in 20s'); ewww_autopoll_timeout = setTimeout(ewwwUpdateAsyncBulkStatus,20000); }) .fail(function() { $('.ewww-bulk-spinner').hide(); $('#ewww-optimize-local-images').html(ewww_bulk.bulk_refresh_error); }); } function ewwwUpdateTable() { console.log('refreshing table/results'); ewww_pointer = 0; ewww_search = $('.ewww-search-input').val(); if ( ! ewww_countdown ) { $('#ewww-show-table').hide(); $('#ewww-hide-table').show(); } $('#ewww-bulk-queue-images').hide(); $('#ewww-bulk-controls').hide(); $('#ewww-bulk-table-wrapper').show() $('#ewww-bulk-results').slideDown(); var ewww_table_data = { action: ewww_table_action, ewww_wpnonce: ewww_bulk._wpnonce, ewww_offset: ewww_pointer, ewww_search: ewww_search, ewww_pending: ewww_pending, ewww_size_sort: ewww_size_sort, }; $.post(ajaxurl, ewww_table_data, function(response) { var ewww_response = ewwwParseTableResponse(response); $('.ewww-aux-table').show(); if (ewww_response && ewww_pending == 0 && ewww_response.show_pending_button) { $('#ewww-search-pending').show(); } if (! ewww_pending) { ewww_total_images = ewww_response.total_images; } if (ewww_response && ewww_response.total_images > 50) { $('.next-page').removeClass('disabled'); $('.last-page').removeClass('disabled'); } else { $('.next-page').addClass('disabled'); $('.last-page').addClass('disabled'); } }); $('.prev-page').addClass('disabled'); $('.first-page').addClass('disabled'); } function ewwwParseTableResponse(response) { try { var ewww_response = JSON.parse(response); } catch (err) { $('#ewww-bulk-table').html('' + ewww_bulk.invalid_response + ''); console.log( response ); return false; } if ( ewww_response.error ) { $('#ewww-bulk-table').html('' + ewww_response.error + ''); return false; } $('#ewww-bulk-table').html(ewww_response.table); $('.ewww-search-count').text(ewww_response.search_result); if ( ewww_response.total_pages > 0 ) { ewww_total_pages = ewww_response.total_pages; } $('.current-page-info').html(ewww_response.pagination); if (ewww_response.total_images_text) { $('.ewww-tablenav-pages .displaying-num').html(ewww_response.total_images_text); } return ewww_response; } $('.ewww-clear-queue').on('click', function () { $('.ewww-bulk-spinner').hide(); clearTimeout(ewww_autopoll_timeout); }); $('#ewww-hide-table').on('click', function() { ewww_table_visible = false; $('#ewww-bulk-results').hide(); if (ewww_scan_only) { ewww_hid_pending = true; } $(this).hide(); $('#ewww-show-table').show(); $('#ewww-optimize-local-images a.button-primary').show(); return false; }); $('#ewww-show-table').on('click', function() { $('#ewww-optimize-local-images a.button-primary').show(); ewww_table_visible = true; ewwwUpdateTable(); return false; }); $('#ewww-search-pending').on('click', function() { ewww_pointer = 0; ewww_pending = 1; $(this).hide(); $('#ewww-search-optimized').show(); ewwwUpdateTable(); return false; }); $('#ewww-search-optimized').on('click', function() { ewww_pointer = 0; ewww_pending = 0; $(this).hide(); $('#ewww-search-pending').show(); if (ewwwBulkFirstPage && ewwwBulkFirstPage.find('tbody tr').length > 0) { $('.current-page-info .current-page').text(1); ewwwBulkFirstPage.clone().replaceAll('#ewww-bulk-table table'); $('.displaying-num .total-images').text(ewwwNumberFormat.format(ewww_total_images)); if (ewwwBulkFirstPage.find('tbody tr').length >= 50) { ewww_total_pages = Math.ceil(ewww_total_images / 50); $('.current-page-info .total-pages').text(ewwwNumberFormat.format(ewww_total_pages)); $('.next-page').removeClass('disabled'); $('.last-page').removeClass('disabled'); } $('.prev-page').addClass('disabled'); $('.first-page').addClass('disabled'); } else { ewwwUpdateTable(); } return false; }); $('.ewww-aux-table').on( 'click', '.ewww-sort-size', function() { ewww_pointer = 0; if (!ewww_size_sort) { ewww_size_sort = 'asc'; } else if ('asc'===ewww_size_sort) { ewww_size_sort = 'desc'; } else { ewww_size_sort = false; } ewwwUpdateTable(); return false; }); $('.ewww-search-form').on( 'submit', function() { ewww_pointer = 0; ewww_search = $('.ewww-search-input').val(); if (ewww_search) { if ( ! ewww_countdown ) { $('.ewww-bulk-spinner').hide(); } clearTimeout(ewww_autopoll_timeout); } else if (ewww_autopoll) { $('.ewww-bulk-spinner').show(); ewww_autopoll_timeout = setTimeout(ewwwUpdateAsyncBulkStatus,20000); } var ewww_table_data = { action: ewww_table_action, ewww_wpnonce: ewww_bulk._wpnonce, ewww_offset: ewww_pointer, ewww_search: ewww_search, ewww_pending: ewww_pending, ewww_size_sort: ewww_size_sort, }; $.post(ajaxurl, ewww_table_data, function(response) { var ewww_response = ewwwParseTableResponse(response); ewww_total_pages = ewww_response.total_pages; if (ewww_response && ewww_response.total_images > 50) { $('.next-page').removeClass('disabled'); $('.last-page').removeClass('disabled'); } else { $('.next-page').addClass('disabled'); $('.last-page').addClass('disabled'); } }); $('.prev-page').addClass('disabled'); $('.first-page').addClass('disabled'); return false; }); $('.next-page').on( 'click', function() { if ($(this).hasClass('disabled')) { return false; } clearTimeout(ewww_autopoll_timeout); if ( ! ewww_countdown ) { $('.ewww-bulk-spinner').hide(); } ewww_search = $('.ewww-search-input').val(); ewww_pointer++; var ewww_table_data = { action: ewww_table_action, ewww_wpnonce: ewww_bulk._wpnonce, ewww_offset: ewww_pointer, ewww_search: ewww_search, ewww_pending: ewww_pending, ewww_size_sort: ewww_size_sort, }; $.post(ajaxurl, ewww_table_data, function(response) { var ewww_response = ewwwParseTableResponse(response); if (ewww_response && ewww_response.total_images <= ((ewww_pointer + 1) * 50)) { $('.next-page').addClass('disabled'); $('.last-page').addClass('disabled'); } }); $('.prev-page').removeClass('disabled'); $('.first-page').removeClass('disabled'); return false; }); $('.prev-page').on( 'click', function() { if ($(this).hasClass('disabled')) { return false; } clearTimeout(ewww_autopoll_timeout); if ( ! ewww_countdown ) { $('.ewww-bulk-spinner').hide(); } ewww_search = $('.ewww-search-input').val(); ewww_pointer--; if (! ewww_search && ! ewww_pending && 0 === ewww_pointer && ewwwBulkFirstPage && ewwwBulkFirstPage.find('tbody tr').length > 0) { $('.current-page-info .current-page').text(1); ewwwBulkFirstPage.clone().replaceAll('#ewww-bulk-table table'); } else { var ewww_table_data = { action: ewww_table_action, ewww_wpnonce: ewww_bulk._wpnonce, ewww_offset: ewww_pointer, ewww_search: ewww_search, ewww_pending: ewww_pending, ewww_size_sort: ewww_size_sort, }; $.post(ajaxurl, ewww_table_data, function(response) { ewwwParseTableResponse(response); }); } if (!ewww_pointer) { $('.prev-page').addClass('disabled'); $('.first-page').addClass('disabled'); if (ewww_autopoll && ! ewww_search) { $('.ewww-bulk-spinner').show(); ewww_autopoll_timeout = setTimeout(ewwwUpdateAsyncBulkStatus,20000); } } $('.next-page').removeClass('disabled'); $('.last-page').removeClass('disabled'); return false; }); $('.last-page').on( 'click', function() { if ($(this).hasClass('disabled')) { return false; } if ( ! ewww_countdown ) { $('.ewww-bulk-spinner').hide(); } clearTimeout(ewww_autopoll_timeout); ewww_search = $('.ewww-search-input').val(); ewww_pointer = ewww_total_pages - 1; var ewww_table_data = { action: ewww_table_action, ewww_wpnonce: ewww_bulk._wpnonce, ewww_offset: ewww_pointer, ewww_search: ewww_search, ewww_pending: ewww_pending, ewww_size_sort: ewww_size_sort, }; $.post(ajaxurl, ewww_table_data, function(response) { ewwwParseTableResponse(response); }); $('.next-page').addClass('disabled'); $('.last-page').addClass('disabled'); $('.prev-page').removeClass('disabled'); $('.first-page').removeClass('disabled'); return false; }); $('.first-page').on( 'click', function() { if ($(this).hasClass('disabled')) { return false; } ewww_pointer = 0; ewww_search = $('.ewww-search-input').val(); if (! ewww_search && ! ewww_pending && ewwwBulkFirstPage && ewwwBulkFirstPage.find('tbody tr').length > 0) { $('.current-page-info .current-page').text(1); ewwwBulkFirstPage.clone().replaceAll('#ewww-bulk-table table'); $('.next-page').removeClass('disabled'); $('.last-page').removeClass('disabled'); } else { var ewww_table_data = { action: ewww_table_action, ewww_wpnonce: ewww_bulk._wpnonce, ewww_offset: ewww_pointer, ewww_search: ewww_search, ewww_pending: ewww_pending, ewww_size_sort: ewww_size_sort, }; $.post(ajaxurl, ewww_table_data, function(response) { var ewww_response = ewwwParseTableResponse(response); if (ewww_response && ewww_response.total_images <= 50) { $('.next-page').addClass('disabled'); $('.last-page').addClass('disabled'); } else { $('.next-page').removeClass('disabled'); $('.last-page').removeClass('disabled'); } if (ewww_autopoll && ! ewww_search) { $('.ewww-bulk-spinner').show(); ewww_autopoll_timeout = setTimeout(ewwwUpdateAsyncBulkStatus,20000); } }); } $('.prev-page').addClass('disabled'); $('.first-page').addClass('disabled'); return false; }); $('.ewww-aux-table').on( 'click', '.ewww-remove-image', function() { var imageID = $(this).data('id'); var ewww_image_removal = { action: 'bulk_aux_images_remove', ewww_wpnonce: ewww_bulk._wpnonce, ewww_image_id: imageID, ewww_pending: ewww_pending, }; $.post(ajaxurl, ewww_image_removal, function(response) { if(response == '1') { $('.ewww-image-' + imageID).remove(); if (ewww_pending) { ewww_total_pending--; $('#ewww-optimize-local-images .ready-to-optimize-count').text(ewwwNumberFormat.format(ewww_total_pending)); $('.displaying-num .total-images').text(ewwwNumberFormat.format(ewww_total_pending)); } else { ewww_total_images--; $('.displaying-num .total-images').text(ewwwNumberFormat.format(ewww_total_images)); } } else { alert(ewww_bulk.remove_failed); } }); return false; }); $('.ewww-aux-table').on( 'click', '.ewww-exclude-image', function() { var imageID = $(this).data('id'); var ewww_image_exclusion = { action: 'bulk_aux_images_exclude', ewww_wpnonce: ewww_bulk._wpnonce, ewww_image_id: imageID, }; $.post(ajaxurl, ewww_image_exclusion, function(response) { if(response == '1') { $('.ewww-image-' + imageID).remove(); ewww_total_pending--; $('#ewww-optimize-local-images .ready-to-optimize-count').text(ewwwNumberFormat.format(ewww_total_pending)); $('.displaying-num .total-images').text(ewwwNumberFormat.format(ewww_total_pending)); } else { alert(ewww_bulk.remove_failed); } }); return false; }); $('.ewww-aux-table').on( 'click', '.ewww-restore-image', function() { var imageID = $(this).data('id'); var ewww_image_restore = { action: 'ewww_manual_image_restore_single', ewww_wpnonce: ewww_bulk._wpnonce, ewww_image_id: imageID, }; var original_html = $('.ewww-image-' + imageID + ' td:last-child').html(); $('.ewww-image-' + imageID + ' td:last-child').html(ewww_bulk.restoring); $.post(ajaxurl, ewww_image_restore, function(response) { var is_json = true; try { var ewww_response = JSON.parse(response); } catch (err) { alert( ewww_bulk.invalid_response ); console.log( response ); return false; } if ( ewww_response.success == '1') { $('.ewww-image-' + imageID + ' td:last-child').html(ewww_bulk.original_restored); } else if (ewww_response.error) { $('.ewww-image-' + imageID + ' td:last-child').html(original_html); alert(ewww_response.error); } }); return false; }); $('.ewww-aux-table').on('click', '.ewww-show-debug-meta', function() { var post_id = $(this).data('id'); $('.ewww-debug-meta-' + post_id).toggle(); }); }); https://validator.w3.org/feed/docs/rss2.html Пинко казино – Официальный сайт Pinco играть онлайн | Зеркало и вход Vibrant_gaming_experiences_and_https_luckywavecasinos_co_uk_offer_endless_entert Wydajność_systemów_kasynowych_z_magnetic_slots_a_nowoczesne_metody_zabezpiecz Wielopoziomowy_system_nagród_i_magneticslots_zapewniający_niezrównane_wrażen Genuine_opportunities_await_with_luckywavescasinos_co_uk_and_exciting_casino_bon طرق الدفع في 1xbet للكمبيوتر للمستخدمين في الإمارات Substantial_winnings_await_with_https_luckywavecasinos_uk_and_expert_player_guid Ontwikkel_je_behendigheid_met_chickenroad_en_ontwijk_verkeer_voor_maximale_score Wydarzenia_i_możliwości_związane_z_grą_na_magneticslotscasinos_pl_w_kasynach Umfangreiche_Informationen_über_nines-casino-ch_com_und_aktuelle_Spieltrends_f Regulaciones_detalladas_y_ventajas_de_jugar_con_1_win_chile_actualmente Strategic_investing_with_a_battery_bet_for_renewable_energy_portfolios_and_growt Interessanti_opportunità_di_gioco_con_atefia_casinò_e_strategie_vincenti_per_d Προσοδοφόρες_αποδόσεις_και_παιχνίδια_ninecasino Wydajne_strategie_i_magnetic-slots-casinos_com_pl_zapewniają_wysokie_wygrane_dl Strategy_unlocks_winning_potential_with_luckywavescasinos_uk_and_premier_online Strategy_guides_for_discerning_players_featuring_lucky-gem-casinos-netherlands_n Verbluffende_winsten_en_spannend_spelplezier_beleef_je_bij_luckygem_Casino_voor Strategic_planning_unlocks_winning_chances_at_luck_casino_opportunities_today Felelős_játék_és_atefia_kaszinó_a_nyerés_esélyeinek_megértéséhez_minde Réfléchissez_attentivement_autour_de_betify_pour_optimiser_lexpérience_des_jo 1xBet Windows App Guide – Download, Bonuses, Payments & Security ШЄЩ†ШІЩЉЩ„ ШЁШ±Щ†Ш§Щ…Ш¬ 1xbet ШўШЁЩ„ ШіШЄЩ€Ш± – دليل المكافآت الترحيبية ومتطلبات الرهان في الإمارات 1xbet Download Somalia Security Guide Πραγματικότητα_τυχερών_παιχνιδιών_με_https_nine Wybór_kasyna_od_oferty_bonusowej_do_nine-casinos_org_pl_kompleksowe_porównanie Curiosità_nascoste_e_luckleopard-it_it_per_esperienze_di_viaggio_uniche_e_memor Whales: Giants of the Ocean Aktuelle_Wettoptionen_bei_bets24_für_Sportfans_und_Casino_Liebhaber_verfügbar Whales: Giants of the Ocean Distinctive_style_choices_with_luckycaponeaustralia_com_elevate_everyday_Austral Bezaubernde_Entdeckungen_mit_https_lucky-hauls_com_für_stilvolle_Geschenkideen Whales: Giants of the Ocean Obrovský_potenciál_online_heren_a_férové_podmínky_Luckycaponecasino_pro_hr Eccellente_opportunità_di_vincita_con_kazeeno_casino_e_promozioni_esclusive_per favorite article 737705 Excitement_builds_with_crash-casinos-ca_ca_mastering_the_art_of_timely_withdrawa Abenteuerliche_Reisen_planen_mit_luckleopards_com_de_für_unvergessliche_Momente Εξερεύνηση_του_slotexo_casino_και_των_συναρπαστικ Izčrpen_uvod_v_atefia_s_poudarkom_na_praktičnih_izkušnjah_in_naprednih_funkci 1win Penguin Rush security guide – verification, payments & safe play Attraktive_Bonusangebote_für_Spieler_bei_https_luckleopards-de_de_jetzt_entdeck Essential_guidance_unlocking_potential_with_https_luckcasinos-uk_uk_for_discerni favorite article 314968 favorite article 314968 Whales: Giants of the Ocean 1win Online Betting and Casino Official site in India 1win Online Betting and Casino Official site in India 1win Online Betting and Casino Official site in India 1win Online Betting and Casino Official site in India