MediaWiki:Common.js

De Documentation

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).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
/* Tout JavaScript présent ici sera exécuté par tous les utilisateurs à chaque chargement de page. */

// input search
$('#searchInput').attr('placeholder','Rechercher ...');
$('#searchInput').addClass('showText');

$('meta').attr('name', 'viewport');
$('meta').attr('content', 'initial-scale=1, maximum-scale=1, user-scalable=no');

// user login
if ($('#personal #pt-login').length == 0) {
  $('html').addClass('login-ok');
}

$("#mw-wrapper").prepend('<div id="tinyNavbar">'
    + '<i class="fa fa-list-ul fa-solid"></i>'
    + '<a href="/documentation/" title="Accueil">'
    + '<i class="fa fa-home fa-solid" style="margin-left:20px" title="Sommaire"></i></a></div>');

$("body").after('<div id="btnIndex"><i class="fa fa-list-ul fa-solid" title="Sommaire"></i></div>');

function visibleOnScroll() {
    var posToc = $toc.offset().top + $toc.outerHeight() - 30;
    if (posToc < $(window).scrollTop()) {
        $itemstoShow.show();
    } else if (posToc - 40 > $(window).scrollTop()) {
        $itemstoShow.hide();
    }
}

$("#toc a").each(function() {
  var tocId = $(this).attr('href').slice(1);
  var refId = document.getElementById(tocId);
  var refNum = $(this).find('.tocnumber').text();
  $(refId).prepend('<span class="numToc">'+refNum+')</span>');
});

$(document).ready(function() {
    $("#btnModalSoft").closest('body').after('<div id="modalSoft" class="lgModal"><div class="modal-content">'
        + '<b>Liste des logiciels installés</b><span class="btnClose">&times;</span>'
        + '<iframe src="/searchSoftFrame"></iframe>'
        + '</div></div>');
    var modal = document.getElementById("modalSoft");
    if (!modal) return;
    var btnModal = document.getElementById("btnModalSoft");
    var btnClose = modal.getElementsByClassName("btnClose")[0];
    btnModal.onclick = function() { modal.style.display = "block"; }
    btnClose.onclick = function() { modal.style.display = "none"; }
    window.addEventListener("click", function(e) {
      if (e.target == modal) { modal.style.display = "none"; }
    }); 
});

$(document).ready(function() {
    lastScrollTop = 0;
    $toc = $('#toc');
    if (!$toc.length) return;
    $itemstoShow = $('#tinyNavbar, #btnIndex');
    visibleOnScroll();
    $(window).scroll(visibleOnScroll);
    $(window).resize (visibleOnScroll);
    $("#tinyNavbar .fa-list-ul, #btnIndex .fa-list-ul").click(function() {
      $('html').animate({ scrollTop: $('#mw-toc-heading').offset().top -40}, 50);
    });
});

function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

var faCaret = '<i class="fa-solid fa-caret-down"></i>';

$('#p-navigation ul').last().append('<li><div class="dropdownBtn"></div><div class="dropdownMenu notranslate"></div></li>');

function googleTranslateElementInit() { 
    var param = {pageLanguage: 'fr', includedLanguages: 'en'};
    new google.translate.TranslateElement(param, 'google_translate_element');
}

$(document).ready(function() {
  setTimeout(function() {

    // Dropdown FR/EN
    var ddToClose = false;

    function toggleDropdown(e) {
        e.stopPropagation();
        var menu = this.nextSibling;
        while(menu && menu.nodeType !== 1) {
            menu = menu.nextSibling;
        }
        if(!menu) return;
        if (menu.style.display !== 'block') {
            menu.style.display = 'block';
            if(ddToClose) ddToClose.style.display = "none";
            ddToClose = menu;
        } else {
            menu.style.display = 'none';
            ddToClose = false;
        }
    }

    if (getCookie("translateEN") == "1") {
        $('html').prepend('<div class="translate_top_bar notranslate">This page has been translated automatically</div>');
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = 'https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit';
        document.head.appendChild(script);
        $('.dropdownBtn').html('<img class="imageFlag" src="/images/gb.svg" alt="EN">'+faCaret);
        $('.dropdownMenu').html('<img class="imageFlag" src="/images/fr.svg" alt="FR"> &nbsp;Français');
        $('.dropdownMenu').addClass('FR');
    } else {
        $('.dropdownBtn').html('<img class="imageFlag" src="/images/fr.svg" alt="FR">'+faCaret);
        $('.dropdownMenu').html('<img class="imageFlag" src="/images/gb.svg" alt="EN"> &nbsp;traduire en anglais');
        $('.dropdownMenu').addClass('EN');
    }

    $(".dropdownMenu.FR").click(function() {
        var expire = new Date();
        expire.setMonth(expire.getMonth() + 2); // 2 month later
        document.cookie = 'translateEN=0; expires=' + expire.toUTCString();
        location.reload();
    });

    $(".dropdownMenu.EN").click(function() {
        var expire = new Date();
        expire.setMonth(expire.getMonth() + 2); // 2 month later
        document.cookie = 'googtrans=/fr/en; expires=' + expire.toUTCString();
        document.cookie = 'translateEN=1; expires=' + expire.toUTCString();
        location.reload();
    });
    
    function closeDropdown() {
        ddToClose.style.display = 'none';
        ddToClose = false;
    }

    $("html *").click(function() {
        if (ddToClose && !$(event.target).closest('.dropdownBtn').length) {
            closeDropdown.call(event.target);
        }
    });
    
    document.querySelectorAll(".dropdownBtn").forEach(function(btn) {
        btn.addEventListener("click", toggleDropdown, true);
    });
  },300);
});