MediaWiki:Gadget-AvvisoRiduzioneBozza.js

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

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.

// <nowiki>

/**
 * Dopo che Speciale:Sposta ha eseguito con la riduzione a bozza di una voce,
 * crea un form per scegliere l'inserimento di avvisi nella talk utente.
 * 
 * Adattato da [[MediaWiki:Gadget-Azioni-dopo-blocco.js]] da Valcio
 */
/* global mediaWiki, jQuery, OO */

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

	/**
	 * Funzione di utilità per le etichette, restituisce il link a un template wiki.
	 * @param {string} tpl - Il nome del template.
	 */
	function getLinkTpl( tpl ) {
		return '{{<a target="_blank" href="' +
			   mw.config.get( 'wgArticlePath' ).replace( '$1', 'Template:' + tpl ) +
			   '">' + tpl + '</a>}}';
	}

	/**
	 * Aggiunge una sezione alla pagina indicata.
	 * @param {string} title - Il titolo della pagina.
	 * @param {string} text - Il contenuto della sezione.
	 * @param {string} watchlist - Il corrispettivo parametro di API:Edit,
	 *							   un valore fra watch/unwatch/preferences/nochange
	 * @param {function} successHandler - La funzione da richiamare in caso di successo.
	 */
	 function newSection( title, text, watchlist, successHandler ) {
		new mw.Api().newSection( title, 'Avviso', text, { watchlist: watchlist } )
			.done( function ( data ) {
				successHandler();
			} )
			.fail ( function ( code, data ) {
				OO.ui.alert( 'Errore nel creare l\'avviso: ' + code );
			} );
	 }

	/**
	 * Crea il form per scegliere un'eventuale azione dopo lo spostamento.
     * @param {string} username - Il nome dell'utente che ha creato la voce.
	 * @param {string} title - Il titolo della bozza senza prefisso.
	 * @param {string} reason - La motivazione che è stata usata per lo spostamento.
	 */
	function buildForm( username, title, reason ) {
		var fieldset = new OO.ui.FieldsetLayout( { 
			label: $( '<span>Aggiungi ' + getLinkTpl( 'Asb' ) + ' nella talk dell\'utente '+username+'</span>' ),
			classes: [ 'gb-container' ]
		} );
		/*var argSelect = new OO.ui.TagMultiselectWidget( {
			placeholder: 'Inserisci argomenti (max 2)',
			tagLimit: 2,
			allowArbitrary: true
		} );*/
		var button = new OO.ui.ButtonWidget( {
			label: 'Inserisci avviso',
			classes: [ 'gb-container-button' ]
		} ).on( 'click', function () {
			newSection( 'Discussioni utente:' + username, '{{Asb|voce='+title+'|motivo='+reason+'|arg1=|arg2=}}  --~~~~', 'preferences', function () {
				OO.ui.alert( 'Avviso aggiunto con successo.' );
			} );
		} );
		fieldset.addItems( /*argSelect,*/ button );

		$( "#mw-content-text" ).append( fieldset.$element );
	}

	/**
	 * Legge la query string della pagina corrente per ottenere i parametri dello spostamento.
	 */
	function parseQueryString(title) {
        var api = new mw.Api();
        api.get({
			"action": "query",
			"format": "json",
			"prop": "revisions",
			"list": "logevents",
			"titles": title,
			"formatversion": "2",
			"rvprop": "user",
			"rvlimit": "1",
			"rvdir": "newer",
			"leprop": "comment",
			"letype": "move",
			"leuser": mw.config.get("wgUserName"),
			"lelimit": "1"
		}).done( function ( data ) {
             var username=data.query.pages[0].revisions[0].user;
             var reason=data.query.logevents[0].comment;
             buildForm(username, title.slice(title.indexOf(":")+1), reason);
		} )
		.fail ( function ( code, data ) {
			OO.ui.alert( 'Errore nel generare le opzioni di avviso: ' + code );
		} );
    }

	$( function () {
		if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Movepage' ) {
			if ( $( '#movepage-newlink' ).length  ) {
    	        if($( '#movepage-newlink' ).text().substring(0,6) == "Bozza:"){
    	        	var title=$( '#movepage-newlink' ).text();
				    parseQueryString(title);
    	        }
			}
		}
	} );
}( mediaWiki, jQuery ) );

// </nowiki>