Binding of Isaac: Rebirth Wiki
Advertisement

Autres langues : English


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 : Videz le cache dans Outils → Préférences.
/* Tout JavaScript ici sera chargé avec chaque page accédée par n’importe quel utilisateur. */

$( function () {
	// Cache purge shortcut
	var purge_href = $( '#ca-cargo-purge > a' ).attr( 'href' );
	$( '#ca-cargo-purge' ).remove();
	$( '#p-views > ul' ).append( '<li></li>' );
	$( '#p-views > ul > li:not([id])' ).attr( 'id', 'ca-cargo-purge' );
	$( '#ca-cargo-purge' ).append( '<span><a>⟳</a></span>' );
	$( '#ca-cargo-purge > span > a' )
		.attr( { 'title': 'Purge the cache [alt-shift-g]', 'href': purge_href, 'accesskey': 'g' } )
		.css( { 'line-height': 0, 'font-size': 'large' } );

	// Links titles
	$( '.notitle, .tooltip' )
		.find( 'a' )
		.attr( 'title', '' );

	// Nav
	$( '.nav-master-button-visible, .nav-master' ).hide();
	$( '.nav-master-button-collapsed' ).show();
	$( '.nav-master-button-visible' ).click( function () {
		$( '.nav-master-button-visible, .nav-master' ).hide();
		$( '.nav-master-button-collapsed' ).show();
	} );
	$( '.nav-master-button-collapsed' ).click( function () {
		$( '.nav-master-button-visible, .nav-master' ).show();
		$( '.nav-master-button-collapsed' ).hide();
	} );

	// Slideshows initialization
	var $slideshows = $( '.infobox-slideshow' );
	var anim        = new Array( $slideshows.size() ).fill( 0 );
	$slideshows.each( function ( _, slideshow ) {
		var maxHeight = 0;
		var maxWidth  = 0;
		$( slideshow )
			.find( '.slide' )
			.each( function ( _, slide ) {
				maxHeight = Math.max( maxHeight, $( slide ).height() );
				maxWidth  = Math.max( maxWidth , $( slide ).width()  );
			} );
		$( slideshow )
			.height( maxHeight )
			.width ( maxWidth  );
	} );

	// Slideshows loop
	setInterval( function () {
		$slideshows.each( function ( i, slideshow ) {
			var $slides = $( slideshow ).find( '.slide' );
			if ( $slides.length > 1 )
				if ( $( slideshow ).hasClass( 'infobox-slideshow-smooth' ) ) {
					$( $slides.get( anim[i] ) ).fadeOut( 'slow' );
					anim[i] = ( anim[i] + 1 ) % $slides.length;
					$( $slides.get( anim[i] ) ).fadeIn( 'slow' );
				} else {
					$( $slides.get( anim[i] ) ).fadeOut( 'slow' );
					anim[i] = ( anim[i] + 1 ) % $slides.length;
					$( $slides.get( anim[i] ) ).fadeIn( 'slow' );
				}
		} );
	}, 3000 );
} );

// Tooltips
$( document ).on( 'mousemove', function ( event ) {
	$( '.tooltip:hover > .tooltip-block' ).css( { 'left': event.clientX + 10 + 'px', 'top': event.clientY + 20 + 'px' } );
} );

/**********************
 * TRANSLATION SYSTEM *
 **********************/

