MediaWiki:Common.js
Apparence
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 ici sera chargé avec chaque page accédée par n’importe quel utilisateur. */ /* Le tri des tableaux via la classe CSS sortable est naïf et les lettres accentuées sont triées après la lettre Z. Cette petite ligne corrige ça. */ mw.config.set('tableSorterCollation', {'à': 'a', 'â': 'a', 'ä': 'a', 'ç': 'c', 'é': 'e', 'è': 'e', 'ê': 'e', 'ë': 'e', 'ô': 'o', 'ö': 'o', 'î': 'i', 'ï': 'i', 'û': 'u', 'ü': 'u'}); /** * Vector HeadAnchors * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-vector-headanchor.js * @revision 2015-03-07 * * @license http://krinkle.mit-license.org/ * @author Timo Tijhof, 2013–2015 */ ( function ( $ ) { $( '.mw-headline' ).each( function ( i, el ) { var id = el.id, $headline = $( el ), $header = $headline.parent(); if ( !id || $header.find( '.mw-headline-anchor,.mw-headline-headanchor').length ) { return; } $headline.removeAttr('id'); $header.addClass( 'mw-header' ).prepend( $( '<a>' ).prop({ id: id, href: '#' + id, title: 'Lien vers cette section', className: 'mw-headline-headanchor' }) ); } ); }( jQuery ) ); /* collapsible/collapsed avec MediaWiki */ $( '.collapsible, .enroulable' ).addClass( 'mw-collapsible' ); $( '.collapsed, .enroulé' ).addClass( 'mw-collapsed' ); /* alias français */ $( '.triable' ).addClass( 'sortable' ); /** * Bouton pour afficher/masquer un contenu. * Idée de départ : http://encyclopediadramatica.com/MediaWiki:Common.js par WhiteMystery (misterioblanco@gmail.com) * Créateur : [[Utilisateur:Misdre]] * Licence : WTFPL ou Creative Commons Paternité 2.5 ou suivantes * Plus d'informations ici : [[Aide:Afficher et masquer du contenu]] */ // todo : // remettre le display initial // -> il faudrait conserver toutes les valeures initiales de display (mais ça marche déjà très bien) function boutonsAfficherMasquer() { var balisesBoutons = document.querySelectorAll('button:not(.masquage)'); var cibles = []; var nbPartiesCachees = 0; for ( var i = 0; i < balisesBoutons.length; i++ ) { // on cherche les boutons afficher-masquer dans la page // on trouve un bouton qui servira à afficher une partie cachée if ( balisesBoutons[i].getAttribute("value") == "afficher" ) { if ( !balisesBoutons[i].hasAttribute("title") || balisesBoutons[i].getAttribute("title") === "" ) balisesBoutons[i].setAttribute("title", "[Masquer]"); if ( typeof(balisesBoutons[i].textContent) != "undefined") { if ( balisesBoutons[i].textContent === "" ) balisesBoutons[i].textContent = "[Afficher]"; } else { if ( balisesBoutons[i].innerText === "" ) balisesBoutons[i].innerText = "[Afficher]"; } balisesBoutons[i].setAttribute("onclick", "afficherMasquer(this)"); balisesBoutons[i].style.display = 'inline-block'; nbPartiesCachees++; cibles[nbPartiesCachees-1] = balisesBoutons[i].getAttribute("name"); } else if ( balisesBoutons[i].getAttribute("value") == "masquer" ) { if ( !balisesBoutons[i].hasAttribute("title") || balisesBoutons[i].getAttribute("title") === "" ) balisesBoutons[i].setAttribute("title", "[Afficher]"); if ( typeof(balisesBoutons[i].textContent) != "undefined") { if ( balisesBoutons[i].textContent === "" ) balisesBoutons[i].textContent = "[Masquer]"; } else { if ( balisesBoutons[i].innerText === "" ) balisesBoutons[i].innerText = "[Masquer]"; } balisesBoutons[i].setAttribute("onclick", "afficherMasquer(this)"); balisesBoutons[i].style.display = 'inline-block'; } } // on cache les parties censées être cachées (celles ciblées par un bouton afficher) var balises = document.getElementsByTagName('*'); for ( var i = 0; i < balises.length; i++ ) { for( var j = 0; j < cibles.length; j++ ) { if ( $( balises[i] ).hasClass( cibles[j] ) ) { balises[i].style.display = "none"; break; } } } } function afficherMasquer(sourceAction) { var classeCible = sourceAction.getAttribute("name"); var typeAction = sourceAction.getAttribute("value"); var balises = document.getElementsByTagName('*'); for ( var i = 0; i < balises.length; i++ ) { if ( $( balises[i] ).hasClass( classeCible ) ) { if ( typeAction == "afficher" ) { balises[i].style.display = ''; } else { balises[i].style.display = "none"; } } } var balisesBoutons = document.querySelectorAll('button:not(.masquage)'); for ( var i = 0; i < balisesBoutons.length; i++ ) { var tmp; if ( balisesBoutons[i].getAttribute("value") == "afficher" && balisesBoutons[i].getAttribute("name") == classeCible) { if ( typeof(balisesBoutons[i].textContent) != "undefined") { tmp = balisesBoutons[i].textContent; balisesBoutons[i].textContent = balisesBoutons[i].getAttribute("title"); } else { tmp = balisesBoutons[i].innerText; balisesBoutons[i].innerText = balisesBoutons[i].getAttribute("title"); } balisesBoutons[i].setAttribute("title", tmp); balisesBoutons[i].setAttribute("value", "masquer"); } else if ( balisesBoutons[i].getAttribute("value") == "masquer" && balisesBoutons[i].getAttribute("name") == classeCible) { if ( typeof(balisesBoutons[i].textContent) != "undefined") { tmp = balisesBoutons[i].textContent; balisesBoutons[i].textContent = balisesBoutons[i].getAttribute("title"); } else { tmp = balisesBoutons[i].innerText; balisesBoutons[i].innerText = balisesBoutons[i].getAttribute("title"); } balisesBoutons[i].setAttribute("title", tmp); balisesBoutons[i].setAttribute("value", "afficher"); } } } jQuery( boutonsAfficherMasquer ); /* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Compatibility */ /* Pour IE8 */ if (!Array.prototype.forEach) { Array.prototype.forEach = function (fn, scope) { 'use strict'; var i, len; for (i = 0, len = this.length; i < len; ++i) { if (i in this) { fn.call(scope, this[i], i, this); } } }; } /* Animation de capacité */ jQuery( function(){ var runAnimationElems = document.querySelectorAll(".run-animation"); for(var i=0; i<runAnimationElems.length; i++) { if(runAnimationElems[i].parentNode.querySelector(".url-animation a")) { runAnimationElems[i].addEventListener("click", function() { this.innerHTML = "<small>Chargement en cours...</small>"; this.parentNode.querySelector("a.image img").addEventListener("load", function() { this.parentNode.parentNode.querySelector(".run-animation").style.visibility="hidden"; }), this.parentNode.querySelector("a.image").setAttribute("href", "/Fichier:"+this.parentNode.querySelector(".url-animation a").getAttribute("title")); this.parentNode.querySelector("a.image img").setAttribute("src", this.parentNode.querySelector(".url-animation a").getAttribute("href")); }); } } });