MediaWiki:Gadget-stru-cercaredirectdisambigua.js
Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.
Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.
/**
* Gadget-stru-cercaredirectdisambigua.js
* In modalità modifica aggiunge un link nel menu laterale "Strumenti" che genera
* un elenco dei redirect e disambigue presenti nella voce.
* Riscritto da zero a partire da:
* http://it.wikipedia.org/w/index.php?title=MediaWiki:Gadget-stru-cercaredirectdisambigua.js&oldid=48187910
*
* @author [[it:User:Rotpunkt]]
*/
/*jshint unused: false */
/*global mediaWiki, jQuery */
( function ( mw, $ ) {
'use strict';
var $dialog;
function showResults( data ) {
if ( !$dialog ) {
$dialog = $( '<div>' ).attr( 'id', 'gcrd-dialog' ).appendTo( 'body' );
}
$dialog.empty().append( typeof data === 'string' ? $( '<p>' ).text( data ) : data );
$dialog.dialog( {
title: 'Accessorio trova redirect/disambigua',
height: 350,
buttons: {
Ok: function() {
$( this ).dialog( 'close' );
}
}
} );
}
function compareText( a, b ) {
return $( a ).text().toUpperCase() > $( b ).text().toUpperCase();
}
function populateDiv( $div, data, linkclass ) {
var uniquemap = {};
$( data ).find( linkclass ).sort( compareText ).each( function( i, el ) {
if ( !uniquemap[ $( el ).text() ] ) {
uniquemap[ $( el ).text() ] = true;
$( el ).attr( 'target', '_blank' ).removeClass().appendTo( $div ).append( '<br/>' );
}
} );
}
function getRedirectDisambig() {
var url = mw.util.getUrl( mw.config.get( 'wgPageName' ) );
$.get( url, function( data ) {
var $div = $( '<div>' );
$( '<h4>' ).text( 'Redirect:' ).appendTo( $div );
populateDiv( $div, data, '.mw-redirect' );
$( '<h4>' ).text( 'Disambigua:' ).appendTo( $div );
populateDiv( $div, data, '.mw-disambig' );
showResults( $div );
} )
.fail ( function() {
showResults( 'Errore nel leggere la pagina ' + url );
} );
}
$( function () {
var portletLink = mw.util.addPortletLink( 'p-tb', '#', 'Trova redirect/disambigua',
't-redirdis', 'Trova redirect/disambigua', 'R' );
$( portletLink ).click( function ( event ) {
event.preventDefault();
mw.loader.using( 'jquery.ui' )
.done( getRedirectDisambig )
.fail( function () {
console.error( 'Impossibile avviare l\'accessorio "Cerca redirect/disambigua".' );
} );
} );
} );
}( mediaWiki, jQuery ) );