Jump to content

MediaWiki:Common.js: Difference between revisions

From Costa Sano KB
No edit summary
No edit summary
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */
alert("JS is running");
alert("JS is running");
document.addEventListener("DOMContentLoaded", function () {
mw.loader.using(['mediawiki.util']).then(function () {
    const container = document.querySelector("#ns-tree");
    if (!container) return;


     const items = container.querySelectorAll("li");
     function processList() {
        const container = document.querySelector("#ns-tree");
        if (!container) return;


    items.forEach(li => {
         const items = container.querySelectorAll("li");
         const link = li.querySelector("a");
        if (!link) return;


         const full = link.textContent;
         if (items.length === 0) {
            // Try again shortly (content not ready yet)
            setTimeout(processList, 200);
            return;
        }
 
        items.forEach(function (li) {
            const link = li.querySelector("a");
            if (!link) return;
 
            const full = link.textContent;
 
            let clean = full.replace(/^Drupal:/, "");


        // Remove namespace
            const depth = (clean.match(/\//g) || []).length;
        let clean = full.replace(/^Drupal:/, "");


        // Depth (based on "/")
            const parts = clean.split("/");
        const depth = (clean.match(/\//g) || []).length;
            const label = parts[parts.length - 1];


        // Last part only
            link.textContent = label;
        const parts = clean.split("/");
        const label = parts[parts.length - 1];


        // Apply label
            li.style.marginLeft = (depth * 20) + "px";
        link.textContent = label;


        // Indentation
            if (depth === 0) {
        li.style.marginLeft = (depth * 20) + "px";
                li.classList.add("top-level");
                link.style.fontWeight = "bold";
            }
        });
    }
 
    // Run after DOM ready
    $(processList);


        // Highlight top-level
        if (depth === 0) {
            link.style.fontWeight = "bold";
            li.style.marginTop = "8px";
        }
    });
});
});

Revision as of 13:42, 12 April 2026

/* Any JavaScript here will be loaded for all users on every page load. */
alert("JS is running");
mw.loader.using(['mediawiki.util']).then(function () {

    function processList() {
        const container = document.querySelector("#ns-tree");
        if (!container) return;

        const items = container.querySelectorAll("li");

        if (items.length === 0) {
            // Try again shortly (content not ready yet)
            setTimeout(processList, 200);
            return;
        }

        items.forEach(function (li) {
            const link = li.querySelector("a");
            if (!link) return;

            const full = link.textContent;

            let clean = full.replace(/^Drupal:/, "");

            const depth = (clean.match(/\//g) || []).length;

            const parts = clean.split("/");
            const label = parts[parts.length - 1];

            link.textContent = label;

            li.style.marginLeft = (depth * 20) + "px";

            if (depth === 0) {
                li.classList.add("top-level");
                link.style.fontWeight = "bold";
            }
        });
    }

    // Run after DOM ready
    $(processList);

});