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");
mw.loader.using(['mediawiki.util']).then(function () {
mw.loader.using(['mediawiki.util']).then(function () {


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


        // If nothing found, try again
         if (items.length === 0) {
         if (items.length === 0) {
            // Try again shortly (content not ready yet)
             setTimeout(applyFormatting, 300);
             setTimeout(processList, 200);
             return;
             return;
         }
         }
Line 21: Line 20:
             const full = link.textContent;
             const full = link.textContent;


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


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


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


            // Apply label
             link.textContent = label;
             link.textContent = label;


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


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


     // Run after DOM ready
     // Start after page load
     $(processList);
     $(applyFormatting);


});
});

Latest revision as of 13:45, 12 April 2026

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

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

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

        // If nothing found, try again
        if (items.length === 0) {
            setTimeout(applyFormatting, 300);
            return;
        }

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

            const full = link.textContent;

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

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

            // Get last part
            const label = clean.split("/").pop();

            // Apply label
            link.textContent = label;

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

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

    // Start after page load
    $(applyFormatting);

});