MediaWiki:Common.js: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
Pietrodn (discussione | contributi)
More efficient firing of functions
Pietrodn (discussione | contributi)
specifico dipendenze su API MediaWiki
Riga 1: Riga 1:
/* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */
/* 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 () {
// Slideshows
// Slideshows
mw.loader.load("//it.wikibooks.org/w/index.php?title=MediaWiki:Common.js/Slideshows.js&action=raw&ctype=text/javascript");
mw.loader.load("//it.wikibooks.org/w/index.php?title=MediaWiki:Common.js/Slideshows.js&action=raw&ctype=text/javascript");


if($.inArray( mw.config.get( 'wgAction' ), ['view', 'submit'] ) !== -1)
if($.inArray( mw.config.get( 'wgAction' ), ['view', 'submit'] ) !== -1) {
mw.loader.load('//it.wikibooks.org/w/index.php?title=MediaWiki:FasiAvanzamento.js&action=raw&ctype=text/javascript');
mw.loader.load('//it.wikibooks.org/w/index.php?title=MediaWiki:FasiAvanzamento.js&action=raw&ctype=text/javascript');
}


//$.when( mw.loader.using( ['mediawiki.util']), $.ready ).then(function() {
//$.when( mw.loader.using( ['mediawiki.util']), $.ready ).then(function() {
Riga 113: Riga 116:
function addLoadOnCommonsLink() {
function addLoadOnCommonsLink() {
// Aggiunge "Carica file su Commons" nella Sidebar
// Aggiunge "Carica file su Commons" nella Sidebar
$('#t-upload a').text('Carica file su Commons').attr('href', '//commons.wikimedia.org/wiki/Special:UploadWizard/it')
$('#t-upload a').text('Carica file su Commons').attr('href', '//commons.wikimedia.org/wiki/Special:UploadWizard/it');
}
}


Riga 140: Riga 143:


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

});

Versione delle 18:49, 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 () {
	
// Slideshows
mw.loader.load("//it.wikibooks.org/w/index.php?title=MediaWiki:Common.js/Slideshows.js&action=raw&ctype=text/javascript");

if($.inArray( mw.config.get( 'wgAction' ), ['view', 'submit'] ) !== -1) {
    mw.loader.load('//it.wikibooks.org/w/index.php?title=MediaWiki:FasiAvanzamento.js&action=raw&ctype=text/javascript');
}

//$.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);

});