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

De WikiRuches
(Tooltips ref v2 — DOMContentLoaded)
 
(Ajout lien Coopter une abeille pour groupes abeille*)
Ligne 70 : Ligne 70 :


}() );
}() );
/* === Lien "Coopter une abeille" pour les abeilles et sysops === */
mw.loader.using(['mediawiki.util']).then(function () {
    var groups = mw.config.get('wgUserGroups') || [];
    var isAbeille = groups.some(function (g) {
        return g.indexOf('abeille') === 0 || g === 'sysop';
    });
    if (isAbeille) {
        mw.util.addPortletLink(
            'p-tb',
            mw.util.getUrl('Special:UserRights'),
            'Coopter une abeille',
            't-coopter',
            'Attribuer des droits à un utilisateur'
        );
    }
});

Version du 27 juin 2026 à 15:51


/* ============================================================
   Tooltips pour les exposants <ref> — Ruches wiki v2
   ============================================================ */
( function () {
    'use strict';

    function init() {
        var refs = document.querySelectorAll( 'sup.reference a' );
        if ( !refs.length ) return;

        var tip = document.createElement( 'div' );
        tip.style.cssText = [
            'position:fixed',
            'z-index:9999',
            'max-width:380px',
            'background:#fefefe',
            'border:1px solid #a2a9b1',
            'border-radius:4px',
            'box-shadow:0 2px 8px rgba(0,0,0,.25)',
            'padding:10px 14px',
            'font-size:.875rem',
            'line-height:1.5',
            'color:#202122',
            'pointer-events:none',
            'display:none'
        ].join( ';' );
        document.body.appendChild( tip );

        refs.forEach( function ( a ) {
            a.addEventListener( 'mouseenter', function ( e ) {
                var href = a.getAttribute( 'href' );
                if ( !href ) return;
                var id = href.replace( /^#/, '' );
                var li = document.getElementById( id );
                if ( !li ) return;
                var clone = li.cloneNode( true );
                clone.querySelectorAll( '.mw-cite-backlink' ).forEach( function ( el ) {
                    el.remove();
                } );
                tip.textContent = clone.textContent.trim();
                tip.style.display = 'block';
                move( e );
            } );
            a.addEventListener( 'mousemove', move );
            a.addEventListener( 'mouseleave', function () {
                tip.style.display = 'none';
            } );
        } );

        function move( e ) {
            var x = e.clientX + 16;
            var y = e.clientY + 16;
            if ( x + tip.offsetWidth  > window.innerWidth  - 10 ) {
                x = e.clientX - tip.offsetWidth  - 16;
            }
            if ( y + tip.offsetHeight > window.innerHeight - 10 ) {
                y = e.clientY - tip.offsetHeight - 16;
            }
            tip.style.left = x + 'px';
            tip.style.top  = y + 'px';
        }
    }

    if ( document.readyState === 'loading' ) {
        document.addEventListener( 'DOMContentLoaded', init );
    } else {
        init();
    }

}() );

/* === Lien "Coopter une abeille" pour les abeilles et sysops === */
mw.loader.using(['mediawiki.util']).then(function () {
    var groups = mw.config.get('wgUserGroups') || [];
    var isAbeille = groups.some(function (g) {
        return g.indexOf('abeille') === 0 || g === 'sysop';
    });
    if (isAbeille) {
        mw.util.addPortletLink(
            'p-tb',
            mw.util.getUrl('Special:UserRights'),
            'Coopter une abeille',
            't-coopter',
            'Attribuer des droits à un utilisateur'
        );
    }
});