83 lines
2.2 KiB
JavaScript
83 lines
2.2 KiB
JavaScript
jQuery(function($) {
|
|
var send_command = wp_optimize.send_command;
|
|
|
|
/**
|
|
* Handle delete from cache on the Advanced settings tab.
|
|
*/
|
|
$('.wpo-exclude-from-cache').on('click', function () {
|
|
var btn = $(this),
|
|
post_id = btn.data('id');
|
|
|
|
send_command('change_post_disable_option', {
|
|
post_id: post_id,
|
|
meta_key: '_wpo_disable_caching',
|
|
disable: 0
|
|
}, function (response) {
|
|
if (response.result) {
|
|
var row = btn.closest('tr');
|
|
row.fadeOut('fast', function () {
|
|
if (!(row.prev().is('tr') || row.next().is('tr'))) {
|
|
row.closest('table').remove();
|
|
}
|
|
row.remove();
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
/**
|
|
* Check the response from save cache settings.
|
|
*/
|
|
$(document).on('validate_cloudflare_settings', function(event, response) {
|
|
if (response && response.hasOwnProperty('cloudflare_error')) {
|
|
$('.wpo-error__cloudflare-cache').removeClass('wpo_hidden').find('p').text(response.cloudflare_error);
|
|
} else {
|
|
$('.wpo-error__cloudflare-cache').addClass('wpo_hidden').find('p').text('');
|
|
}
|
|
});
|
|
|
|
/**
|
|
* Handle change "Purge Cloudflare cached pages" checkbox state.
|
|
*/
|
|
$('#purge_cloudflare_cache').on('change', function() {
|
|
var checkbox = $(this),
|
|
cloudflare_credentials_div = $('#wpo_cloudflare_credentials');
|
|
|
|
if (checkbox.prop('checked')) {
|
|
cloudflare_credentials_div.show();
|
|
} else {
|
|
cloudflare_credentials_div.hide();
|
|
}
|
|
});
|
|
|
|
/**
|
|
* Allow select only one element from group of elements with .wpo-select-group class.
|
|
*/
|
|
$('.wpo-select-group').on('change', function() {
|
|
var current = $(this);
|
|
if (current.hasClass('wpo-select-group-processing')) return;
|
|
update_select_group_view(current);
|
|
});
|
|
|
|
if ($('.wpo-select-group:checked').length > 0) {
|
|
update_select_group_view($('.wpo-select-group:checked').first());
|
|
}
|
|
|
|
/**
|
|
* Update .wpo-select-group elements state.
|
|
*
|
|
* @param {Object} current
|
|
*/
|
|
function update_select_group_view(current) {
|
|
$('.wpo-select-group').each(function() {
|
|
var el = $(this);
|
|
if (current[0] != el[0]) {
|
|
el.prop('checked', false)
|
|
.addClass('wpo-select-group-processing')
|
|
.trigger('change')
|
|
.removeClass('wpo-select-group-processing')
|
|
.prop('disabled', current.prop('checked'));
|
|
}
|
|
});
|
|
}
|
|
}); |