MediaWiki:Gadget-toolbar-buttons.js

Da Wikiversità, l'apprendimento libero.
/**
 * Gadget-toolbar-buttons.js
 * Questo script contiene solo la definizione del pulsanti.
 *
 * @author [[it:User:Rotpunkt]]
 */
/*global mediaWiki, jQuery */
/*  nowiki  */

( function ( mw, $ ) {
	'use strict';

	/**
	 * Array utilizzati dai pulsanti
	 */
	var argomenti = [
		"", "aeronautica", "Africa", "agricoltura", "album musicali", "allevamento", "alpinismo", "animali", "animazione", "anime e manga", "antropologia", "antroponimi", "apicoltura", "Apple", "archeologia", "architettura", "arte", "arti divinatorie", "arti marziali", "associazioni",  "astronomia", "atletica", "automobilismo", "aziende", "baseball", "Bisanzio", "biografie", "biologia", "blues", "botanica", "buddhismo", "calcio",
		"canottaggio", "cattolicesimo", "chimica", "ciclismo", "cinema", "cristianesimo", "cucina", "curling", "danza", "diritto", "Disney", "ebraismo", "ecologia", "economia", "editoria", "educazione", "Europa", "F1", "fantascienza", "film", "filosofia", "fisica", "font", "fotografia", "fumetti", "funghi", "GDR", "genetica", "Genova", "geografia", "Giappone", "giochi", "golf", "guerra", "Guerre stellari", "Harry Potter", "hockey",
		"informatica", "ingegneria", "hip hop", "jazz", "letteratura", "LGBT", "Liguria", "lingue", "linguistica", "manutenzione", "mare", "matematica", "meccanica", "medicina", "metal", "mineralogia", "mitologia", "mitologia greca", "mitologia romana", "mitologia azteca", "mitologia cinese", "mitologia egizia", "mitologia inca", "mitologia maya", "mitologia mesopotamica", "mitologia norrena", "mitologia slava", "mitologia ugro-finnica",
		"motociclismo", "musei", "musica", "musica classica", "musica elettronica", "nautica", "neopaganesimo", "numismatica", "nuoto", "paleontologia", "pallacanestro", "pallamano", "pallanuoto", "pallavolo", "patrimoni dell'umanità", "pattinaggio", "pesca sportiva", "piante", "politica", "Pokémon", "psicologia", "pugilato", "punk", "radio", "religione", "rock", "rugby", "santi", "scacchi", "scautismo", "scienza", "scherma", "sci", "sicurezza",
		"skeleton", "sociologia", "software libero", "solidarietà", "sport", "sport invernali", "stadi", "Star Trek", "storia", "subacquea", "Taoismo", "Tarantino", "teatro", "tecnologia", "telecomunicazioni", "televisione", "tennis", "tiro con l'arco", "Tolkien", "trasporti", "turismo", "vela", "videogiochi", "vini", "voci comuni", "Warhammer", "wrestling", "zoologia"
		],
		monthNames = [ '', 'gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno',
					   'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre' ],
		criteri = [
			"",
			"1. pagine vuote, di prova, senza significato o contenuti sensati",
			"2. pagine contenenti solo frasi offensive e/o volgari",
			"3. pagine scritte quasi completamente in una lingua straniera",
			"4. pagine o immagini promozionali, costituite unicamente da collegamenti esterni e/o spam, CV",
			"5. pagine orfane, con titolo sbagliato e dal contenuto identico ad altre pagine",
			"6. categorie senza voci, file o sottocategorie",
			"7. pagine già cancellate e reinserite senza motivo",
			"8. pagine provvisorie create per l'inversione del redirect",
			"9. redirect con errori di battitura nel titolo o errati",
			"10. discussioni e sottopagine di pagine già cancellate",
			"11. immagini doppie e orfane, o presenti su Commons",
			"12. immagini in evidente violazione di copyright",
			"13. pagine interamente costituite da testo in violazione di copyright",
			"14. immagini da verificare da oltre una settimana",
			"15. pagine 'Utente:' non appartenenti a nessuno o integralmente non conformi all'uso appropriato",
			"16. pagine trasferite ad altri progetti",
			"17. sottopagine 'Utente:' richieste dell'utente stesso",
			"18. file orfani e non utili all'enciclopedia",
			"19. template obsoleto, sostituito ed orfano",
			"20. file non liberi che non rispettano l'EDP"
		],
		projects = [ 'Wikipedia', 'Wikisource', 'Wikinews', 'Wikiquote', 'Wikibooks',
					 'Wikizionario', 'Wikispecies', 'Commons', 'meta' ],
		projectCodes = [ 'p', 's', 'n', 'q', 'b', 'wikt', 'p', 'c', 'm' ],
		voti = ['', 'a', 'b', 'c', 'd', 'e'],
		dipartimenti = [
			'', 'Arte, Architettura e Design', 'Economia', 'Giurisprudenza', 'Lingue', 'Medicina', 'Scienze agrarie e tessili', 'Scienze matematiche, fisiche e naturali', 'Scienze meccaniche e aerospaziali', 'Scienze sociali', 'Scuole', 'Studi umanistici', 'Tecnologie dell\'informazione', 'Wikiversità'
		],
		aree = [ 
			"", "Agraria", "Architettura", "Arte", "Bisogni educativi speciali", "Discipline non formali", "Economia", "Farmacia", 
			"Formazione parauniversitaria", "Giurisprudenza", "Ingegneria", "Lettere e filosofia", "Lingue e letterature straniere", 
			"Medicina e chirurgia", "Musica", "Psicologia", "Scienze della comunicazione", "Scienze della formazione", "ScienzeMNF", 
			"Scienze motorie e sportive", "Scienze politiche", "Studi militari", "Scuola dell'infanzia", "Scuola primaria", "Scuola media", 
			"Scuola secondaria superiore", "Sociologia", "Teologia"
		],
		iprojects = [
			"wikipedia ( italiano )", "commons", "wikisource ( italiano )", "per un testo completo su Wikisource ( italiano )", "wikibooks ( italiano )",
			"per il wikibook libro di cucina ( italiano )", "wikinotizie ( italiano )", "articolo di wikinotizie ( italiano )",
			"wikiquote ( italiano )", "meta", "wikizionario ( italiano )", "wikispecies ( italiano )", "wikipedia ( inglese )", "wikisource ( inglese )",
			"wikibooks ( inglese )", "wikinews ( inglese )", "wikiquote ( inglese )", "wiktionary ( inglese )"
		],
		icodes = [
			"w", "commons", "s", "testo", "b", "ricetta", "n", "SPECIAL_W", "q", "m", "wikt",
			"wikispecies", "wikipedia", "wikisource", "wikibooks", "wikinews", "wikiquote", "wiktionary"
		];
	
	/**
	 * Funzioni di utilità
	 */
	function makeAvviso( template, hotkey, icon, argonly ) {
		var button = {
			group: 'avvisivoci',
			hotkey: hotkey,
			icon: icon,
			ns: 0,
			template: {
				name: template,
				position: 'top',
				params: {
					argomento: {
						type: 'combobox',
						label: 'Argomento',
						value: argomenti
					}
				},
				format: function ( params ) {
					return '|' + ( argonly ? '' : params.motivo + '|' ) + params.argomento +
						   '|{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}';
				}
			}
		};
		if ( !argonly ) {
			button.template.params.motivo = {
				type: 'textbox',
				label: 'Motivazione'
			};
		}
		return button;
	}
	
	function makeMessaggio( template, icon ) {
		return {
			group: 'messaggiutente',
			ns: 3,
			icon: icon,
			template: {
				name: template,
				sign: true,
				params: {
					pagina: {
						type: 'textbox',
						label: 'Pagina',
						autocomplete: 'contribs'
					}
				},
				format: function ( params ) {
					return params.pagina !== '' ? ( '|' + params.pagina ) : '';
				}
			}
		};
	}

	window.gadgetToolbarButtons = {
		
		// ==================================
		//   Pulsanti gruppo formattazione
		// ==================================
		
		'Testo piccolo' : {
			group: 'formattazione',
			hotkey: 'Z',
			icon: '//upload.wikimedia.org/wikipedia/commons/d/dc/Pulsante_small.png',
			text: { pre: ' small ', post: ' /small ' }
		},
		'Sottolineato': {
			group: 'formattazione',
			hotkey: 'K',
			icon: '//upload.wikimedia.org/wikipedia/commons/3/37/Pulsante_sottolineato.png',
			text: { pre: ' span style="text-decoration: underline" ', post: ' /span ' }
		},
		'Testo barrato': {
			group: 'formattazione',
			hotkey: 'B',
			icon: '//upload.wikimedia.org/wikipedia/commons/1/1d/Pulsante_barrato.png',
			text: { pre: ' del ', post: ' /del ' }
		},
		'Maiuscolo/minuscolo': {
			group: 'formattazione',
			descr: 'Modifica il testo selezionato in maiuscolo o minuscolo.',
			icon: '//upload.wikimedia.org/wikipedia/commons/c/c5/Pulsante_case.png',
			execute: function () {
				var text, options;
				text = $( '#wpTextbox1' ).textSelection( 'getSelection' );
				options = {
					peri: text === text.toLowerCase() ?
						  text.toUpperCase() : text.toLowerCase(),
					replace: true
				};
				$( '#wpTextbox1' ).textSelection( 'encapsulateSelection', options );
			}
		},
		'A capo': {
			group: 'formattazione',
			hotkey: 'N',
			icon: '//upload.wikimedia.org/wikipedia/commons/5/5e/Pulsante_newline.png',
			text: { pre: ' br / ' }
		},
		'Include only': {
			group: 'formattazione',
			icon: '//upload.wikimedia.org/wikipedia/commons/6/63/Button_includeonly.png',
			text: { pre: ' includeonly ', post: ' /includeonly ' }
		},
		'No include': {
			group: 'formattazione',
			icon: '//upload.wikimedia.org/wikipedia/commons/c/ce/Button_no_include.png',
			text: { pre: ' noinclude ', post: ' /noinclude ' }
		},
		'formatHistory': {
			group: 'formattazione',
			icon: '//upload.wikimedia.org/wikipedia/commons/3/3f/Button_attendre.png',
			text: { pre: '{{Cassetto|Cronologia| pre ', post: ' /pre }}' }
		},
		'formatnum': {
			group: 'formattazione',
			descr: 'Inserisce la funzione parser {{formatnum:}} nella pagina.',
			icon: '//upload.wikimedia.org/wikipedia/commons/e/e9/Button_formatnum.png',
			text: { pre: '{{formatnum:', post: '}}' }
		},

		// ===============================
		//   Pulsanti gruppo avvisivoci
		// ===============================

		'Da controllare': makeAvviso( 'C', 'C', '//upload.wikimedia.org/wikipedia/commons/6/63/Pulsante_controllare.gif' ),
		'Orfana': makeAvviso('O', 'O', '//upload.wikimedia.org/wikipedia/commons/5/5e/Pulsante_orfana.gif', true ),
		'POV': makeAvviso( 'P', 'P', '//upload.wikimedia.org/wikipedia/commons/6/61/Pulsante_pov.gif' ),
		'Da wikificare': makeAvviso( 'W', 'W', '//upload.wikimedia.org/wikipedia/commons/2/24/Pulsante-wikificare.gif', true ),
		'In corso': makeAvviso( 'In corso', null, '//upload.wikimedia.org/wikipedia/commons/e/ec/Button_aviso.png', true ),
		'Controlcopy': makeAvviso( 'Controlcopy', null, '//upload.wikimedia.org/wikipedia/commons/7/75/Wiki_c_copy.gif' ),
		'Senza fonti': {
			group: 'avvisivoci',
			hotkey: 'F',
			icon: '//upload.wikimedia.org/wikipedia/commons/f/fd/Pulsante_F.png',
			template: {
				name: 'F',
				extratext: '\n',
				params: {
					motivo: { 
						type: 'textbox',
						label: 'Motivazione'
					},
					argomento: {
						type: 'combobox',
						label: 'Argomento',
						value: argomenti
					}
				},
				format: function ( params ) {
					return '|' + params.argomento +
						   '|{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}' + '|' + params.motivo;
				}
			}
		},
		'Nessuna nota': {
			group: 'avvisivoci',
			icon: '//upload.wikimedia.org/wikipedia/commons/5/54/Button_naissance.png',
			template: {
				name: 'NN',
				position: 'top',
				params: {
					motivo: { 
						type: 'textbox',
						label: 'Motivazione'
					},
					argomento: {
						type: 'combobox',
						label: 'Argomento',
						value: argomenti
					}
				},
				format: function ( params ) {
					return '|' + params.argomento +
						   '|{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}' + '|' + params.motivo;
				}
			}
		},
		'Stub': {
			group: 'avvisivoci',
			hotkey: 'S',
			icon: '//upload.wikimedia.org/wikipedia/commons/a/a5/Button_STUB.png',
			template: {
				name: 'S',
				position: 'top',
				params: {
					argomento: {
						type: 'combobox',
						label: 'Argomento',
						value: argomenti
					},
					argomento2: {
						type: 'combobox',
						label: 'Argomento 2',
						value: argomenti
					}
				},
				format: function ( params ) {
					return '|' + params.argomento +
						   ( params.argomento2 ? ( '|' + params.argomento2 ) : '' );
				}
			}
		},
		'Stub sezione': {
			group: 'avvisivoci',
			icon: '//upload.wikimedia.org/wikipedia/commons/c/ce/Pulsante_sezione.png',
			template: {
				name: 'S sezione',
				params: {
					argomento: {
						type: 'combobox',
						label: 'Argomento',
						value: argomenti
					},
					argomento2: {
						type: 'combobox',
						label: 'Argomento 2',
						value: argomenti
					}
				},
				format: function ( params ) {
					return '|' + params.argomento +
						   ( params.argomento2 ? ( '|' + params.argomento2 ) : '' );
				}
			}
		},
		'Sezione vuota': {
			group: 'avvisivoci',
			icon: '//upload.wikimedia.org/wikipedia/commons/5/50/Button_hellip.png',
			template: { 
				name: '...'
			}
		},
		'Tradurre': {
			group: 'avvisivoci',
			hotkey: 'T',
			icon: '//upload.wikimedia.org/wikipedia/commons/e/eb/Button_templatelink.png',
			template: {
				name: 'T',
				position: 'top',
				params: {
					lingua: {
						type: 'textbox',
						label: 'Lingua'
					},
					argomento: {
						type: 'combobox',
						label: 'Argomento',
						value: argomenti
					}
				},
				format: function ( params ) {
					return '|' + params.lingua + '|' + params.argomento +
						   '|{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}';
				}
			}
		},
		'Tradurre sezione': {
			group: 'avvisivoci',
			icon: '//upload.wikimedia.org/wikipedia/commons/c/ce/Pulsante_sezione.png',
			template: {
				name: 'T',
				params: {
					lingua: {
						type: 'textbox',
						label: 'Lingua'
					},
					argomento: {
						type: 'combobox',
						label: 'Argomento',
						value: argomenti
					}
				},
				format: function ( params ) {
					return '|' + params.lingua + '|' + params.argomento +
						   '|{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}';
				}
			}
		},
		'Da unire': {
			group: 'avvisivoci',
			ns: 0,
			hotkey: 'U',
			icon: '//upload.wikimedia.org/wikipedia/commons/e/eb/Pulsante_unire.png',
			template: {
				name: 'U',
				position: 'top',
				params: {
					commento: {
						type: 'textbox',
						label: 'Motivazione'
					},
					argomento: {
						type: 'combobox',
						label: 'Argomento',
						value: argomenti
					},
					pagina: {
						type: 'textbox',
						label: 'Pagina',
						autocomplete: 'contribs'
					},
					paragrafo: {
						type: 'textbox',
						label: 'Paragrafo (opzionale)'
					}
				},
				format: function ( params ) {
					return '|pagina=' + params.pagina +
						   '|argomento=' + params.argomento +
						   '|data={{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}' +
						   ( params.paragrafo !== '' ? ( '|paragrafo=[[#' + params.paragrafo +
													   '|' + params.paragrafo + ']]' ) : '' ) +
						   '|commento=' + params.commento;
				}
			}
		},
		'Da categorizzare': {
			group: 'avvisivoci',
			icon: '//upload.wikimedia.org/wikipedia/commons/5/55/Pulsante-categorizzare.gif',
			template: {
				name: 'Categorizzare',
				position: 'bottom',
				noinclude: true,
				params: {
					argomento: {
						type: 'combobox',
						label: 'Argomento',
						value: argomenti
					}
				},
				format: function ( params ) {
					return params.argomento ? ( '|' + params.argomento ) : '';
				}
			}
		},
		'Invertire': {
			group: 'avvisivoci',
			ns: 0,
			hotkey: 'I',
			icon: '//upload.wikimedia.org/wikipedia/commons/7/70/Button_fusion.png',
			template: {
				name: 'Spostare',
				position: 'top',
				params: {
					motivo: {
						type: 'textbox',
						label: 'Motivazione'
					},
					nome: {
						type: 'textbox',
						label: 'Nuovo nome',
						autocomplete: 'contribs'
					}
				},
				format: function ( params ) {
					return '|' + params.nome + '|' + params.motivo;
				}
			}
		},
		'WIP': {
			group: 'avvisivoci',
			ns: 0,
			icon: '//upload.wikimedia.org/wikipedia/commons/2/27/Pulsante_wip.png',
			template: {
				name: 'WIP',
				position: 'top',
				noinclude: true,
				format: function ( params ) {
					return '|' + mw.config.get( 'wgUserName' );
				}
			}
		},
		'Correggere': {
			group: 'avvisivoci',
			ns: 0,
			icon: '//upload.wikimedia.org/wikipedia/commons/d/d9/Button_uncorrect.png',
			template: {
				name: 'Correggere',
				position: 'top'
			}
		},
		'Da aggiornare': {
			group: 'avvisivoci',
			ns: 0,
			icon: '//upload.wikimedia.org/wikipedia/commons/c/cd/Button_vote_deletion.png',
			template: {
				name: 'Da aggiornare',
				position: 'top',
				params: {
					anno: {
						type: 'textbox',
						label: 'Anno'
					},
					mese: {
						type: 'combobox',
						label: 'Mese',
						value: monthNames
					}
				},
				format: function ( params ) {
					var n = monthNames.indexOf( params.mese );
					return '|anno=' + params.anno +
						   ( params.mese !== '' ? ( '|mese=' + ( n   10 ? '0' : '' ) + n ) : '' );
				}
			}
		},
		'Violazione copyright': {
			group: 'avvisivoci',
			ns: 0,
			icon: '//upload.wikimedia.org/wikipedia/commons/5/52/Pulsante_copyviol.png',
			template: {
				name: 'ViolazioneCopyright',
				position: 'top',
				params: {
					url: {
						type: 'textbox',
						label: 'URL del sito'
					}
				},
				format: function ( params ) {
					return '|url=' + params.url;
				}
			}
		},
		'Segnala copyviol': {
			group: 'avvisivoci',
			ns: function() { return document.title.indexOf( 'Modifica di Wikiversità:Sospette violazioni di copyright' ) !== -1; },
			icon: '//upload.wikimedia.org/wikipedia/commons/5/58/Button_black_copyright.png',
			template: {
				name: 'Segnala copyviol',
				params: {
					pagina: {
						type: 'textbox',
						label: 'Pagina (senza "[[ ]]")',
						autocomplete: 'contribs'
					},
					sito: {
						type: 'textbox',
						label: 'URL o altra fonte'
					},
					sito2: {
						type: 'textbox',
						label: 'Secondo URL o altra fonte'
					},
					diff: {
						type: 'textbox',
						label: 'Diff link'
					},
					diff2: {
						type: 'textbox',
						label: 'Diff link'
					},
				},
				format: function ( params ) {
					var ret = '';
					$.each( params, function ( key, value ) {
						if ( value !== '' ) {
							ret += '|' + key + '=' + value;
						}
					} );
					return ret + '|firma=~~~~';
				}
			}
		},
		'Cancellazione': {
			group: 'avvisivoci',
			hotkey: 'D',
			icon: '//upload.wikimedia.org/wikipedia/commons/7/7b/Pulsante_cancsempl.gif',
			template: {
				name: 'Cancellazione',
				position: 'top',
				noinclude: true,
				format: function ( params ) {
					return '|arg=';
				}
			}
		},
		'Cancella subito': {
			group: 'avvisivoci',
			hotkey: 'Y',
			icon: '//upload.wikimedia.org/wikipedia/commons/0/03/Pulsante_cancimm.png',
			template: {
				name: 'Cancella subito',
				position: 'top',
				params: {
					criterio: {
						type: 'combobox',
						label: 'Criterio',
						value: criteri
					},
					dettagli: {
						type: 'textbox',
						label: 'Dettagli (obbligatorio per i criteri 5, 7, 11, 12, 13 e 19)'
					}
				},
				format: function ( params ) {
					return '|' +
						( params.criterio !== '' ? criteri.indexOf( params.criterio ) : '' ) +
						( params.dettagli !== '' ? '|dettagli=' + params.dettagli : '' );
				}
			}
		},
		'Unverified': {
			group: 'avvisivoci',
			ns: 6,
			hotkey: 'V',
			icon: '//upload.wikimedia.org/wikipedia/commons/e/e8/Pulsante_unverified.png',
			template: {
				name: 'Unverified',
				format: function ( params ) {
					return '|giorno={{subst:CURRENTDAY}}|mese={{subst:CURRENTMONTHNAME}}|anno={{subst:CURRENTYEAR}}';
				}
			}
		},
		'Protezioni pagina': {
			group: 'avvisivoci',
			icon: '//upload.wikimedia.org/wikipedia/commons/9/90/Pulsante_editwar.png',
			template: {
				name: 'Protetta',
				position: 'top',
				noinclude: true
			}
		},
		'Trasferimento': {
			group: 'avvisivoci',
			ns: 0,
			icon: '//upload.wikimedia.org/wikipedia/commons/b/bd/Button_recherche_ip.png',
			template: {
				name: 'Trasferimento',
				position: 'top',
				params: {
					progetto: {
						type: 'combobox',
						label: 'Progetto',
						value: projects
					},
					paragrafo: {
						type: 'checkbox',
						label: 'Solo il paragrafo?',
						value: false
					}
				},
				format: function ( params ) {
					var idx = projects.indexOf( params.progetto );
					return '|' + projectCodes[idx] + ( params.paragrafo ? '|par' : '' );
				}
			}
		},
		'Nota disambigua': {
			group: 'avvisivoci',
			ns: function() { return mw.config.get( 'wgNamespaceNumber' ) % 2 == 0; },
			icon: '//upload.wikimedia.org/wikipedia/commons/3/32/Pulsante_nota_dis.png',
			template: {
				name: 'nota disambigua',
				position: 'top',
				params: {
					motivo: {
						type: 'textbox',
						label: 'Motivazione'
					},
					pagina: {
						type: 'textbox',
						label: 'Pagina (senza "[[ ]]")',
						autocomplete: 'contribs'
					},
					redirect: {
						type: 'textbox',
						label: 'Nome del redirect (senza "[[ ]]")'
					}
				},
				format: function ( params ) {
					var b = ( params.motivo + params.pagina + params.redirect ) !== '' ? '|' : '';
					return b + params.motivo + b + ( params.pagina !== '' ? ( '[[' + params.pagina + ']]' ) : '' ) +
						   ( params.redirect !== '' ? ( b + params.redirect ) : '' );
				}
			}
		},
		'Disambigua': {
			group: 'avvisivoci',
			ns: 0,
			icon: '//upload.wikimedia.org/wikipedia/commons/6/62/Button_desambig.png',
			template: {
				name: 'Disambigua',
				position: 'top',
				extratext: "\n* '''[[|]]''' - \n* '''[[|]]''' - \n* '''[[|]]''' - "
			}
		},
		'Tmp': {
			group: 'avvisivoci',
			ns: 0,
			icon: '//upload.wikimedia.org/wikipedia/commons/6/6b/Pulsante_tmp.png',
			template: {
				name: 'Tmp',
				position: 'top',
				params: {
					template: {
						type: 'textbox',
						label: 'Template'
					},
					paragrafo: {
						type: 'checkbox',
						label: 'Dati già presenti?',
						value: false
					}
				},
				format: function ( params ) {
					return '|' + params.template + ( params.paragrafo ? '|s' : '' );
				}
			}
		},
		'Scorporo/unione': {
			group: 'avvisivoci',
			ns: 1,
			icon: '//upload.wikimedia.org/wikipedia/commons/5/5f/Button_rediriger.png',
			template: {
				name: 'ScorporoUnione',
				params: {
					azione: {
						type: 'combobox',
						label: 'Scorporo/unione',
						value: [ '', 'scorporo', 'unione' ]
					},
					pagina: {
						type: 'textbox',
						label: 'Pagina (senza "[[ ]]")',
						autocomplete: 'contribs'
					},
					oldid: {
						type: 'textbox',
						label: 'Oldid'
					}
				},
				format: function ( params ) {
					var ret = '';
					$.each( params, function ( key, value ) {
						ret += '|' + key + '=' + value;
					} );
					ret += '|data={{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}';
					return ret;
				}
			}
		},
		'Citazione necessaria': {
			group: 'avvisivoci',
			ns: 0,
			summary: '+Cn',
			icon: '//upload.wikimedia.org/wikipedia/commons/b/bd/Btn_plus.png',
			text: { pre: '{{Citazione necessaria|', post: '}}' }
		},

		// ===================================
		//   Pulsanti gruppo messaggiutente
		// ===================================

		'Avviso copyviol': {
			group: 'messaggiutente',
			ns: 3,
			icon: '//upload.wikimedia.org/wikipedia/commons/e/ef/Pulsante_avvcopy.png',
			template: {
				name: 'Avvisocopyviol',
				sign: true,
				params: {
					voce: {
						type: 'textbox',
						label: 'Pagina (senza "[[ ]]")',
						autocomplete: 'contribs'
					},
					url: {
						type: 'textbox',
						label: 'URL o altra fonte'
					},
					otrs: {
						type: 'checkbox',
						label: 'Senza indicazioni OTRS',
						value: false
					}
				},
				format: function ( params ) {
					return '|pagina=' + params.voce + '|url=' + params.url +
						   ( params.otrs ? '|OTRS=no' : '' );
				}
			}
		},
		'Avviso cancellazione': {
			group: 'messaggiutente',
			ns: 3,
			icon: '//upload.wikimedia.org/wikipedia/commons/0/00/Pulsante-cancut.png',
			template: {
				name: 'Cancellazione',
				sign: true,
				params: {
					pagina: {
						type: 'textbox',
						label: 'Pagina (senza "[[ ]]")',
						autocomplete: 'contribs'
					},
					vot: {
						type: 'textbox',
						label: 'Numero votazione (solo se diverso da 1)'
					}
				},
				format: function ( params ) {
					return '|' + params.pagina + ( params.vot !== '' ? ( '|' + params.vot ) : '' );
				}
			}
		},
		'Avviso immagine': {
			group: 'messaggiutente',
			ns: 3,
			icon: '//upload.wikimedia.org/wikipedia/commons/a/a5/Pulsante_avviso_licenza_immagine.png',
			template: {
				name: 'Avvisoimmagine',
				subst: true,
				sign: true,
				params: {
					img1: {
						type: 'textbox',
						label: 'Immagine 1 (es: NomeImmagine.ext)'
					},
					img2: {
						type: 'textbox',
						label: 'Immagine 2 (opzionale)'
					},
					img3: {
						type: 'textbox',
						label: 'Immagine 3 (opzionale)'
					}
				},
				format: function ( params ) {
					var ret;
					if ( params.img1 !== '' && params.img2 !== '' && params.img3 !== '' ) {
						ret = '|immagini=[[:Immagine:' + params.img1 + ']], [[:Immagine:' +
							  params.img2 + ']] e [[:Immagine:' + params.img3 + ']]';
					} else if ( params.img1 !== '' && params.img2 !== '' ) {
						ret = '|immagini=[[:Immagine:' + params.img1 + ']] e [[:Immagine:' + params.img2 + ']]';
					} else {
						ret = '|immagine=[[:Immagine:' + params.img1;
					}
					return ret;
				}
			}
		},
		'Avviso vandalismo': makeMessaggio( 'Vandalismo', '//upload.wikimedia.org/wikipedia/commons/6/64/Wiki_vand.gif' ),
		'Cartellino giallo': {
			group: 'messaggiutente',
			ns: 3,
			icon: '//upload.wikimedia.org/wikipedia/commons/c/cc/Bouton_Vandale2.png',
			template: {
				name: 'yc',
				sign: true
			}
		},
		'Cartellino rosso': {
			group: 'messaggiutente',
			ns: 3,
			icon: '//upload.wikimedia.org/wikipedia/commons/e/e4/Bouton_Vandale3.png',
			template: {
				name: 'rc',
				subst: true,
				params: {
					durata: {
						type: 'textbox',
						label: 'Durata del blocco'
					}
				},
				format: function ( params ) {
					return '|' + params.durata + '|~~~~';
				}
			}
		},
		'Blocco': {
			group: 'messaggiutente',
			ns: 3,
			icon: '//upload.wikimedia.org/wikipedia/commons/7/7e/Bouton_Vandale4.png',
			template: {
				name: 'Blocco',
				sign: 'true',
				params: {
					motivo: {
						type: 'textbox',
						label: 'Motivazione'
					},
					durata: {
						type: 'textbox',
						label: 'Durata'
					}
				},
				format: function ( params ) {
					return '|' + params.motivo + '|' + params.durata;
				}
			}
		},
		'Spam': makeMessaggio( 'Spam', '//upload.wikimedia.org/wikipedia/commons/c/cb/Pulsante_spam.png' ),
		'Test': {
			group: 'messaggiutente',
			ns: 3,
			icon: '//upload.wikimedia.org/wikipedia/commons/4/40/Wiki_test.GIF',
			template: {
				name: 'test',
				sign: true,
				params: {
					voce: {
						type: 'textbox',
						label: 'Pagina (senza "[[ ]]")',
						autocomplete: 'contribs'
					},
					rev: {
						type: 'textbox',
						label: 'Diff link'
					}
				},
				format: function ( params ) {
					return params.voce !== '' ?  ( '|voce=' + params.voce +
						   ( params.rev !== '' ? ( '|revisione=' + params.rev ) : '' ) ) : '';
				}
			}
		},
		'Non enciclopedico': makeMessaggio( 'Non enciclopedico', '//upload.wikimedia.org/wikipedia/commons/9/9d/Button_halt.png' ),
		'Senza senso': makeMessaggio( 'Senza senso', '//upload.wikimedia.org/wikipedia/commons/a/aa/Button_question.png' ),
		'Benvenuto': {
			group: 'messaggiutente',
			ns: 3,
			summary: 'Benvenuto/a su Wikiversità' ,
			icon: '//upload.wikimedia.org/wikipedia/commons/7/74/Pulsante_benvenuto.png',
			template: {
				name: 'Benvenuto',
				subst: true,
				format: function ( params ) {
					return '|firma=~~~~';
				}
			},
		},
		'Benvenuta': {
			group: 'messaggiutente',
			ns: 3,
			summary: 'Benvenuta/o su Wikiversità' ,
			icon: '//upload.wikimedia.org/wikipedia/commons/0/00/Pulsante_benvenuta.png',
			template: {
				name: 'Benvenuta',
				subst: true,
				format: function ( params ) {
					return '|firma=~~~~';
				}
			},
		},
		'Dati personali': makeMessaggio( 'Dati personali', '//upload.wikimedia.org/wikipedia/commons/3/35/Sister_icon.png' ),
		'Grazie': {
			group: 'messaggiutente',
			ns: 3,
			icon: '//upload.wikimedia.org/wikipedia/commons/2/23/Pulsante_grazie.png',
			template: {
				name: 'Grazie',
				sign: true,
				params: {
					pag1: {
						type: 'textbox',
						label: 'Pagina (senza "[[ ]]")',
						autocomplete: 'contribs'
					},
					pag2: {
						type: 'textbox',
						label: 'Pagina 2'
					},
					pag3: {
						type: 'textbox',
						label: 'Pagina 3'
					},
					pag4: {
						type: 'textbox',
						label: 'Pagina 4'
					}
				},
				format: function ( params ) {
					var ret = '';
					$.each( params, function ( key, value ) {
						if ( value !== '' ) {
							ret += '|' + value;
						}
						return value !== '';
					} );
					return ret;
				}
			}
		},
		'Aiuto wikificare': makeMessaggio( 'AiutoW', '//upload.wikimedia.org/wikipedia/commons/2/24/Pulsante-wikificare.gif' ),
		'Avviso firma': {
			group: 'messaggiutente',
			ns: 3,
			icon: '//upload.wikimedia.org/wikipedia/commons/7/7d/Mifirma.jpg',
			template: {
				name: 'Avviso firma',
				sign: true
			}
		},

		// ============================
		//   Pulsanti gruppo altro
		// ============================
	
		'Ping': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/b/b7/Button_ping.png',
			ns: function() { return mw.config.get( 'wgNamespaceNumber' ) !== 0; },
			template: {
				name: 'Ping',
				params: {
					user: {
						type: 'textbox',
						label: 'Utente',
						autocomplete: 'users'
					},
					user2: {
						type: 'textbox',
						label: 'Utente 2',
						autocomplete: 'users'
					},
					user3: {
						type: 'textbox',
						label: 'Utente 3',
						autocomplete: 'users'
					},
					user4: {
						type: 'textbox',
						label: 'Utente 4',
						autocomplete: 'users'
					}
				},
				format: function ( params ) {
					var ret = '';
					$.each( params, function ( key, value ) {
						if ( value !== '' ) {
							ret += '|' + value;
						}
						return value !== '';
					} );
					return ret;
				}
			}
		},
		'Problematico': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/e/e1/Button_problematic.png',
			template: {
				name: 'Problematico',
				params: {
					utente: {
						type: 'textbox',
						label: 'Utente',
						autocomplete: 'users'
					}
				},
				format: function ( params ) {
					return '|' + params.utente;
				}
			}
		},
		'Vandalo': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/6/64/Wiki_vand.gif',
			template: {
				name: 'Vandalo',
				params: {
					utente: {
						type: 'textbox',
						label: 'Utente',
						autocomplete: 'users'
					}
				},
				format: function ( params ) {
					return '|' + params.utente;
				}
			}
		},
		'Vedi anche': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/1/12/Button_find.png',
			template: {
				name: 'Vedi anche',
				params: {
					pagina: {
						type: 'textbox',
						label: 'Pagina',
						autocomplete: 'contribs'
					}
				},
				format: function ( params ) {
					return '|' + params.pagina;
				}
			}
		},
		'Voto a favore': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/0/03/Pulsante_favorevole.png',
			text: { pre: '* {{+1}} ~~~~' }
		},
		'Voto astenuto': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/a/aa/Astenuto.png',
			text: { pre: '* {{0}} ~~~~' }
		},
		'Voto contrario': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/e/e7/Pulsante_contrario.png',
			text: { pre: '* {{-1}} ~~~~' }
		},
		'Voto': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/a/a6/Pulsante_aggiungi_voto.png',
			text: { pre: '# ~~~~' }
		},
		'Dot': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/a/aa/Button_dot1.PNG',
			template: { 
				name: '·'
			}
		},
		'Tenere': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/b/b6/Button_article_de_qualite.png',
			ns: 4,
			template: {
				name: 'Tenere'
			}
		},
		'Cancellare': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/1/13/Button_delete.png',
			ns: 4,
			template: {
				name: 'Cancellare'
			}
		},
		'Fatto': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/e/e9/Button_done.png',
			ns: function() { return mw.config.get( 'wgNamespaceNumber' ) !== 0; },
			template: {
				name: 'Fatto'
			}
		},
		'Non fatto': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/a/a5/Button_not_done.png',
			ns: function() { return mw.config.get( 'wgNamespaceNumber' ) !== 0; },
			template: {
				name: 'Non fatto'
			}
		},
		'Interprogetto': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/6/63/Button_out_relevancy.png',
			template: {
				name: 'interprogetto',
				params: {
					pagina: {
						type: 'textbox',
						label: 'Pagina (senza "[[ ]]")'
					},
					progetto: {
						type: 'combobox',
						label: 'Progetto',
						value: iprojects
					}
				},
				format: function ( params ) {
					var ret, idx = projects.indexOf( params.progetto );
					if ( icodes[idx] === 'SPECIAL_W' ) {
						ret = '/notizia|' + params.pagina;
					} else {
						ret = '|' + icodes[idx] +
							  ( params.pagina !== '' ? ( '=' + params.pagina ) : '' );
					}
					return ret;
				}
			}	
		},
		'Scroll box': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/7/74/Button_comment.png',
			template: {
				name: 'scroll box',
				format: function ( params ) {
					return '|larghezza=100%|altezza=100px|testo=testo contenuto';
				}
			}
		},
		'Categoria': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/c/c0/Pulsante_categoria.png',
			text: { pre: '[[Categoria:', post: ']]' }
		},
		'Galleria': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/9/9e/Btn_toolbar_gallery.png',
			text: { pre: ' gallery ', post: ' /gallery ' }
		},
		'Redirect': {
			group: 'altro',
			hotkey: 'R',
			icon: '//upload.wikimedia.org/wikipedia/commons/c/c8/Button_redirect.png',
			text: { pre: '#RINVIA[[', post: ']]' }
		},
		'References': {
			group: 'altro',
			icon: '//upload.wikimedia.org/wikipedia/commons/7/79/Button_reflink.png',
			text: { pre: ' ref ', post: ' /ref ' }
		},
		'Sezione Note': {
			group: 'altro',
			descr: 'Inserisce la sezione Note e il tag <references/>.',
			icon: '//upload.wikimedia.org/wikipedia/commons/5/54/Button_naissance.png',
			text: { pre: '\n== Note ==\n references / \n' }
		},
		'Monitoraggio': {
			group: 'altro',
			ns: 1,
			hotkey: 'M',
			icon: '//upload.wikimedia.org/wikipedia/commons/2/26/Pulsante_monitoraggio.png',
			template: {
				name: 'Monitoraggio',
				position: 'top',
				params: {
					dipartimento: { type: 'combobox', label: 'Dipartimento', value: dipartimenti },
					dipartimento2: { type: 'combobox', label: 'Dipartimento 2', value: dipartimenti },
					dipartimento3: { type: 'combobox', label: 'Dipartimento 3', value: dipartimenti },
					dipartimento4: { type: 'combobox', label: 'Dipartimento 4', value: dipartimenti },
					accuratezza: { type: 'combobox', label: 'Accuratezza', value: voti },
					scrittura: { type: 'combobox', label: 'Scrittura', value: voti },
					fonti: { type: 'combobox', label: 'Fonti', value: voti },
					immagini: { type: 'combobox', label: 'Immagini', value: voti },
					note: { type: 'textbox', label: 'Note' }
				},
				format: function ( params ) {
					var ret = '\n';
					$.each( params, function ( key, value ) {
						ret += '|' + key + ' = ' + value + '\n';
					} );
					ret += '|utente = ' + mw.config.get( 'wgUserName' ) + '\n';
					ret += '|data = {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}\n';
					return ret;
				}
			}
		}
	};
}( mediaWiki, jQuery ) );

/*  /nowiki  */