MediaWiki:Gadget-tradLink.js: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
m Convenzioni stilistiche
Riga 5:
* Autore : [[:it:User:Jalo]]
*
* Lo script scriptcontienecontiene funzioni (tradLink_showDialog e keypress) derivate da:
* http://it.wikipedia.org/w/index.php?title=MediaWiki:Gadget-tb-base.js&oldid=66478020
* scritto da [[:it:User:Rotpunkt]]
Riga 11:
 
// Show the dialog in order to ask for the template parameters.
function tradLink_showDialog( data, page ) {
function tradLink_showDialog(data, page) {
lingue = tradLink_getLingue();
 
var $dialog, $fieldset;
// create the dialog html
$dialog = $( '#gtb-dialog' ).html( "Inserire l'elenco delle lingue da utilizzare per il tool TradLink" );
$fieldset = $( '<fieldset>' ).css( 'border-color', 'gray' ).appendTo( $dialog );
$( '<legend>' ).text( "Elenco" ).appendTo( $fieldset );
count = 1;
$.each( lingue, function( (id, val ) {
$( '<label>' )
.attr( 'for', id )
.text( "Alt+" + count + ': ' )
.appendTo( $fieldset );
$fieldset
.append( $( '<input/>' )
.attr( 'id', id )
.attr( 'type', 'text' )
.attr( 'size', 3 )
.attr( 'value', ( val || '' ) ) )
.append( '<br/>' );
count++;
} });
// show the dialog
var Buttons = new Object();
var OKText = 'OK';
var CancelText = 'Cancel';
Buttons[ OKText ] = function () {
var params = [];
count = 0;
$dialog.find( 'input:text' ).each(function function() {
params[ count++ ] = $.trim( $( this ).val() );
} );
});
lingue = params.join();
var d = new Date();
d.setTime( d.getTime() + ( 20 * 365 * 24 * 60 * 60 * 1000 ) ); // 20 years
var expires = "expires=" + d.toUTCString();
document.cookie = "tradLinkLangs=" + lingue + "; " + expires;
$( this ).dialog( 'close' );
};
};
Buttons[ CancelText ] = function () {
$( this ).dialog( 'close' );
};
};
$dialog.dialog( {
title: "Configurazione del tool TradLink",
width: 300,
resizable: false,
modal: true,
zIndex: 10000,
buttons: Buttons
} });
}
 
