99 lines
3.2 KiB
JavaScript
99 lines
3.2 KiB
JavaScript
document.addEventListener("DOMContentLoaded", function () {
|
|
|
|
// ============================
|
|
// Tabs Switching
|
|
// ============================
|
|
const tabs = document.querySelectorAll(".pausera-tab-button");
|
|
const contents = document.querySelectorAll(".pausera-tab-content");
|
|
|
|
tabs.forEach(btn => {
|
|
btn.addEventListener("click", () => {
|
|
tabs.forEach(b => b.classList.remove("active"));
|
|
contents.forEach(c => c.classList.remove("active"));
|
|
btn.classList.add("active");
|
|
document.querySelector(`#${btn.dataset.tab}`).classList.add("active");
|
|
});
|
|
});
|
|
|
|
// ============================
|
|
// Form & Save Button Logic
|
|
// ============================
|
|
const form = document.getElementById("pausera-form");
|
|
if (!form) return;
|
|
const saveButton = form.querySelector(".pausera-save");
|
|
|
|
const enableSave = (name, value) => {
|
|
console.log(`✏️ Changed: [${name}] → ${value}`);
|
|
saveButton.disabled = false;
|
|
};
|
|
|
|
form.querySelectorAll("input, select, textarea").forEach(field => {
|
|
const type = field.type;
|
|
|
|
if (type === "checkbox") {
|
|
field.addEventListener("change", () => {
|
|
enableSave(field.name, field.checked);
|
|
});
|
|
} else if (field.tagName === "SELECT") {
|
|
field.addEventListener("change", () => {
|
|
const val = field.multiple
|
|
? Array.from(field.selectedOptions).map(opt => opt.value).join(', ')
|
|
: field.value;
|
|
enableSave(field.name, val);
|
|
});
|
|
|
|
// Handle Select2
|
|
if (jQuery && jQuery(field).hasClass('acf-style-select')) {
|
|
jQuery(field).on('select2:select select2:unselect', () => {
|
|
const val = field.multiple
|
|
? Array.from(field.selectedOptions).map(opt => opt.value).join(', ')
|
|
: field.value;
|
|
enableSave(field.name, val);
|
|
});
|
|
}
|
|
|
|
} else {
|
|
field.addEventListener("input", () => {
|
|
enableSave(field.name, field.value);
|
|
});
|
|
}
|
|
});
|
|
|
|
// ============================
|
|
// Maintenance Toggle Switch
|
|
// ============================
|
|
const toggleBox = document.getElementById("maintenance-toggle");
|
|
if (toggleBox) {
|
|
toggleBox.addEventListener("click", () => {
|
|
const checkbox = toggleBox.querySelector("input[type=checkbox]");
|
|
const label = toggleBox.querySelector(".pausera-toggle-label");
|
|
|
|
checkbox.checked = !checkbox.checked;
|
|
toggleBox.classList.toggle("active", checkbox.checked);
|
|
label.textContent = checkbox.checked ? label.dataset.labelOn : label.dataset.labelOff;
|
|
|
|
checkbox.dispatchEvent(new Event("change", { bubbles: true }));
|
|
console.log("🟢 Maintenance toggled:", checkbox.checked);
|
|
});
|
|
}
|
|
|
|
// ============================
|
|
// On Form Submit
|
|
// ============================
|
|
form.addEventListener("submit", function (e) {
|
|
e.preventDefault();
|
|
document.getElementById("pausera-confirm-box").style.display = "flex";
|
|
});
|
|
|
|
document.getElementById("confirm-save").addEventListener("click", function () {
|
|
document.getElementById("pausera-confirm-box").style.display = "none";
|
|
form.submit();
|
|
});
|
|
|
|
document.getElementById("cancel-save").addEventListener("click", function () {
|
|
document.getElementById("pausera-confirm-box").style.display = "none";
|
|
});
|
|
|
|
|
|
});
|