MediaWiki:Common.js

Da Wikivoyage.
Nota: dopo aver salvato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.
  • Firefox / Safari: tenere premuto il tasto delle maiuscole e fare clic su Ricarica, oppure premere Ctrl-F5 o Ctrl-R (⌘-R su Mac)
  • Google Chrome: premere Ctrl-Shift-R (⌘-Shift-R su un Mac)
  • Internet Explorer: tenere premuto il tasto Ctrl mentre si fa clic su Refresh, oppure premere Ctrl-F5
  • Opera: svuotare completamente la cache dal menu Strumenti → Preferenze
// Patch per nascondere il toc standard in presenza di pagebanner durante le preview
if ( mw.config.get( 'wgAction' ) === 'submit' ) {
	$('.ext-wpb-pagebanner').parent().parent().find('#toc').hide();
}

//Consente di utilizzare il [[Template:...]] senza specificare il parametro section
$('.avviso-testo').find('a[href$="&section="]').attr('href', function(i, val){
	var sectionHref = $(this).closest('table').prev('h2').find('.mw-editsection a').attr('href') || '';
	return val + sectionHref.split('&section=')[1];
});


// Preleva i dati delle altre wiki per la sola pagina di Statistiche (per non appesantire inutilmente le altre pagine)
if ( mw.config.get('wgPageName') === 'Wikivoyage:Statistiche' ) {
	importScript('MediaWiki:Statistiche.js');
}

// Preleva i dati delle altre wiki per la sola pagina delle ultime notizie (per non appesantire inutilmente le altre pagine)
if ( mw.config.get('wgPageName') === 'Ultime_notizie' ) {
	importScript('MediaWiki:Wikinews.js');
}

//Carico gli script solo nelle pagine di ricerca
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Search' ||  ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgCanonicalSpecialPageName' ) === false ) ) {
	// Aggiunge un menù a tendina che permette la ricerca anche con altri Motori di Ricerca
	importScript('MediaWiki:OtherSearchEngine.js');

	//Ricerca in Wikidata
	mw.loader.load('//en.wikipedia.org/w/index.php?title=MediaWiki:Wdsearch.js&action=raw&ctype=text/javascript');
}

//Centralizzo la visualizzazione dell'indicatore GPX per snellire l'elaborazione delle pagine in presenza di molti listing
//L'indicatore GPX va mostrato in presenza di listing o tracciati GPX
$(function() {
	// Include [[Template:Indicatore GPX]] on all pages, but only make it visible if there are geo listings.
	var hasListing = $('.geo, #GPX-track').length;
	if (hasListing) $('#mw-indicator-GPX').addClass('GPX-show');
});

// Patch per Extension:Kartographer che blocca il conteggio dei listing a 99
// Da rimuovere quando sarà risolto il bug https://phabricator.wikimedia.org/T141335
function fix99() {
	$(".mw-kartographer-maplink:contains('99')").each(function(){
		while( typeof $(this).attr('href').split('maplink/')[1] === "undefined" ){
			// maplink not yet loaded, try again in one second
			setTimeout(fix99, 1000);
			return;
		}
		var listingNum = $(this).attr('href').split('maplink/')[1];
		var prevNum;
		var prevListing;
		while ( (listingNum>0) && !prevNum ){
			listingNum = listingNum-1;
			prevListing = $(".mw-kartographer-maplink[href$="+listingNum+"]");
			if( typeof prevListing !== "undefined" ){
				prevNum = $(prevListing).text();
			}
		}
		$(this).text( parseInt(prevNum)+1 );
	});
}

// Patch per Extension:Pagebanner, in quanto di recente la sua visualizzazione si è sovrapposta agli indicatori impedendone l'utilizzo (i.e. non è possibile farci "click")
$( '#contentSub' ).prepend( $( '.mw-indicators' ) );

// This method will resize elements that have a class name of "js-proportional-resize" by
// changing the font-size (%) based on a viewing area width of 900px being the baseline,
// i.e. 450px width=font size 50%, 900px width=font size 100%, 1800px width=font size 200%.
function proportionalResize() {
	var EXPECTED_PAGE_WIDTH = 900.00;
	$('.js-proportonal-resize').each(function() {
		var fontSizeCss= (($(this).width() / EXPECTED_PAGE_WIDTH) * 100.00) + '%';
		$(this).css("font-size", fontSizeCss);
	});
}

$(document).ready(function(e) {
    $('img[usemap]').rwdImageMaps();
    proportionalResize();
//    fix99();
});
$(window).on('load', function() {
	// the main page text boxes aren't being initialized to the
	// correct size on IE, so add a second resize post-DOM-ready
	proportionalResize();
//    fix99();
});
$(window).resize(function(e) {
    proportionalResize();
});