MediaWiki:Gadget-autopadlock.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.
/**
* Aggiunge il template Protetta dopo che si protegge una voce.
*
* @author https://it.wikipedia.org/wiki/Utente:Sakretsu
*/
/* global mediaWiki, jQuery */
( function ( mw, $ ) {
'use strict';
var api;
var conf = mw.config.get( [
'wgArticleId',
'wgNamespaceNumber',
'wgPageName',
'wgRestrictionEdit',
'wgRestrictionMove',
'wgUserId'
] );
/** Entro quanto inserire il template dopo la protezione, in secondi */
var MAX_DELAY = 60;
/**
* Verifica che la voce sia stata appena protetta dall'utente.
*
* @param {function} editHandler - La funzione di modifica.
*/
function checkLastProtection( editHandler ) {
api.get( {
action: 'query',
prop: 'revisions',
pageids: conf.wgArticleId,
rvprop: 'content',
rvslots: 'main',
rvlimit: 1,
list: 'logevents',
leprop: 'ids|userid|timestamp',
letitle: conf.wgPageName,
letype: 'protect',
lelimit: 1,
format: 'json'
} ).done( function( result ) {
var data = result.query;
var protection = data.logevents[ 0 ];
var wikitext = data.pages[ conf.wgArticleId ].revisions[ 0 ].slots.main[ '*' ];
var storageKey = 'autopadlock-' + protection.logid;
var delay = new Date() - new Date( protection.timestamp );
if (
protection.userid === conf.wgUserId &&
delay < MAX_DELAY * 1000 &&
!mw.cookie.get( storageKey ) &&
!/\{\{ *[Pp]rotetta *\}\}/.test( wikitext )
) {
mw.notify( 'Aggiunta del template Protetta in corso...' );
mw.cookie.set( storageKey, 1, MAX_DELAY - delay / 1000 );
editHandler();
}
} ).fail( function ( error ) {
console.log( 'Errore API', error );
} );
}
/**
* Inserisce il template Protetta a inizio voce.
*/
function addPadlocks() {
var text = '<noinclude>{\{Protetta}\}</noinclude>\n';
api.postWithToken( 'csrf', {
action: 'edit',
pageid: conf.wgArticleId,
prependtext: text,
summary: '+Protetta',
watchlist: 'nochange'
} ).done( function () {
mw.notify( 'Template Protetta aggiunto' );
} ).fail( function ( error ) {
console.log( 'Errore API', error );
mw.notify(
'Si è verificato un errore all\'aggiunta del template Protetta',
{ type: 'error' }
);
} );
}
$( function () {
if (
conf.wgNamespaceNumber === 0 &&
conf.wgArticleId !== 0 &&
( conf.wgRestrictionEdit.length || conf.wgRestrictionMove.length ) &&
!$( '#mw-indicator-protedit, #mw-indicator-prot_move' ).length
) {
mw.loader.using( [ 'mediawiki.api', 'mediawiki.cookie' ] )
.done( function () {
api = new mw.Api();
checkLastProtection( addPadlocks );
} )
.fail( function () {
console.error( 'Impossibile avviare l\'accessorio autopadlock.' );
} );
}
} );
}( mediaWiki, jQuery ) );