| Server IP : 54.36.91.62 / Your IP : 216.73.217.117 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/coopiak/amisdesseniors-fr/vesoul0000/media/kunena/core/js/ |
Upload File : |
document.addEventListener("DOMContentLoaded", function () {
// Function to clear localStorage based on prefix
function clearLocalStorageByPrefix(prefix) {
const keysToRemove = [];
for (let i = 0; i < localStorage.length; i++) {
const key = localStorage.key(i);
if (key.startsWith(prefix)) {
keysToRemove.push(key);
}
}
keysToRemove.forEach((key) => {
localStorage.removeItem(key);
});
console.log(
`Removed ${keysToRemove.length} localStorage items with prefix "${prefix}".`
);
}
// Check for localstarage clear button and add on click event to it when found
const clearButton = document.getElementById("clear-kunena-storage-button");
// Add a click event listener
if (clearButton) {
clearButton.addEventListener("click", function () {
clearLocalStorageByPrefix("kunena-");
});
}
// Check for URL parameter on page load
// [URL]?clear-kunena-localstorage=true
const urlParams = new URLSearchParams(window.location.search);
const clearStateParam = urlParams.get("clear-kunena-localstorage");
if (clearStateParam === "true") {
clearLocalStorageByPrefix("kunena-");
}
// Logic for Collapse elements
const collapseToggles = document.querySelectorAll(
'[data-bs-toggle="collapse"]'
);
const ignoredCollapseIds = new Set(["search", "searchoptions"]);
collapseToggles.forEach((toggle) => {
const targetId = toggle.getAttribute("data-bs-target");
if (!targetId) return;
const collapseElement = document.querySelector(targetId);
if (!collapseElement || ignoredCollapseIds.has(collapseElement.id)) {
return;
}
const storageKey = `kunena-collapse-state-${targetId}`;
const storedState = localStorage.getItem(storageKey);
if (storedState === "hide") {
collapseElement.classList.remove("show");
toggle.setAttribute("aria-expanded", "false");
} else if (storedState === "show") {
collapseElement.classList.add("show");
toggle.setAttribute("aria-expanded", "true");
}
collapseElement.addEventListener("shown.bs.collapse", function () {
localStorage.setItem(storageKey, "show");
});
collapseElement.addEventListener("hidden.bs.collapse", function () {
localStorage.setItem(storageKey, "hide");
});
});
// First, select all alert boxes that are dismissible
const dismissibleAlerts = document.querySelectorAll(".alert-dismissible");
dismissibleAlerts.forEach((alertElement) => {
if (!alertElement.id) return; // Skip if no ID is found
const alertId = alertElement.id;
const storageKey = `kunena-alert-dismissed-${alertId}`;
// 1. On page load, check if the alert was previously dismissed
if (localStorage.getItem(storageKey) === "true") {
alertElement.classList.add("d-none");
}
// 2. Add event listener to the alert to save its state when closed
alertElement.addEventListener("closed.bs.alert", function () {
localStorage.setItem(storageKey, "true");
});
});
});