jQuery(document).ready(function($) { $('.compress-image-button').click(function() { var imageId = $(this).data('image-id'); var originalSize = $(this).data('original-size'); var imageType = $(this).data('image-type'); const supportedTypes = ['image/jpeg', 'image/jpg', 'image/png', 'image/webp']; if (!supportedTypes.includes(imageType.toLowerCase())) { alert('Image format not supported. Supported formats: JPEG, JPG, PNG, and WebP.'); return; } const modalHtml = `

Original Size: ${originalSize} KB

Compressed Size: Calculating... KB

`; $('body').append(modalHtml); const $modal = $('#compress-image-modal'); const $overlay = $('#modal-overlay'); const $replaceButton = $('#replace-compress'); const $compressedSizeDisplay = $('#compressed-size'); $modal.fadeIn(); // Trigger size calculation $.post(spro_compress.ajax_url, { action: 'softaculous_pro_calculate_compressed_size', image_id: imageId, softaculous_pro_security: spro_compress.nonce }, function(response) { if (response.success) { var compressedSize = response.data.compressed_size; $('#compressed-size').text(compressedSize); if (Math.round(compressedSize) >= Math.round(originalSize)) { alert('The image cannot be compressed further.'); $modal.add($overlay).fadeOut().remove(); }else { // Update the compressed size in the modal and enable the replace button $compressedSizeDisplay.text(response.data.compressed_size); $replaceButton.prop('disabled', false).css('cursor', 'pointer'); // Handle "Compress and Replace" (replaces the current image in place) $replaceButton.click(function() { var replaceImageId = $(this).data('image-id'); $.post(spro_compress.ajax_url, { action: 'softaculous_pro_replace_compressed_image', image_id: replaceImageId, softaculous_pro_security: spro_compress.nonce }, function(replaceResponse) { if (replaceResponse.success) { alert('Image has been compressed and replaced.'); $('#compress-image-modal, #modal-overlay').fadeOut().remove(); location.reload(); } else { alert('Compression and replacement failed: ' + replaceResponse.data); } }); }); } }else { alert('Size calculation failed: ' + response.data); } }); $('#cancel-compress').click(function() { $('#compress-image-modal, #modal-overlay').fadeOut().remove(); }); }); });