|
|
Ligne 1 : |
Ligne 1 : |
| console.log("Common.js chargé !"); | | console.log("Common.js chargé 2 !"); |
|
| |
|
| mw.loader.using('jquery', function() {
| | document.addEventListener("DOMContentLoaded", function () { |
| console.log("jQuery est bien chargé !"); | | console.log("Script des menus déroulants chargé !"); |
| });
| | |
| | | document.querySelectorAll(".menu-deroulant-titre").forEach(button => { |
| /* Tout JavaScript ici sera chargé avec chaque page accédée par n’importe quel utilisateur. */
| | button.addEventListener("click", function () { |
| | | let target = this.nextElementSibling; |
| /* 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.
| | if (target && target.classList.contains("menu-deroulant-contenu")) { |
| Cette petite ligne corrige ça. */
| | target.style.display = (target.style.display === "none" || target.style.display === "") ? "block" : "none"; |
| mw.config.set('tableSorterCollation', {'à': 'a', 'â': 'a', 'ä': 'a', 'ç': 'c', 'é': 'e', 'è': 'e', 'ê': 'e', 'ë': 'e',
| | this.classList.toggle("menu-ouvert"); |
| 'ô': '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"));
| |
| });
| |
| }
| |
| }
| |
| }); | | }); |