$( function () {
	// Translation progress
	var translatedRevision;
	wikiCargoQueryFetch( false, 'tables=maintenance&fields=revision&where=_pageID=' + mw.config.get( 'wgArticleId' ) + '&limit=1' )
		.then( function ( r ) {
			if ( !r.length )
				throw new Error();
			translatedRevision = r[0].title.revision;
			return wikiQueryFetch( true, 'prop=revisions&revids=' + translatedRevision );
		} )
		.then( function ( r ) { return r.pages; } )
		.then( function ( r ) {
			for ( var page in r ) {
				console.log( r[page] );
				return wikiQueryFetch( true, 'prop=revisions&pageids=' + r[page] );
			}
		} )
		.then( function ( r ) { return r.pages; } )
		.then( function ( r ) {
			for ( var page in r ) {
				var lastRevision = r[page].revisions[0].revid;
				console.log( 'étape 3 : ' + lastRevision );
				if ( $( 'body.action-view' ).length )
					$( '#firstHeading' ).prepend( lastRevision === translatedRevision ?
						'<a target="_blank" rel="noopener noreferrer" href="https://bindingofisaacrebirth.gamepedia.com/index.php?curid=' + page + '" title="Traduction à jour"><div class="translation-icon translation-icon-uptodate"></div></a>' :
						'<a target="_blank" rel="noopener noreferrer" href="https://bindingofisaacrebirth.gamepedia.com/index.php?type=revision&diff=' + lastRevision + '&oldid=' + translatedRevision + '"><div class="translation-icon translation-icon-toupdate"></div></a>'
					);
				else if ( $( 'body.action-edit' ).length )
					$( '#mw-translation-editnotice' )
						.css( 'background', lastRevision === translatedRevision ? 'green' : 'darkred' )
						.html( lastRevision === translatedRevision ?
							'<b>Cette page est à jour.</b><br>Elle est une traduction de la révision <code>' + lastRevision + '</code> de la page <a target="_blank" rel="noopener noreferrer" href="https://bindingofisaacrebirth.gamepedia.com/index.php?curid=' + page + '">' + r[page].title + '</a>.' :
							'<b>Cette page n’est pas à jour.</b><br>Vous pouvez aider en <a target="_blank" rel="noopener noreferrer" href="https://bindingofisaacrebirth.gamepedia.com/index.php?type=revision&diff=' + lastRevision + '&oldid=' + translatedRevision + '">la mettant à jour</a>, puis en remplaçant <code>{{révision | ' + translatedRevision + ' }}</code> par <code>{{révision | ' + lastRevision + ' }}</code> en bas de la page.'
						);
				break;
			}
		} )
		.catch( function () {
			$( 'body.action-edit #mw-translation-editnotice' ).append( '<br><br>Entrer le nom d’une page pour obtenir le texte correspondant à la dernière révision.<br><div class="oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-textInputWidget oo-ui-textInputWidget-type-text oo-ui-labelElement" style="width: 40%; display: inline-block"><input type="text" id="mw-translation-editnotice-search" class="oo-ui-inputWidget-input" value="' + mw.config.get( 'wgPageName' ).replace( /_/g, ' ' ).replace( 'Aide:', 'Help:' ).replace( 'Catégorie:', 'Category:' ).replace( 'Modèle:', 'Template:' ) + '"></div><a class="mw-ui-button button" style="min-width: 30px; margin-right: 0.5em" onclick="translationSearch()"><b>&gt;</b></a><br><code>{{révision | <span id="mw-translation-editnotice-revision"></span> }}</code>' );
		} );
} );

function wikiCargoQueryFetch( fromSource, args ) {
	return wikiFetch( 'cargoquery', fromSource, args ).then( function ( r ) { return r.cargoquery; } );
}

function wikiQueryFetch( fromSource, args ) {
	return wikiFetch( 'query', fromSource, args ).then( function ( r ) { return r.query; } );
}

function wikiFetch( action, fromSource, args ) {
	return fetch( 'https://bindingofisaacrebirth' + ( fromSource ? '.gamepedia.com/api.php?origin=*&' : '-fr.gamepedia.com/api.php?' ) + 'format=json&action=' + action + '&' + ( args || '' ) ).then( function ( r ) { return r.json(); } );
}

function translationSearch() {
	wikiQueryFetch( true, 'prop=revisions&titles=' + $( '#mw-translation-editnotice-search' ).val() )
		.then( function ( r ) { return r.pages; } )
		.then( function ( r ) {
			for ( var p in r ) {
				$( '#mw-translation-editnotice-revision' ).html( p === '-1' ? '?' : r[p].revisions[0].revid );
				break;
			}
		} );
}
Advertisement