Utente:Daimona Eaytoy/emergenze.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.
/**
* TODO:
* - Messaggio in talk a tutti i sysop quando viene pigiato il pulsantone
* - Contropulsante per togliere la protezione
* - Testare :)
*/
function notifyAdmins() {
// Scrivimi!
OO.ui.alert( 'Semiprotezione di emergenza eseguita correttamente.' );
}
function disableAnonEdits() {
var api = new mw.Api();
new mw.Api().get( {
action: 'query',
titles: 'MediaWiki:Titleblacklist',
prop: 'revisions',
rvprop: 'content',
rvslots: 'main'
} )
.done( function( data ) {
var pageidx = Object.keys( data.query.pages )[ 0 ],
page = data.query.pages[ pageidx ];
var content = page.revisions[ 0 ].slots.main[ '*' ],
newContent = content.replace( /(\#NOTA: in caso di emergenza, semiprotegge tutta Wikipedia\s+)#/, '$1' );
if ( newContent === content ) {
OO.ui.alert( 'Errore nell\'effettuare la semiprotezione, probabilmente qualcuno ha modificato manualmente la titleblacklist' );
return;
}
api.postWithEditToken( {
action: 'edit',
title: 'MediaWiki:Titleblacklist',
summary: 'EMERGENZA: Semiprotezione di tutta Wikipedia',
watchlist: 'nochange',
text: newContent
} )
.done( notifyAdmins )
.fail( function ( e ) {
// Brutto momento per i bug, lo so e mi dispiace :-/
OO.ui.alert( 'Errore nell\'eseguire la semiprotezione: ' + e );
} );
} )
.fail( function( e ) {
OO.ui.alert( 'Si è verificato un errore nel leggere la titleblacklist: ' + e );
} );
}
function promptDisableAnonEdits() {
var msg = 'Attenzione: premendo "OK" semiproteggerai tutta Wikipedia, e ' +
'verrà inviato un messaggio in talk a tutti gli amministratori per ' +
'notificarli dell\'emergenza. Confermi di volerlo fare?';
OO.ui.confirm( msg )
.done( function( doIt ) {
if ( doIt ) {
disableAnonEdits();
}
} );
}
function addEmergencyButtons() {
mw.util.addCSS( '#button-container { font-size: 300% }' );
var anonBlockBtn = new OO.ui.ButtonInputWidget( {
label: 'Semiproteggi tutta Wikipedia',
title: 'Semiproteggi tutta Wikipedia',
flags: [
'primary',
'destructive'
]
} )
.on( 'click', promptDisableAnonEdits );
$( '#button-container' ).append( anonBlockBtn.$element );
}
$( function () {
if ( mw.config.get( 'wgNamespaceNumber' ) === 4 && mw.config.get( 'wgTitle' ) === "Amministratori/Emergenze" ) {
$( '#nojs-warn' ).remove();
mw.loader.using( [ 'oojs-ui-core', 'oojs-ui-widgets', 'mediawiki.api', 'mediawiki.util' ] )
.done( addEmergencyButtons )
.fail( function() { console.error( 'Errore RL' ); } );
}
} );