pausera/assets/admin.js
2025-05-13 07:19:59 +02:00

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";
});
});