Vai al contenuto

MediaWiki:Vector.js: differenze tra le versioni

Da Wikiquote, aforismi e citazioni in libertà.
Contenuto cancellato Contenuto aggiunto
m posizione pulsante "modifica" delle sezioni e sistemazione interprogetto da w:it:MediaWiki:Vector.js
Riga 66: Riga 66:
if (wgPageName == "Pagina_principale" || wgPageName == "Discussioni:Pagina_principale")
if (wgPageName == "Pagina_principale" || wgPageName == "Discussioni:Pagina_principale")
addOnloadHook(mainPageTransform);
addOnloadHook(mainPageTransform);

/*
Correzione della posizione del link [modifica] delle sezioni.
Copyright 2006, Marc Mongenet
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
See http://www.gnu.org/licenses/gpl.html
The function looks for <span class="editsection">, and move them
at the end of their parent and display them inline in small font.
var oldEditsectionLinks=true disables the function.
*/
setModifySectionStyle = function()
{
try {
if (!(typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false)) return;
var spans = document.getElementsByTagName("span");
for (var s = 0; s < spans.length; ++s) {
var span = spans[s];
if (span.className == "editsection") {
span.style.fontSize = "x-small";
span.style.fontWeight = "normal";
span.style.cssFloat = span.style.styleFloat = "none";
span.parentNode.appendChild(document.createTextNode(" "));
span.parentNode.appendChild(span);
}
}
} catch (e) { /* something went wrong */ }
}
addOnloadHook(setModifySectionStyle);


/** Supporto per il Template:Interprogetto ********************************************
*
* Attenzione: questo codice è un "hack", strettamente dipendente dal funzionamento
* della skin Vector; potrebbe smettere di funzionare in caso di modifiche alla skin.
*
* Maintainer: [[Utente:Salvatore Ingala]]
*/
if ( typeof $j != 'undefined' )
$j(document).ready(function(){
try {
if ( $j( '#interProject' ).length == 0 )
return;
//Controlli aggiuntivi sul div 'interProject'
var $ul = $j( '#interProject' ).find( 'ul' );
if ( $ul.length == 0 || $ul.find( 'li' ).length == 0)
return;
var id = 'p-iproject';
var portal = document.createElement( 'div' );
portal.id = id;
var $portal = $j( portal );
var $divbody = $j( document.createElement( 'div' ) );
$divbody.addClass( 'body' )
.append( $j( '#interProject' ).find( 'ul' ) );
$portal.addClass( 'portal' )
.html( '<h5>Altri progetti</h5>' )
.append( $divbody )
.insertAfter( $j('#p-tb') );
//Codice adattato in gran parte da http://bits.wikimedia.org/w/extensions/UsabilityInitiative/Vector/Vector.combined.js
//Se i nav collassabili non sono abilitati, non devo gestire i cookie né l'espansione/riduzione
if (typeof wgVectorEnabledModules != 'undefined' && wgVectorEnabledModules["collapsiblenav"] == true){
//Abilita espansione/collassamento e supporto cookie
var state = $j.cookie( 'vector-nav-' + id );
if(state == 'true' || state == null) //impostazione predefinita: aperto
$portal.addClass( 'expanded' ).find( 'div.body' ).show();
else
$portal.addClass( 'collapsed' );
if(state != null)
$j.cookie( 'vector-nav-' + $j( this ).attr( 'id' ), state, {'expires':30, 'path':'/'});
var toggle = function($element){
$j.cookie('vector-nav-' + $element.parent().attr( 'id' ), $element.parent().is( '.collapsed' ),{'expires':30, 'path':'/'});
$element.parent().toggleClass( 'expanded' ).toggleClass( 'collapsed' ).find( 'div.body' ).slideToggle( 'fast' );
};
$portal.find( 'h5' ).keydown(function(event){
if (event.which==13 || event.which==32)
toggle( $j(this) );
}).mousedown(function(){
toggle( $j(this) );
$j(this).blur();
return false;
});
}
//Ricalcola TabIndex
//Calcola il massimo TabIndex presente, ma escludendo i portal
var maxTI = 0;
$j( '[tabindex]' ).each(function(){
if ($j(this).is( '#mw-panel > div.portal' ))
return;
var ti = parseInt($j(this).attr( 'tabindex' ));
if (ti > maxTI)
maxTI = ti;
});
var tabIndex = maxTI+1;
//Assegna tabIndex incrementali ai portals non persistenti (anche quelli che esistevano prima)
$j( '#mw-panel > div.portal:not(.persistent) > h5' ).each(function(){
$j( this ).attr( 'tabindex', tabIndex++ );
});
} catch(e) {
//non fa nulla
}
});

Versione delle 21:15, 15 giu 2010

/* Il codice JavaScript inserito qui viene caricato dagli utenti che usano la skin Vector */

