Aller au contenu

« MediaWiki:Common.js » : différence entre les versions

De AECFC
Aucun résumé des modifications
Aucun résumé des modifications
Balise : Révoqué
Ligne 8 : Ligne 8 :
*/
*/


(function () {
/* Ensemble : logo + liens Accueil et Devoirs */
     'use strict';
.aecfc-brand {
     display: flex;
    align-items: center;
    flex: 0 0 auto;
    min-width: max-content;
}


    function configureAecfcLogo() {
/* Logo graphique uniquement */
        const mainLink = document.querySelector('a.mw-logo');
.aecfc-brand .aecfc-logo-link {
    display: flex !important;
    align-items: center;
    flex: 0 0 auto !important;


        if (!mainLink) {
    width: auto !important;
            return;
    height: auto !important;
        }
    margin: 0 !important;


        // Évite une seconde initialisation.
    position: static !important;
        if (mainLink.dataset.aecfcRouting === '1') {
    inset: auto !important;
            return;
    z-index: auto !important;
        }


        mainLink.dataset.aecfcRouting = '1';
    pointer-events: auto !important;
}


        /*
/* Les deux liens à droite du logo */
        * Supprime le titre et le sous-titre natifs,
.aecfc-text-links {
        * mais conserve l'image du logo.
    display: flex;
        */
    flex-direction: column;
        const nativeText = mainLink.querySelector('.mw-logo-container');
    align-items: flex-start;
    justify-content: center;


        if (nativeText) {
    margin-left: 14px;
            nativeText.remove();
    white-space: nowrap;
        }


        /*
    position: relative;
        * Création des deux textes affichés à droite du logo.
    z-index: 10;
        * Ce sont volontairement des <span>, pas des liens imbriqués.
}
        */
        const textBlock = document.createElement('span');
        textBlock.className = 'aecfc-logo-texts';


        const accueilText = document.createElement('span');
/* Accueil : texte principal */
        accueilText.className = 'aecfc-accueil-text';
.aecfc-accueil-link,
        accueilText.textContent = 'Accueil';
.aecfc-accueil-link:visited {
        accueilText.title = 'Accueil du wiki';
    color: #287676;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.15;
    text-decoration: none;
    pointer-events: auto;
}


        const devoirsText = document.createElement('span');
/* Devoirs : texte secondaire */
        devoirsText.className = 'aecfc-devoirs-text';
.aecfc-devoirs-link,
        devoirsText.textContent = 'Devoirs';
.aecfc-devoirs-link:visited {
        devoirsText.title = 'Consulter les devoirs';
    color: #3366cc;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.25;
    text-decoration: none;
    margin-top: 3px;
    pointer-events: auto;
}


        textBlock.appendChild(accueilText);
.aecfc-accueil-link:hover,
        textBlock.appendChild(devoirsText);
.aecfc-devoirs-link:hover {
        mainLink.appendChild(textBlock);
     text-decoration: underline;
 
}
        /*
        * Le lien par défaut du bloc reste l'accueil du wiki.
        */
        mainLink.href = 'https://wiki.aecfc.org/wiki/Accueil';
        mainLink.title = '';
 
        const logoIcon = mainLink.querySelector('.mw-logo-icon');
 
        if (logoIcon) {
            logoIcon.title = 'Site officiel de l’AECFC';
        }
 
        /*
        * Comme Vector utilise un seul lien parent,
        * on choisit la destination selon la zone cliquée.
        */
        mainLink.addEventListener(
            'click',
            function (event) {
                const target =
                    event.target instanceof Element
                        ? event.target
                        : event.target.parentElement;
 
                if (!target) {
                    return;
                }
 
                // Clic sur le logo graphique → site aecfc.org
                if (target.closest('.mw-logo-icon')) {
                    event.preventDefault();
                    event.stopImmediatePropagation();
                    window.location.assign('https://aecfc.org/');
                    return;
                }
 
                // Clic sur Devoirs → page Devoirs
                if (target.closest('.aecfc-devoirs-text')) {
                    event.preventDefault();
                    event.stopImmediatePropagation();
                    window.location.assign(
                        'https://wiki.aecfc.org/wiki/Devoirs'
                    );
                    return;
                }
 
                /*
                * Clic sur Accueil, ou sur le reste du bloc :
                * le comportement normal du lien parent est conservé.
                */
            },
            true
        );
     }
 
    if (document.readyState === 'loading') {
        document.addEventListener(
            'DOMContentLoaded',
            configureAecfcLogo,
            { once: true }
        );
    } else {
        configureAecfcLogo();
    }
})();

Version du 2 juillet 2026 à 16:46

/* 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');
});
*/

/* Ensemble : logo + liens Accueil et Devoirs */
.aecfc-brand {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    min-width: max-content;
}

/* Logo graphique uniquement */
.aecfc-brand .aecfc-logo-link {
    display: flex !important;
    align-items: center;
    flex: 0 0 auto !important;

    width: auto !important;
    height: auto !important;
    margin: 0 !important;

    position: static !important;
    inset: auto !important;
    z-index: auto !important;

    pointer-events: auto !important;
}

/* Les deux liens à droite du logo */
.aecfc-text-links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;

    margin-left: 14px;
    white-space: nowrap;

    position: relative;
    z-index: 10;
}

/* Accueil : texte principal */
.aecfc-accueil-link,
.aecfc-accueil-link:visited {
    color: #287676;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.15;
    text-decoration: none;
    pointer-events: auto;
}

/* Devoirs : texte secondaire */
.aecfc-devoirs-link,
.aecfc-devoirs-link:visited {
    color: #3366cc;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.25;
    text-decoration: none;
    margin-top: 3px;
    pointer-events: auto;
}

.aecfc-accueil-link:hover,
.aecfc-devoirs-link:hover {
    text-decoration: underline;
}