function tradLink_getLingue() {
value = "";
{
var valuename = "tradLinkLangs=";
var ca = document.cookie.split( ';' );
var name = "tradLinkLangs=";
for ( var cai = document0; i < ca.cookie.split('length;' i++ ); {
var c for(var i=0; i<ca.length;[ i++) {];
while ( c.charAt( 0 ) == ' ' var) c = ca[i]c.substring( 1 );
while if ( c.charAtindexOf(0 name ) ==' '0 ) cvalue = c.substring(1 name.length, c.length );
if (c.indexOf(name) == 0) value = c.substring(name.length,c.length);
}
 
if (value != "")
{
splitted = value.split(',');
return [splitted[0], splitted[1], splitted[2], splitted[3], splitted[4], splitted[5], splitted[6], splitted[7], splitted[8]];
}
 
else
if ( value != "" ) {
return ['en', 'nl', 'de', 'sv', 'fr', 'ru', 'es', 'war', 'vi'];
splitted = value.split( ',' );
return [ splitted[ 0 ], splitted[ 1 ], splitted[ 2 ], splitted[ 3 ], splitted[ 4 ], splitted[ 5 ], splitted[ 6 ], splitted[ 7 ], splitted[ 8 ] ];
} else
return [ 'en', 'nl', 'de', 'sv', 'fr', 'ru', 'es', 'war', 'vi' ];
}
 
function tradLink_tradLink( cod ) {
{
lingue = tradLink_getLingue();
var toTrad = mw.html.escape($('#wpTextbox1').textSelection('getSelection'));
var trad ="";
$.getJSON("https://"+lingue[cod]+".wikipedia.org/w/api.php?callback=?",
{
action: "query",
prop: "langlinks",
lllang: "it",
titles: toTrad,
format: "json",
redirects: ""
},
function(data) {
selStart = document.getElementById('wpTextbox1').selectionStart;
selEnd = document.getElementById('wpTextbox1').selectionEnd;
if (typeof(data)!="undefined" &&
typeof(data.query)!="undefined" &&
typeof(data.query.pages)!="undefined")
{
for (var key in data.query.pages) {
if (typeof(data.query.pages[key])!="undefined" &&
typeof(data.query.pages[key].langlinks)!="undefined" &&
typeof(data.query.pages[key].langlinks[0])!="undefined" &&
typeof(data.query.pages[key].langlinks[0]["*"])!="undefined")
{
trad = data.query.pages[key].langlinks[0]["*"];
try {
mw.html.escape($('#wpTextbox1').textSelection('encapsulateSelection', { pre: trad + "[", post: "]" }));
} catch (err) {}
document.getElementById('wpTextbox1').selectionStart = selStart + trad.length;
document.getElementById('wpTextbox1').selectionEnd = selEnd + trad.length + 2;
 
var toTrad = mw.html.escape( $( '#wpTextbox1' ).textSelection( 'getSelection' ) );
return;
var trad = "";
}
$.getJSON( "https://" + lingue[ cod ] + ".wikipedia.org/w/api.php?callback=?", {
}
action: "query",
}
prop: "langlinks",
try {
lllang: "it",
mw.html.escape($('#wpTextbox1').textSelection('encapsulateSelection', { pre: "", post: "[NO LINK]" }));
titles: toTrad,
} catch (err) {}
format: "json",
document.getElementById('wpTextbox1').selectionStart = selEnd;
redirects: ""
document.getElementById('wpTextbox1').selectionEnd = selEnd + 9;
},
});
function( data ) {
selStart = document.getElementById( 'wpTextbox1' ).selectionStart;
selEnd = document.getElementById( 'wpTextbox1' ).selectionEnd;
if ( typeof( data ) != "undefined" &&
typeof( data.query ) != "undefined" &&
typeof( data.query.pages ) != "undefined" ) {
for ( var key in data.query.pages ) {
if ( typeof( data.query.pages[ key ] ) != "undefined" &&
typeof( data.query.pages[ key ].langlinks ) != "undefined" &&
typeof( data.query.pages[ key ].langlinks[ 0 ] ) != "undefined" &&
typeof( data.query.pages[ key ].langlinks[ 0 ][ "*" ] ) != "undefined" ) {
trad = data.query.pages[ key ].langlinks[ 0 ][ "*" ];
try {
mw.html.escape( $( '#wpTextbox1' ).textSelection( 'encapsulateSelection', {
pre: trad + "[",
post: "]"
} ) );
} catch ( err ) {}
document.getElementById( 'wpTextbox1' ).selectionStart = selStart + trad.length;
document.getElementById( 'wpTextbox1' ).selectionEnd = selEnd + trad.length + 2;
 
return;
}
}
}
try {
mw.html.escape( $( '#wpTextbox1' ).textSelection( 'encapsulateSelection', {
pre: "",
post: "[NO LINK]"
} ) );
} catch ( err ) {}
document.getElementById( 'wpTextbox1' ).selectionStart = selEnd;
document.getElementById( 'wpTextbox1' ).selectionEnd = selEnd + 9;
} );
}
 
// setup hotkeys
$( '#wpTextbox1' ).keydown(function function( event ) {
var key = event.charCode ? event.charCode : event.keyCode ? event.keyCode : 0;
var button, help = '';
if ( event.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey ) {
if ( event.which === 48 ) // configure
{
{
if (event.which === 48) // configure
{
tradLink_showDialog();
event.preventDefault();
} else if ( event.which >= 49 && event.which < 57 ) // execute
}
{
else if (event.which >= 49 && event.which < 57) // execute
tradLink_tradLink( event.which - 49 );
{
event.preventDefault();
tradLink_tradLink(event.which - 49);
}
event.preventDefault();
}
}
} );
}
});