/* tooltips and access keys */
ta = new Object();
ta['pt-userpage'] = new Array('.','La mia pagina utente'); 
ta['pt-anonuserpage'] = new Array('.','La pagina utente dell\'ip che stai usando'); 
ta['pt-mytalk'] = new Array('n','Le mie discussioni'); 
ta['pt-anontalk'] = new Array('n','Discussioni riguardo le modifiche fatte da questo ip'); 
ta['pt-preferences'] = new Array('','Le mie preferenze'); 
ta['pt-watchlist'] = new Array('l','La lista delle pagine che che stai tenendo sotto sorveglianza.'); 
ta['pt-mycontris'] = new Array('y','La lista dei miei contributi'); 
ta['pt-login'] = new Array('o','Ti consigliamo di registrarti, ma non è obbligatorio.'); 
ta['pt-anonlogin'] = new Array('o','Ti consigliamo di registrarti, ma non è obbligatorio.'); 
ta['pt-logout'] = new Array('o','Log out (esci)'); 
ta['ca-talk'] = new Array('t','Vedi le discussioni relative alla voce'); 
ta['ca-edit'] = new Array('e','Puoi modificare questa pagina. Per favore usa il bottone di anteprima prima di salvare.'); 
ta['ca-addsection'] = new Array('+','Aggiungi un commento a questa discussione.'); 
ta['ca-viewsource'] = new Array('e','Questa pagina è protetta, ma puoi vedere il suo codice sorgente.'); 
ta['ca-history'] = new Array('h','Versioni precedenti di questa pagina.'); 
ta['ca-protect'] = new Array('=','Proteggi questa pagina'); 
ta['ca-delete'] = new Array('d','Cancella questa pagina'); 
ta['ca-undelete'] = new Array('d','Ripristina la pagina com\'era prima della cancellazione'); 
ta['ca-move'] = new Array('m','Sposta questa pagina a un altro titolo'); 
ta['ca-nomove'] = new Array('','Non hai il permesso di spostare questa pagina'); 
ta['ca-watch'] = new Array('w','Aggiungi questa pagina all\'elenco delle pagine che tieni sotto sorveglianza'); 
ta['ca-unwatch'] = new Array('w','Togli questa pagina dall\'elenco delle pagine che tieni sotto sorveglianza'); 
ta['search'] = new Array('f','Cerca in questa wiki'); 
ta['p-logo'] = new Array('','Pagina Principale'); 
ta['n-mainpage'] = new Array('z','Visita la Pagina Principale'); 
ta['n-portal'] = new Array('','Descrizione del progetto, cosa puoi fare, e dove trovare le cose'); 
ta['n-menu'] = new Array('','Naviga fra le categorie di Wikiquote'); 
ta['n-recentchanges'] = new Array('r','La lista delle ultime modifiche a questa wiki'); 
ta['n-randompage'] = new Array('x','Mostra una pagina a caso'); 
ta['n-help'] = new Array('a','Pagine di aiuto, manuale, domande frequenti'); 
ta['n-sitesupport'] = new Array('','Aiutaci');
ta['n-villagepump'] = new Array('b','Per discutere di Wikiquote');  
ta['n-contact'] = new Array('','I contatti di Wikiquote e Wikimedia Italia'); 
ta['t-whatlinkshere'] = new Array('j','Lista di tutte le pagine che puntano a questa'); 
ta['t-recentchangeslinked'] = new Array('k','Lista delle ultime modifiche alle pagine puntate da questa.'); 
ta['feed-rss'] = new Array('','RSS feed for this page'); 
ta['feed-atom'] = new Array('','Atom feed for this page'); 
ta['t-contributions'] = new Array('','Lista dei contributi di questo utente'); 
ta['t-emailuser'] = new Array('','Manda un\'email a questo utente'); 
ta['t-upload'] = new Array('u','Carica immagini o file multimediali su Wikiquote'); 
ta['t-specialpages'] = new Array('q','Lista di tutte le pagine speciali'); 
ta['ca-nstab-main'] = new Array('c','Vedi la voce relativa'); 
ta['ca-nstab-user'] = new Array('c','Vedi la pagina utente'); 
ta['ca-nstab-media'] = new Array('c','Vedi la pagina del file multimediale'); 
ta['ca-nstab-special'] = new Array('','Questa è una pagina speciale, non può essere modificata.'); 
ta['ca-nstab-wp'] = new Array('a','Vedi la pagina del progetto'); 
ta['ca-nstab-image'] = new Array('c','Vedi la pagina dell\'immagine'); 
ta['ca-nstab-mediawiki'] = new Array('c','Vedi il messaggio di sistema'); 
ta['ca-nstab-template'] = new Array('c','Vedi il template'); 
ta['ca-nstab-help'] = new Array('c','Vedi la pagina di aiuto'); 
ta['ca-nstab-category'] = new Array('c','Vedi la pagina della categoria');

