wp-plugin-cloudflare-cache/assets/js/backend.js

942 lines
28 KiB
JavaScript
Raw Permalink Normal View History

2024-03-27 15:58:02 -04:00
"use strict"
let swcfpc_toolbar_cache_status_tries = 0;
let swcfpc_toolbar_cache_status_interval = null;
function swcfpc_handle_conditional_settings(mainOption) {
// Check if the checked option has value > 0 i.e. YES || Enable selected
if (parseInt(mainOption.value) > 0) {
// True value is selected
// Show the items with the class name present in `data-mainoption`
if (document.querySelectorAll(`.${mainOption.dataset.mainoption}`).length > 0) {
document.querySelectorAll(`.${mainOption.dataset.mainoption}`).forEach((item) => {
if (item.classList.contains('swcfpc_hide')) {
item.classList.remove('swcfpc_hide')
}
})
}
// Hide all the options that should be hidden when the main option is TRUE
// i.e. Hide all items with `data-mainoption_not` in them
if (document.querySelectorAll(`.${mainOption.dataset.mainoption}_not`).length > 0) {
// Loop through the items and show all the other settings are should be shown when the main item is not enabled
document.querySelectorAll(`.${mainOption.dataset.mainoption}_not`).forEach((item) => {
item.classList.add('swcfpc_hide')
})
}
} else { // FALSE value is selected
// Hide the items with class name = `data-mainoption`
if (document.querySelectorAll(`.${mainOption.dataset.mainoption}`).length > 0) {
document.querySelectorAll(`.${mainOption.dataset.mainoption}`).forEach((item) => {
item.classList.add('swcfpc_hide')
})
}
// Show the items with class = `data-mainoption_not`
if (document.querySelectorAll(`.${mainOption.dataset.mainoption}_not`).length > 0) {
document.querySelectorAll(`.${mainOption.dataset.mainoption}_not`).forEach((item) => {
if (item.classList.contains('swcfpc_hide')) {
item.classList.remove('swcfpc_hide')
}
})
}
}
}
function swcfpc_lock_screen() {
if (!document.querySelector('.swcfpc_please_wait')) {
const inputTypeSubmit = document.querySelectorAll('input[type=submit]')
const inputTypeBtn = document.querySelectorAll('input[type=submit]')
const anchorTags = document.querySelectorAll('a')
inputTypeSubmit.forEach((item) => {
item.classList.add('swcfpc_hide')
})
inputTypeBtn.forEach((item) => {
item.classList.add('swcfpc_hide')
})
anchorTags.forEach((item) => {
item.classList.add('swcfpc_hide')
})
const waitDiv = document.createElement('div')
waitDiv.classList.add('swcfpc_please_wait')
document.body.prepend(waitDiv)
}
}
function swcfpc_unlock_screen() {
const inputTypeSubmit = document.querySelectorAll('input[type=submit]')
const inputTypeBtn = document.querySelectorAll('input[type=submit]')
const anchorTags = document.querySelectorAll('a')
inputTypeSubmit.forEach((item) => {
item.classList.remove('swcfpc_hide')
})
inputTypeBtn.forEach((item) => {
item.classList.remove('swcfpc_hide')
})
anchorTags.forEach((item) => {
item.classList.remove('swcfpc_hide')
})
document.querySelector('.swcfpc_please_wait').remove()
}
function swcfpc_redirect_to_page(url) {
window.location = url
}
function swcfpc_refresh_page() {
window.location.reload()
}
function swcfpc_display_ok_dialog(title, content, width, height, type, subtitle, button_name, callback, callback_first_parameter) {
width = (typeof width === "undefined" || width == null) ? 350 : parseInt(width)
height = (typeof height === "undefined" || height == null) ? 300 : parseInt(height)
type = (typeof type === "undefined") ? null : type
subtitle = (typeof subtitle === "undefined") ? null : subtitle
button_name = (typeof button_name === "undefined") ? "Close" : button_name
callback = (typeof callback === "undefined") ? null : callback
callback_first_parameter = (typeof callback_first_parameter === "undefined") ? null : callback_first_parameter
let icon = "success"
if (type === "warning")
icon = "warning"
else if (type === "error")
icon = "error"
else if (type === "info")
icon = "info"
else if (type === "question")
icon = "question"
if (callback == null) {
Swal.fire({
title: (subtitle !== null) ? subtitle : '',
html: content,
icon: icon,
confirmButtonText: button_name
})
} else {
Swal.fire({
title: (subtitle !== null) ? subtitle : '',
html: content,
icon: icon,
confirmButtonText: button_name,
willClose: () => {
if (callback_first_parameter != null) {
callback(callback_first_parameter)
}
else {
callback()
}
}
}).then((result) => {
if (result.isConfirmed) {
if (callback_first_parameter != null) {
callback(callback_first_parameter)
}
else {
callback()
}
}
})
}
}
async function swcfpc_purge_varnish_cache() {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_purge_varnish_cache&security=${ajax_nonce}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success")
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_purge_fallback_page_cache() {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_purge_fallback_page_cache&security=${ajax_nonce}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success")
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_force_purge_everything() {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_purge_everything&security=${ajax_nonce}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success")
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_purge_whole_cache() {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_purge_whole_cache&security=${ajax_nonce}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success")
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_import_config_file(config_file) {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
const dataJSON = encodeURIComponent(JSON.stringify({
"config_file": config_file
}))
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_import_config_file&security=${ajax_nonce}&data=${dataJSON}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success", null, "Ok", swcfpc_refresh_page)
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_purge_single_post_cache(post_id) {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
const dataJSON = encodeURIComponent(JSON.stringify({
"post_id": post_id
}))
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_purge_single_post_cache&security=${ajax_nonce}&data=${dataJSON}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success")
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_test_page_cache() {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_test_page_cache&security=${ajax_nonce}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success")
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_enable_page_cache() {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_enable_page_cache&security=${ajax_nonce}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success", null, "Ok", swcfpc_refresh_page)
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_disable_page_cache() {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_disable_page_cache&security=${ajax_nonce}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success", null, "Ok", swcfpc_refresh_page)
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_reset_all() {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_reset_all&security=${ajax_nonce}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success", null, "Ok", swcfpc_refresh_page)
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_clear_logs() {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_clear_logs&security=${ajax_nonce}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success")
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_start_preloader() {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_preloader_start&security=${ajax_nonce}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success")
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
async function swcfpc_unlock_preloader() {
try {
const ajax_nonce = document.getElementById('swcfpc-ajax-nonce').innerText
swcfpc_lock_screen()
const response = await fetch(swcfpc_ajax_url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
},
body: `action=swcfpc_preloader_unlock&security=${ajax_nonce}`,
credentials: 'same-origin',
timeout: 10000
})
if (response.ok) {
const data = await response.json()
swcfpc_unlock_screen()
if (data.status === 'ok') {
swcfpc_display_ok_dialog("Success", `${data.success_msg}`, null, null, "success")
} else {
swcfpc_display_ok_dialog("Error", `${data.error}`, null, null, "error")
}
} else {
console.error(`Error: ${response.status} ${response.statusText}`)
swcfpc_unlock_screen()
}
} catch (err) {
alert(`Error: ${err.status} ${err.message}`)
console.error(err)
swcfpc_unlock_screen()
}
}
/*
* Handling the Nav Tabs inside settings page
**/
// Checking if selector exists
if (document.querySelector('#swcfpc_tab_links .nav-tab:not(.swcfpc-external)')) {
// Fetch all the selectors with same target
const navTabs = document.querySelectorAll('#swcfpc_tab_links .nav-tab:not(.swcfpc-external)')
// Start forEach loop on all the nodes selected
navTabs.forEach((navItem) => {
// Add click event listener on all the items
navItem.addEventListener('click', (e) => {
e.preventDefault()
const id = e.target.dataset.tab
if (typeof id === undefined) {
return true
}
// Loop again through the selected nodes to remove .nav-tab-active if it exists anywhere
navTabs.forEach((navItem) => {
if (navItem.classList.contains('nav-tab-active')) {
navItem.classList.remove('nav-tab-active')
}
})
// Add .nav-tab-active to the clicked Item
e.target.classList.add('nav-tab-active')
// Loop through all items with .swcfpc_tab and if any of those items has .active, remove that
document.querySelectorAll('.swcfpc_tab').forEach((item) => {
if (item.classList.contains('active')) {
item.classList.remove('active')
}
})
// Add .swcfpc_tab to the id selected
document.getElementById(id).classList.add('active')
const generalSubmitBtn = document.querySelector('input[name=swcfpc_submit_general]')
if (id === 'faq') {
generalSubmitBtn.classList.add('swcfpc_hide')
} else if (generalSubmitBtn.classList.contains('swcfpc_hide')) {
generalSubmitBtn.classList.remove('swcfpc_hide')
}
// Add the id value to the hidden input field
document.querySelector('input[name=swcfpc_tab]').value = id
})
})
}
function swcfpc_init_accordions() {
const acc = document.getElementsByClassName("swcfpc_faq_question");
for (let i = 0; i < acc.length; i++) {
acc[i].addEventListener("click", function () {
/* Toggle between adding and removing the "active" class,
to highlight the button that controls the panel */
this.classList.toggle("active");
/* Toggle between hiding and showing the active panel */
const panel = this.nextElementSibling;
if (panel.style.display === "block") {
panel.style.display = "none";
} else {
panel.style.display = "block";
}
});
}
}
function swcfpc_update_toolbar_cache_status() {
if (document.getElementById('wp-admin-bar-wp-cloudflare-super-page-cache-toolbar-container') != null) {
if (swcfpc_cache_enabled == 0) {
document.getElementById('wp-admin-bar-wp-cloudflare-super-page-cache-toolbar-container').classList.remove('bullet-green');
document.getElementById('wp-admin-bar-wp-cloudflare-super-page-cache-toolbar-container').classList.add('bullet-red');
}
else {
document.getElementById('wp-admin-bar-wp-cloudflare-super-page-cache-toolbar-container').classList.remove('bullet-red');
document.getElementById('wp-admin-bar-wp-cloudflare-super-page-cache-toolbar-container').classList.add('bullet-green');
}
clearInterval(swcfpc_toolbar_cache_status_interval);
} else {
swcfpc_toolbar_cache_status_tries++;
}
}
document.addEventListener('DOMContentLoaded', (event) => {
if (typeof swcfpc_cache_enabled == 'undefined') {
let swcfpc_cache_enabled = 0;
}
if (document.getElementById("swcfpc_main_content") !== null) {
swcfpc_cache_enabled = parseInt(document.getElementById("swcfpc_main_content").getAttribute("data-cache_enabled"));
if (swcfpc_cache_enabled == null || isNaN(swcfpc_cache_enabled))
swcfpc_cache_enabled = 0;
}
if (document.getElementById('swcfpc_clear_logs')) {
document.getElementById('swcfpc_clear_logs').addEventListener('click', (e) => {
e.preventDefault()
swcfpc_clear_logs()
})
}
if (document.getElementById('swcfpc_start_preloader')) {
document.getElementById('swcfpc_start_preloader').addEventListener('click', (e) => {
e.preventDefault()
swcfpc_start_preloader()
})
}
if (document.getElementById('swcfpc_unlock_preloader')) {
document.getElementById('swcfpc_unlock_preloader').addEventListener('click', (e) => {
e.preventDefault()
swcfpc_unlock_preloader()
})
}
if (document.querySelector('#swcfpc_import_config_start')) {
document.querySelector('#swcfpc_import_config_start').addEventListener('click', (e) => {
e.preventDefault()
const config_file = document.querySelector('#swcfpc_import_config_content').value
swcfpc_import_config_file(config_file)
})
}
if (document.getElementById('swcfpc_fallback_page_cache_purge')) {
document.getElementById('swcfpc_fallback_page_cache_purge').addEventListener('click', (e) => {
e.preventDefault()
swcfpc_purge_fallback_page_cache()
})
}
if (document.querySelector('#wp-admin-bar-wp-cloudflare-super-page-cache-toolbar-purge-all a')) {
document.querySelector('#wp-admin-bar-wp-cloudflare-super-page-cache-toolbar-purge-all a').addEventListener('click', (e) => {
e.preventDefault()
swcfpc_purge_whole_cache()
})
}
if (document.querySelector('#wp-admin-bar-wp-cloudflare-super-page-cache-toolbar-purge-single a')) {
document.querySelector('#wp-admin-bar-wp-cloudflare-super-page-cache-toolbar-purge-single a').addEventListener('click', (e) => {
e.preventDefault()
const post_id = e.target.hash.replace('#', '')
swcfpc_purge_single_post_cache(post_id)
})
}
if (document.querySelector('.swcfpc_action_row_single_post_cache_purge')) {
document.querySelectorAll('.swcfpc_action_row_single_post_cache_purge').forEach((item) => {
item.addEventListener('click', (e) => {
e.preventDefault()
const post_id = e.target.dataset.post_id
swcfpc_purge_single_post_cache(post_id)
})
})
}
if (document.getElementById('swcfpc_varnish_cache_purge')) {
document.getElementById('swcfpc_varnish_cache_purge').addEventListener('click', (e) => {
e.preventDefault()
swcfpc_purge_varnish_cache()
})
}
if (document.getElementById('swcfpc_form_purge_cache')) {
document.getElementById('swcfpc_form_purge_cache').addEventListener('submit', (e) => {
e.preventDefault()
swcfpc_purge_whole_cache()
})
}
if (document.getElementById('swcfpc_purge_cache_everything')) {
document.getElementById('swcfpc_purge_cache_everything').addEventListener('click', (e) => {
e.preventDefault()
swcfpc_force_purge_everything()
})
}
if (document.querySelector('#wp-admin-bar-wp-cloudflare-super-page-cache-toolbar-force-purge-everything a')) {
document.querySelector('#wp-admin-bar-wp-cloudflare-super-page-cache-toolbar-force-purge-everything a').addEventListener('click', (e) => {
e.preventDefault()
swcfpc_force_purge_everything()
})
}
if (document.getElementById('swcfpc_form_test_cache')) {
document.getElementById('swcfpc_form_test_cache').addEventListener('submit', (e) => {
e.preventDefault()
swcfpc_test_page_cache()
})
}
if (document.getElementById('swcfpc_form_enable_cache')) {
document.getElementById('swcfpc_form_enable_cache').addEventListener('submit', (e) => {
e.preventDefault()
swcfpc_enable_page_cache()
})
}
if (document.getElementById('swcfpc_form_disable_cache')) {
document.getElementById('swcfpc_form_disable_cache').addEventListener('submit', (e) => {
e.preventDefault()
swcfpc_disable_page_cache()
})
}
if (document.getElementById('swcfpc_form_reset_all')) {
document.getElementById('swcfpc_form_reset_all').addEventListener('submit', (e) => {
e.preventDefault()
if (confirm("Are you sure you want reset all?"))
swcfpc_reset_all()
})
}
if (document.querySelector('select[name=swcfpc_cf_auth_mode]')) {
document.querySelector('select[name=swcfpc_cf_auth_mode]').addEventListener('change', (e) => {
e.preventDefault()
const method = e.target.value
if (method === '0') { // API Key
document.querySelectorAll('.api_token_method').forEach((item) => {
item.classList.add('swcfpc_hide')
})
document.querySelectorAll('.api_key_method').forEach((item) => {
item.classList.remove('swcfpc_hide')
})
} else { // API Token
document.querySelectorAll('.api_token_method').forEach((item) => {
item.classList.remove('swcfpc_hide')
})
document.querySelectorAll('.api_key_method').forEach((item) => {
item.classList.add('swcfpc_hide')
})
}
})
}
// Handling how the option shows based on selected option
// Checking if there is any item with .conditional_item to begin with
if (document.querySelectorAll('.conditional_item').length > 0) {
// Select all the items with .conditional_item & loop through them
document.querySelectorAll('.conditional_item').forEach((mainItem) => {
// Run on first load after DOM is loaded
// Check if the item is checked as on the loaded event we are only setting style based on the data we got from server
if (mainItem.checked) {
swcfpc_handle_conditional_settings(mainItem)
}
// Add click add event listener to each mainItem so in future when a user clicks on them we can handle it accordingly
mainItem.addEventListener('click', (e) => {
swcfpc_handle_conditional_settings(e.target)
})
})
}
if (document.querySelector('.swcfpc_faq_accordion')) {
swcfpc_init_accordions();
}
if (document.querySelector('#swcfpc_tab_links .nav-tab-active')) {
const active_tab_id = document.querySelector('#swcfpc_tab_links .nav-tab-active').dataset.tab
if (typeof active_tab_id !== undefined) {
document.querySelector('input[name=swcfpc_tab]').value = active_tab_id
}
}
swcfpc_toolbar_cache_status_interval = window.setInterval(swcfpc_update_toolbar_cache_status, 2000);
})