Aller au contenu

MediaWiki:Common.js

De AECFC

Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  •  Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
/* Tout JavaScript présent ici sera exécuté par tous les utilisateurs à chaque chargement de page. */

$(function () {
    $('a.mw-wiki-logo, a.mw-logo')
        .attr('href', 'Accueil')
        .attr('title', 'Retour a l'accueil');
});
*/

mw.loader.using('mediawiki.util').then(function () {

    function configureAecfcHeader() {
        const logoLink = document.querySelector('a.mw-logo');

        if (!logoLink) {
            return;
        }

        /*
         * Supprime un éventuel ancien bloc personnalisé.
         */
        document.querySelectorAll('.aecfc-header-links').forEach(function (element) {
            element.remove();
        });

        /*
         * Le lien du logo ne doit contenir que l'image.
         * On supprime le wordmark, le sous-titre natif
         * et tout ancien texte ajouté dans ce lien.
         */
        Array.from(logoLink.children).forEach(function (child) {
            if (!child.classList.contains('mw-logo-icon')) {
                child.remove();
            }
        });

        /*
         * Le logo graphique ouvre le site public.
         */
        logoLink.href = 'https://aecfc.org/';
        logoLink.title = 'Site officiel de l’AECFC';
        logoLink.setAttribute(
            'aria-label',
            'Accéder au site officiel de l’AECFC'
        );

        /*
         * Nouveau bloc indépendant pour Accueil et Devoirs.
         */
        const linksBlock = document.createElement('div');
        linksBlock.className = 'aecfc-header-links';

        const accueilLink = document.createElement('a');
        accueilLink.className = 'aecfc-header-home';
        accueilLink.href = mw.util.getUrl('Accueil');
        accueilLink.textContent = 'Accueil';
        accueilLink.title = 'Accueil du wiki';

        const devoirsLink = document.createElement('a');
        devoirsLink.className = 'aecfc-header-homework';
        devoirsLink.href = mw.util.getUrl('Devoirs');
        devoirsLink.textContent = 'Devoirs';
        devoirsLink.title = 'Consulter les devoirs';

        linksBlock.appendChild(accueilLink);
        linksBlock.appendChild(devoirsLink);

        /*
         * Le bloc est placé après le lien du logo,
         * donc il n'est pas contenu dans le même <a>.
         */
        logoLink.insertAdjacentElement('afterend', linksBlock);
    }

    if (document.readyState === 'loading') {
        document.addEventListener(
            'DOMContentLoaded',
            configureAecfcHeader,
            { once: true }
        );
    } else {
        configureAecfcHeader();
    }
});