AnonSec Shell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/coopiak/amisdesseniors-fr/vesoul0000/media/kunena/core/js//localstorage.js
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");
        });
    });
});

Anon7 - 2022
AnonSec Team