MediaWiki:Gadget-QuickDelete.js

Da Semi del Verbo, l'enciclopedia dell'influenza del Vangelo sulla cultura

Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.

  • Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
  • Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
  • Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
  • Opera: premi Ctrl-F5.
/**
 * Gadget-QuickDelete.js
 * Nel namespace File: aggiunge cinque link al portlet Strumenti per inserire
 * automaticamente il template unverdata all'immagine e un avviso all'utente.
 * Riscritto da zero a partire da:
 * http://it.wikipedia.org/w/index.php?title=MediaWiki:Gadget-QuickDelete.js&oldid=51134251
 *
 * @author [[Utente:Rotpunkt]]
 */
/*jshint unused: false */
/*global mediaWiki, jQuery */
/* <nowiki> */

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

	// se impostato a true la pagina viene salvata automaticamente
	var autosave = true,
	// portlet links
		portletLinks = {
			licenza: {
				name: 'Immagine senza licenza',
				summary: 'Immagine senza licenza',
				template: '{{subst:Avvisoimmagine|immagine=[[:$1]]}}'
			},
			fonte: {
				name: 'Immagine senza fonte/autore',
				summary: 'Informazioni mancanti',
				template: '{{subst:Avvisoimmagine3|$1}}'
			},
			otrs: {
				name: 'Immagine senza OTRS',
				summary: 'Informazioni mancanti',
				template: '{{subst:AvvisoOTRS|$1}}'
			},
			edp: {
				name: 'Immagine EDP non accettabile',
				summary: 'EDP non rispettata',
				template: '{{subst:AvvisoEDP|$1}}'
			},
			altro: {
				name: 'Immagine senza altre informazioni',
				summary: 'Immagine senza informazioni',
				template: '{{subst:Avvisoimmagine2|immagine=[[:$1]]}}'
			}
		};

	// modifica la pagina dell'immagine
	function editFile() {
		if ( $( '#wpTextbox1' ).length && $( '#wpSummary' ).length && $( '#wpSave' ).length ) {
			$( '#wpTextbox1' ).val( function ( i, text ) {
				return '{{subst:unverdata}}\n' + text;
			} );
			$( '#wpSummary' ).val( 'Segnalazione di immagine [[Wikipedia:Immagini da verificare|' +
								   'da verificare]] ( unverified ). Se non verificata questa immagine ' +
							       'sarà cancellata tra 7 giorni.' );
			if ( autosave ) {
				$( '#wpSave' ).click();
			}
		}
	}

	// modifica la pagina di discussione dell'utente
	function editUserTalk( gqdaction, gqdpage ) {
		if ( $( '#wpTextbox1' ).length && $( '#wpSummary' ).length && $( '#wpSave' ).length ) {
			$( '#wpTextbox1' ).val( function ( i, text ) {
				return text + '\n== ' + portletLinks[gqdaction].summary + ' ==\n' +
					   portletLinks[gqdaction].template.replace( '$1', decodeURIComponent( gqdpage ) ) +
					   ' ~~~~\n';
			} );
			$( '#wpSummary' ).val( portletLinks[gqdaction].summary );
			if ( autosave ) {
				$( '#wpSave' ).click();
			}
		}
	}

	function addPortletLinks() {
		$.each( portletLinks, function ( key, portletLink ) {
			var link = mw.util.addPortletLink( 'p-tb', '#', portletLink.name );
			$( link ).click( function ( event ) {
				event.preventDefault();
				var username = $( 'table[class="wikitable filehistory"] tr:eq( 1 ) td:eq( -2 ):first a' ).filter( '[title]' );
				username = username.length ? username.attr( 'title' ).split( ':' ) : null;
				if ( username && username[0] === 'Utente' ) {
					username[1] = username[1].replace( '(la pagina non esiste)', '' );
					window.open( mw.config.get( 'wgScript' ) +
								 '?action=edit&title=Discussioni_utente:' + username[1] + '&gqdaction=' + key +
								 '&gqdpage=' + encodeURIComponent( mw.config.get( 'wgPageName' ) ), '_blank' );
					document.location = mw.config.get( 'wgScript' ) +
										'?title=' + mw.config.get( 'wgPageName' ) +
										'&action=edit&gqdaction=unverdata';
				} else {
					alert( '[Gadget-QuickDelete] username non trovato' );
				}
			} );
		} );
	}

	$( function () {
		var nsNum = mw.config.get( 'wgNamespaceNumber' ),
			gqdaction = mw.util.getParamValue( 'gqdaction' ),
			gqdpage = mw.util.getParamValue( 'gqdpage' );
		if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
			// edit richiamato dallo script stesso per modificare la pagina dell'immagine o dell'utente
			if ( nsNum === 6 && gqdaction && gqdaction === 'unverdata' ) {
				editFile();
			} else if ( nsNum === 3 && gqdaction && gqdpage ) {
				editUserTalk( gqdaction, gqdpage );
			}
		} else if ( nsNum === 6 ) {
			addPortletLinks();
		}
	} );
}( mediaWiki, jQuery ) );

/* </nowiki> */