MediaWiki:Gadget-DeleteSection.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.
/**
* Gadget-DeleteSection.js
* Aggiunge il link "cancella" a ogni sezione di una pagina,
* di fianco a "modifica" o "modifica sorgente", per cancellare l'intera sezione.
* Riscritto da zero a partire da:
* http://it.wikipedia.org/w/index.php?title=Wikipedia:Monobook.js/deledesection.js&oldid=58651956
*
* @author [[Utente:Rotpunkt]]
*/
/*jshint unused: false */
/*global mediaWiki, jQuery */
( function ( mw, $ ) {
'use strict';
var $dialog, api = new mw.Api();
/**
* Cancella una sezione della pagina corrente.
*/
function removeSection( section, summary ) {
api.postWithEditToken( {
action: 'edit',
format: 'json',
title: mw.config.get( 'wgPageName' ),
section: section,
text: '',
summary: summary
} ).done ( function ( data ) {
___location.reload();
} ).fail ( function ( code, data ) {
alert( 'Errore nel cancellare la sezione: ' + code );
$dialog.dialog( 'close' );
} );
}
/**
* Richiede il testo per l'oggetto della modifica.
*/
function showDialog( section, sectiontitle ) {
var $descr, $label, $inputText;
if ( !$dialog ) {
$dialog = $( '<div>' ).attr( 'id', 'gds-dialog' ).appendTo( 'body' );
}
$descr = $( '<p>' ).text( 'Sezione: ' + sectiontitle );
$label = $( '<label>' ).css( { display: 'block', 'margin': '10px 0 2px 0' } )
.text( 'Oggetto per l\'edit di cancellazione:' );
$inputText = $( '<input/>' ).attr( 'type', 'text' )
.attr( 'size', 40 ).val( 'Sezione ' + sectiontitle + ' eliminata' );
$dialog.empty().append( $descr, $label, $inputText );
$dialog.dialog( {
title: 'Accessorio cancella sezione',
position: { my: 'center', at: 'center', of: window },
buttons: {
'Ok': function() {
var summary = $.trim( $inputText.val() );
if ( summary.length === 0 ) {
alert( 'L\'oggetto è obbligatorio.' );
} else {
$label.text( 'Cancellazione in corso...' );
$inputText.replaceWith( $.createSpinner( { size: 'large', type: 'block' } ).css( 'margin', '10px' ) );
removeSection( section, summary );
}
},
'Annulla': function () {
$( this ).dialog( 'close' );
}
}
} );
}
$( function () {
if ( mw.config.get( 'wgAction' ) === 'view' && mw.config.get( 'wgNamespaceNumber' ) % 2 === 0 ) {
$( 'span.mw-editsection > a:last-of-type' ).each( function ( i, el ) {
var $link, sectiontitle ;
sectiontitle = $( el ).attr( 'title' ).split( 'Modifica la sezione ' )[1];
$link = $( '<a>' )
.attr( 'href', '#' )
.attr( 'title', 'Cancella la sezione ' + sectiontitle )
.text( 'cancella' )
.click( function ( event ) {
mw.loader.using( [ 'mediawiki.api.edit', 'jquery.ui.dialog', 'jquery.spinner' ], function () {
showDialog( i + 1, sectiontitle );
} );
return false;
} );
$( el ).after( '<span> | </span>', $link );
} );
}
} );
}( mediaWiki, jQuery ) );