/* Modifica il testo della linguetta "Voce" in "Pagina principale" */
function mainPageTransform(){
	var el = document.getElementById('ca-nstab-main');
	if (el && wgUserLanguage=='it'){
		while (el.firstChild)
			el = el.firstChild;
		el.nodeValue = "Pagina principale";
	}
}
if (wgPageName == "Pagina_principale" || wgPageName == "Discussioni:Pagina_principale")
	addOnloadHook(mainPageTransform);

/*
Correzione della posizione del link [modifica] delle sezioni.
 
Copyright 2006, Marc Mongenet
 
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
 
See http://www.gnu.org/licenses/gpl.html
 
The function looks for <span class="editsection">, and move them
at the end of their parent and display them inline in small font.
var oldEditsectionLinks=true disables the function.
*/
 
setModifySectionStyle = function()
{
try {
        if (!(typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false)) return;
        var spans = document.getElementsByTagName("span");
        for (var s = 0; s < spans.length; ++s) {
                var span = spans[s];
                if (span.className == "editsection") {
                        span.style.fontSize = "x-small";
                        span.style.fontWeight = "normal";
                        span.style.cssFloat = span.style.styleFloat = "none";
                        span.parentNode.appendChild(document.createTextNode(" "));
                        span.parentNode.appendChild(span);
                }
        }
} catch (e) { /* something went wrong */ }
}
addOnloadHook(setModifySectionStyle);


/** Supporto per il Template:Interprogetto ********************************************
 *
 *  Attenzione: questo codice è un "hack", strettamente dipendente dal funzionamento
 *  della skin Vector; potrebbe smettere di funzionare in caso di modifiche alla skin.
 *
 *  Maintainer: [[Utente:Salvatore Ingala]]
 */
if ( typeof $j != 'undefined' )
$j(document).ready(function(){
	try {
		if ( $j( '#interProject' ).length == 0 )
			return;
 
		//Controlli aggiuntivi sul div 'interProject'
		var $ul = $j( '#interProject' ).find( 'ul' );
		if ( $ul.length == 0 || $ul.find( 'li' ).length == 0)
			return;
 
		var id = 'p-iproject';
 
		var portal = document.createElement( 'div' );
		portal.id = id;
		var $portal = $j( portal );
		var $divbody = $j( document.createElement( 'div' ) );
		$divbody.addClass( 'body' )
			.append( $j( '#interProject' ).find( 'ul' ) );
 
		$portal.addClass( 'portal' )
			.html( '<h5>Altri progetti</h5>' )
			.append( $divbody )
			.insertAfter( $j('#p-tb') );
 
		//Codice adattato in gran parte da http://bits.wikimedia.org/w/extensions/UsabilityInitiative/Vector/Vector.combined.js
		//Se i nav collassabili non sono abilitati, non devo gestire i cookie né l'espansione/riduzione
		if (typeof wgVectorEnabledModules != 'undefined' && wgVectorEnabledModules["collapsiblenav"] == true){
			//Abilita espansione/collassamento e supporto cookie
			var state = $j.cookie( 'vector-nav-' + id );
			if(state == 'true' || state == null) //impostazione predefinita: aperto
				$portal.addClass( 'expanded' ).find( 'div.body' ).show();
			else
				$portal.addClass( 'collapsed' );
 
			if(state != null)
				$j.cookie( 'vector-nav-' + $j( this ).attr( 'id' ), state, {'expires':30, 'path':'/'});
 
			var toggle = function($element){
				$j.cookie('vector-nav-' + $element.parent().attr( 'id' ), $element.parent().is( '.collapsed' ),{'expires':30, 'path':'/'});
				$element.parent().toggleClass( 'expanded' ).toggleClass( 'collapsed' ).find( 'div.body' ).slideToggle( 'fast' );
			};
 
			$portal.find( 'h5' ).keydown(function(event){
				if (event.which==13 || event.which==32)
					toggle( $j(this) );
			}).mousedown(function(){
				toggle( $j(this) );
				$j(this).blur();
				return false;
			});
		}
 
		//Ricalcola TabIndex
		//Calcola il massimo TabIndex presente, ma escludendo i portal
		var maxTI = 0;
		$j( '[tabindex]' ).each(function(){
			if ($j(this).is( '#mw-panel > div.portal' ))
				return;
			var ti = parseInt($j(this).attr( 'tabindex' ));
			if (ti > maxTI)
				maxTI = ti;
		});
 
		var tabIndex = maxTI+1;
 
		//Assegna tabIndex incrementali ai portals non persistenti (anche quelli che esistevano prima)
		$j( '#mw-panel > div.portal:not(.persistent) > h5' ).each(function(){
			$j( this ).attr( 'tabindex', tabIndex++ );
		});
	} catch(e) {
		//non fa nulla
	}
});