MediaWiki:Common.js
Révision datée du 28 septembre 2020 à 20:23 par Goultard (discussion | contributions)
Note : après avoir enregistré 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 pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac)
- Google Chrome : appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac)
- Internet Explorer : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5
- Opera : allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d’exploration → Images et fichiers en cache.
/* * Use Gadgets whenever possible to minimize loading for all users for every page. * Wait for mediawiki.util to be ready because some things assume its availability. */ /** * Boîtes déroulantes * * Pour [[Modèle:Méta palette de navigation]] */ var Palette_Derouler = '[afficher]'; var Palette_Enrouler = '[masquer]'; var Palette_max = 1; function Palette_toggle( $table ) { $table.find( 'tr:not(:first)' ).toggleClass( 'navboxHidden' ); } function Palette( $content ) { var $tables = $content.find( 'table.collapsible' ); var groups = {}; $tables.each( function( _, table ) { var group = table.dataset.autocollapseGroup || '__default__'; groups[group] = ( groups[group] || 0 ) + 1; } ); $tables.each( function( _, table ) { var $table = $( table ); var group = table.dataset.autocollapseGroup || '__default__'; var autoCollapse = groups[group] > Palette_max; var collapsed = $table.hasClass( 'collapsed' ) || ( autoCollapse && $table.hasClass( 'autocollapse' ) ); // le modèle dispose d'une classe "navbox-title", // sauf que les palettes "inlinées" (e.g. « {| class="navbox collapsible collapsed" ») n'ont pas cette classe $table.find( 'tr:first th:first' ).prepend( $( '<span class="navboxToggle">\u00a0</span>' ).append( $( '<a href="javascript:">' + (collapsed ? Palette_Derouler : Palette_Enrouler) + '</a>' ).click( function ( e ) { e.preventDefault(); if ( this.textContent === Palette_Enrouler ) { this.textContent = Palette_Derouler; } else { this.textContent = Palette_Enrouler; } Palette_toggle( $table ); } ) ) ); if ( collapsed ) { Palette_toggle( $table ); } } ); // permet de dérouler/enrouler les palettes en cliquant n'importe où sur l'entête // (utilisation de la classe "navbox-title", comme ça seules les vraies palettes utilisant le modèle sont ciblées) $content.find( '.navbox-title' ) .click( function ( e ) { if ( $( e.target ).closest( 'a' ).length ) { return; } $( this ).find( '.navboxToggle a' ).click(); } ) .css( 'cursor', 'pointer' ); } mw.hook( 'wikipage.content' ).add( Palette ); /** * Boîtes déroulantes * Source : https://en.wikipedia.org/wiki/MediaWiki:Common.js */ var BoiteDeroulante_Derouler = '[afficher]'; var BoiteDeroulante_Enrouler = '[masquer]'; function BoiteDeroulante_toggle(NavToggle){ var NavFrame = NavToggle.parentNode; var caption = []; caption[0] = NavFrame.dataset.boiteDeroulanteDerouler; caption[1] = NavFrame.dataset.boiteDeroulanteEnrouler; var $NavContent = $(NavFrame).find('.NavContent').first(); if ( NavToggle.textContent === caption[1] ) { NavToggle.textContent = caption[0]; $NavContent.hide(); } else { NavToggle.textContent = caption[1]; $NavContent.show(); } } function BoiteDeroulante( $content ) { $content.find( '.NavFrame' ).each( function ( _, NavFrame ) { var CustomTexts, Derouler, Enrouler, NavToggle; if (NavFrame.title && NavFrame.title.indexOf("/") !== -1) { CustomTexts = NavFrame.title.split("/"); Derouler = CustomTexts[0]; Enrouler = CustomTexts[1]; } else { Derouler = BoiteDeroulante_Derouler; Enrouler = BoiteDeroulante_Enrouler; } NavFrame.title = ''; NavFrame.dataset.boiteDeroulanteDerouler = Derouler; NavFrame.dataset.boiteDeroulanteEnrouler = Enrouler; NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.href = 'javascript:'; NavToggle.onclick = function (e) { e.preventDefault(); BoiteDeroulante_toggle(e.target); }; NavToggle.textContent = Enrouler; NavFrame.insertBefore(NavToggle, NavFrame.firstChild); BoiteDeroulante_toggle(NavToggle); } ); // permet de dérouler/enrouler les boîtes en cliquant n'importe où sur l'entête $content.find( '.NavHead' ) .click( function ( e ) { if ( $( e.target ).closest( 'a' ).length ) { return; } var toggle = $( this ).siblings( 'a.NavToggle' )[0]; if ( toggle ) { toggle.click(); // pas du jquery, mais du vanilla js } } ) .css( 'cursor', 'pointer' ); } mw.hook( 'wikipage.content' ).add( BoiteDeroulante ); /** * FIN : Boîtes déroulantes */ /** * Ajouter un bouton à la fin de la barre d'outils */ if ( typeof addCustomButton === 'undefined' ) { mw.log.deprecate( window, 'addCustomButton', function ( imageFile, speedTip, tagOpen, tagClose, sampleText, imageId ) { if ( mw.toolbar ) { mw.toolbar.addButton( { imageFile: imageFile.replace( /^http:(\/\/upload\.wikimedia\.org\/)/, '$1' ), speedTip: speedTip, tagOpen: tagOpen, tagClose: tagClose, sampleText: sampleText, imageId: imageId } ); } }, 'Use mw.toolbar.addButton instead.' ); } /* Bilingual links Functions through the DoubleWiki extension. Author: wikisource:fr:ThomasV, jQuery version by wikipedia:en:GreenReaper */ $(function(){ var doc_url = document.URL; // iterate over all interlanguage links $('.interlanguage-link>a[hreflang]').each(function() { var lang = this.getAttribute("hreflang"); var qm = doc_url.indexOf( doc_url.indexOf('?title=') != -1 ? '&match=' : '?' ); var url = doc_url+"?match="+lang; if( qm != -1 ) url = doc_url.substring(0,qm)+"?match="+lang; this.outerHTML += "<a href='"+url+"'> ⇔</a>"; }) })