MediaWiki:Common.js: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
Pietrodn (discussione | contributi)
Importo qui il codice per gli slideshow, per evitare di appesantire il caricamento della pagina con uno script caricato a runtime (MediaWiki:Common.js/Slideshow.js). Fonte: en:MediaWiki:Common.js/Slideshows.js
Pietrodn (discussione | contributi)
rimuovo codice spostato in gadget
Riga 2: Riga 2:


mw.loader.using( [ 'mediawiki.user', 'mediawiki.util', 'mediawiki.notify' ] ).then( function () {
mw.loader.using( [ 'mediawiki.user', 'mediawiki.util', 'mediawiki.notify' ] ).then( function () {
// Slideshows
$.fn.slideshow = ( function() {
return this.each( function() {
var $ss = $(this), $sl = $ss.children( '.slide' ), $actions;
if ( $sl.length < 2 ) {
return;
}
$sl.slice(1).hide();
$actions = $('<div class="slide-actions"><span class="slide-prev"></span><span class="slide-next"></span></div>');
$ss.data( 'slides', { 'at': 0, 'total': $sl.length }).append( $actions ).click( function(e) {
var $where = $( e.target ), $ss, $sl, data;
if ( $where.is( '.slide-prev' ) ) {
e.stopPropagation();
$ss = $(this); $sl = $ss.children( '.slide' ); data = $ss.data( 'slides' );
if ( data.at > 0 ) {
--data.at;
$sl.eq( data.at + 1).fadeOut(1000).end().eq( data.at ).delay(1000).fadeIn(1000);
$ss.data( 'slides', data );
}
} else if ( $where.is( '.slide-next' ) ) {
e.stopPropagation();
$ss = $(this); $sl = $ss.children( '.slide' ); data = $ss.data( 'slides' );
if ( data.at < data.total - 1 ) {
++data.at;
$sl.eq( data.at - 1).fadeOut(1000).end().eq( data.at ).delay(1000).fadeIn(1000);
$ss.data( 'slides', data );
}
}
});
});
});
$.when($.ready).then( function() { $( '.slides' ).slideshow(); } );



//$.when( mw.loader.using( ['mediawiki.util']), $.ready ).then(function() {
//$.when( mw.loader.using( ['mediawiki.util']), $.ready ).then(function() {

Versione delle 21:04, 21 nov 2018

/* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */

mw.loader.using( [ 'mediawiki.user', 'mediawiki.util', 'mediawiki.notify' ] ).then( function () {

//$.when( mw.loader.using( ['mediawiki.util']), $.ready ).then(function() { 
//    /* Strumenti: "Carica su Commons" */
//    mw.util.addPortletLink('p-tb',
//                '//commons.wikimedia.org/wiki/Commons:Upload/it',
//                'Carica su Commons',
//                't-uploadcommons',
//                'Carica file multimediali su Wikimedia Commons',
//                 'm', '#t-specialpages');
//});

function dynamicNavigationBars() {
	/* Dynamic navigation bars */
	
	// Avoid expensive DOM manipulation if there are no navigation bars
	if(document.getElementsByClassName('NavFrame').length === 0) {
		return;
	}
	
    // set up max count of Navigation Bars on page,
    // if there are more, all will be hidden
    // NavigationBarShowDefault = 0; // all bars will be hidden
    // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
    var NavigationBarShowDefault = 0;
    var NavigationBarHide = '▲ nascondi';
    var NavigationBarShow = '▼ espandi';
 
    // adds show/hide-button to navigation bars
    $("<a></a>")
    .attr({'class': 'NavToggle', 'href': ''})
    .prependTo('.NavFrame')
    .on('click', function(event){
        // "this" is NavToggle
        event.preventDefault();
        // shows and hides content and picture (if available) of navigation bars
        if ($(this).text() == NavigationBarHide) { // if shown now
            $(this).siblings('.NavContent, .NavPic').css('display', 'none');
            $(this).text(NavigationBarShow);
        } else if ($(this).text() == NavigationBarShow) { // if hidden now
            $(this).siblings('.NavContent, .NavPic').css('display', 'block');
            $(this).text(NavigationBarHide);
        }
    });
 
    // if more Navigation Bars found than Default: hide all
    if (NavigationBarShowDefault < $('.NavFrame').length) {
        $('.NavFrame').children('.NavContent, .NavPic').css('display', 'none');
        $('.NavToggle').text(NavigationBarShow);
    } else {
        $('.NavToggle').text(NavigationBarHide);
    }
}

mw.hook('wikipage.content').add(dynamicNavigationBars);


function fixTitles() {
	function setTabName(newName) {
		document.querySelector('#ca-nstab-main a' ).childNodes[0].textContent = newName;
	}
	
    /* Modifica il nome del tipo di pagina per alcune pagine */
    if(mw.config.get('wgNamespaceNumber') === 0) {
        var titolo = mw.config.get('wgTitle');
        if(titolo.indexOf('Libro di cucina/Ricette/') != -1) /* Ricette */
            setTabName('Ricetta');
        else if(titolo.indexOf('Pagina principale') != -1) /* Pagina principale del sito */
            setTabName('Pagina principale');
        else if (titolo.indexOf('/') == -1) /* Pagina principale di un libro */
            setTabName('Libro');
    }      
    
    /* Nasconde il titolo nelle pagine che hanno il template {{Nascondi titolo}} */
    if(document.querySelector('#NoTitle'))
    {
        document.querySelector('#firstHeading').style.display = 'none';
        document.querySelector('#siteSub').style.display = 'none';
        
        var subpagesLink = document.querySelector('.subpages');
        if(subpagesLink)
        	subpagesLink.style.display = 'none';
    }
}

$.when($.ready).then(fixTitles);


function addInterwikiLinks() {
	/* Evidenzia i link agli articoli di qualità su altre wiki */
    if ( document.getElementById( "p-lang" ) ) {
        var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" );
 
        for ( var i = 0; i < InterwikiLinks.length; i++ ) {
            var className = InterwikiLinks[i].className.match(/interwiki-[-\w]+/);
            if ( document.getElementById( className + '-fa' ) ) {
                InterwikiLinks[i].className += " FA";
                InterwikiLinks[i].title = "La voce è in vetrina in questa lingua.";
            }
        }
    }
}

mw.hook('wikipage.content').add(addInterwikiLinks);


function addLoadOnCommonsLink() {
	// Aggiunge "Carica file su Commons" nella Sidebar
	$('#t-upload a').text('Carica file su Commons').attr('href', '//commons.wikimedia.org/wiki/Special:UploadWizard/it');
}

$.when($.ready).then(addLoadOnCommonsLink);


/*
 * Aggiunge il menu a tendina per selezionare un sottoinsieme di caratteri speciali
 * Aggiornto da: https://it.wikipedia.org/w/index.php?title=MediaWiki:Common.js&oldid=98798969
 */
function comboboxEdittools() {
	var $specialChars = $( '#specialchars' );
	if ( $specialChars.length ) {
		var $select = $( '<select>' ).change( function () {
			$specialChars.find( 'p' ).hide();
			$specialChars.find( 'option:selected' ).data().show();
		} );
		$specialChars.find( 'p' ).each( function () {
			$( '<option>' ).html( $( this ).attr( 'id' ).replace( /_/g, ' ' ) )
				.data( $( this ) ).appendTo( $select );
		} );
		$specialChars.prepend( $select );
		$select.change();
	}
}

mw.hook('wikipage.editform').add(comboboxEdittools);

});