MediaWiki:Gadget-Requests-Wizard-Config.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.
/* <nowiki> */
/**
* Configurazione per ogni pagina, i valori accettati sono:
* - reqPage (stringa, obbligatorio): Pagina dove eseguire la modifica
* - buttonID (stringa, obbligatorio): ID del pulsante, deve iniziare con "btn-"
* - dialogTitle (stringa, obbligatorio): Titolo da usare nell'intestazione del dialog
* - buildForm (funzione, obbligatorio): Funzione che costruisce il form, prende
* il dialog come argomento e deve aggiungere i campi chiamando setFields().
* - getSubmitData (funzione, obbligatorio): Funzione che gestisce il submit,
* prende il dialog come argomento. Restituisce un oggetto con due proprietà:
* 'text' (stringa, testo da aggiungere alla pagina) e 'summary' (stringa,
* oggetto della modifica e titolo della sezione). La funzione viene chiamata
* dopo aver validato l'input (campi obbligatori).
* - successMsg (stringa, obbligatorio): Messaggio da mostrare all'utente se tutto
* va a buon fine.
* - dialogSize (stringa, facoltativo): Dimensione della finestra, deve essere
* 'small', 'medium' o 'large'; default: 'medium'.
* - dialogHeight (intero, facoltativo): Altezza del dialog; default: 500.
* - getIntroText (funzione, facoltativo): Funzione che restituisce una promise
* il cui valore è del testo (HTML) da usare come introduzione del dialog.
* Prende come argomento l'oggetto Api da usare per fare richieste.
* NB: L'HTML della pagina in oggetto viene inserito direttamente nel dialog;
* di conseguenza, è necessario accertarsi che la pagina sia modificabile
* SOLO dagli amministratori o dagli AI.
*/
var config = {
'Wikipedia:Vandalismi_in_corso': {
reqPage: 'Wikipedia:Vandalismi in corso',
buttonID: 'btn-nuovo-vandalo',
dialogTitle: 'Aggiungi una nuova segnalazione',
successMsg: 'Segnalazione inserita correttamente',
buildForm: function ( dialog ) {
dialog.usernameInput = new mw.widgets.UserInputWidget( {
required: true
} );
dialog.usernameField = new OO.ui.FieldLayout(
dialog.usernameInput,
{
label: 'Utente da segnalare',
align: 'top'
}
);
dialog.detailsInput = new OO.ui.MultilineTextInputWidget( {
required: true,
rows: 5,
classes: [ 'requests-wizard-textarea-resize-vertical' ]
} );
dialog.detailsField = new OO.ui.FieldLayout(
dialog.detailsInput,
{
label: 'Breve spiegazione (senza firma)',
align: 'top'
}
);
dialog.setFields( [ dialog.usernameField, dialog.detailsField ] );
},
getSubmitData: function ( dialog ) {
var username = dialog.usernameInput.getValue(),
details = dialog.detailsInput.getValue();
var newText = '{{vandalo|' + username.trim() + '}} ' + details.trim() + ' --~~~~';
return { text: newText, summary: '' };
}
},
'Wikipedia:Richieste_agli_amministratori': {
reqPage: 'Wikipedia:Richieste agli amministratori/Richieste correnti',
buttonID: 'btn-richiesta-admin',
dialogTitle: 'Aggiungi la tua richiesta',
dialogSize: 'large',
dialogHeight: 600,
successMsg: 'Richiesta inserita correttamente',
getIntroText: function ( api ) {
return api.parse(
new mw.Title( "Template:Editnotices/Page/Wikipedia:Richieste agli amministratori/Richieste correnti" ),
{ prop:"text", disablelimitreport: '' }
);
},
buildForm: function ( dialog ) {
dialog.titleInput = new OO.ui.TextInputWidget( {
required: true
} );
dialog.titleField = new OO.ui.FieldLayout(
dialog.titleInput,
{
label: 'Titolo della richiesta',
align: 'top'
}
);
dialog.detailsInput = new OO.ui.MultilineTextInputWidget( {
required: true,
placeholder: 'Spiega chiaramente e sinteticamente la tua richiesta, senza firmare',
rows: 10,
classes: [ 'requests-wizard-textarea-resize-vertical' ]
} );
dialog.detailsField = new OO.ui.FieldLayout(
dialog.detailsInput,
{
label: 'Richiesta',
align: 'top'
}
);
dialog.setFields( [ dialog.titleField, dialog.detailsField ] );
},
getSubmitData: function ( dialog ) {
var title = dialog.titleInput.getValue(),
details = dialog.detailsInput.getValue();
return { text: details.trim() + ' --~~~~', summary: title };
}
},
'Wikipedia:Segnalazioni_NUI': {
reqPage: 'Wikipedia:Segnalazioni NUI',
buttonID: 'btn-nuovo-nui',
dialogTitle: 'Aggiungi una nuova segnalazione',
successMsg: 'Segnalazione inserita correttamente',
buildForm: function ( dialog ) {
dialog.usernameInput = new mw.widgets.UserInputWidget( {
required: true
} );
dialog.usernameField = new OO.ui.FieldLayout(
dialog.usernameInput,
{
label: 'Nome utente da segnalare',
align: 'top'
}
);
dialog.detailsInput = new OO.ui.MultilineTextInputWidget( {
rows: 5,
classes: [ 'requests-wizard-textarea-resize-vertical' ]
} );
dialog.detailsField = new OO.ui.FieldLayout(
dialog.detailsInput,
{
label: 'Spiegazione (facoltativa, senza firma)',
align: 'top'
}
);
dialog.setFields( [ dialog.usernameField, dialog.detailsField ] );
},
getSubmitData: function ( dialog ) {
var username = dialog.usernameInput.getValue(),
details = dialog.detailsInput.getValue().trim();
var newText = '{{Reported|' + username.trim() + '}}' + ( details ? ' ' + details.trim() : '' ) + ' --~~~~';
return { text: newText, summary: '' };
}
},
'Wikipedia:Oracolo': {
reqPage: 'Wikipedia:Oracolo',
buttonID: 'btn-richiesta-oracolo',
dialogTitle: 'Fai la tua richiesta',
successMsg: 'Richiesta inserita correttamente',
buildForm: function ( dialog ) {
dialog.titleInput = new OO.ui.TextInputWidget( {
required: true
} );
dialog.titleField = new OO.ui.FieldLayout(
dialog.titleInput,
{
label: 'Titolo della richiesta',
align: 'top'
}
);
dialog.detailsInput = new OO.ui.MultilineTextInputWidget( {
required: true,
rows: 10,
classes: [ 'requests-wizard-textarea-resize-vertical' ]
} );
dialog.detailsField = new OO.ui.FieldLayout(
dialog.detailsInput,
{
label: 'Richiesta (senza firma)',
align: 'top'
}
);
dialog.setFields( [ dialog.titleField, dialog.detailsField ] );
},
getSubmitData: function ( dialog ) {
var title = dialog.titleInput.getValue(),
details = dialog.detailsInput.getValue();
return { text: details.trim() + ' --~~~~', summary: title };
}
},
'Wikipedia:Sospette_violazioni_di_copyright/Segnalazioni': {
reqPage: 'Wikipedia:Sospette violazioni di copyright/Segnalazioni/' + new Date().toLocaleString( 'it-it', { month: 'long', year: 'numeric' } ),
buttonID: 'btn-segnalazione-copyviol',
dialogTitle: 'Segnala violazione di copyright',
dialogSize: 'large',
successMsg: 'Segnalazione inserita correttamente',
buildForm: function ( dialog ) {
dialog.pageInput = new mw.widgets.TitleInputWidget( {
validateTitle: true,
required: true
} );
dialog.pageField = new OO.ui.FieldLayout(
dialog.pageInput,
{
label: 'Pagina con la violazione di copyright',
align: 'top'
}
);
dialog.diffInput = new OO.ui.NumberInputWidget( {
showButtons: false,
min: 1,
required: true
} );
dialog.diffField = new OO.ui.FieldLayout(
dialog.diffInput,
{
label: 'Identificativo del diff in cui è stata inserita la violazione di copyright',
help: new OO.ui.HtmlSnippet( 'Vedi <a href="//it.wikipedia.org/wiki/Aiuto:Diff">Aiuto:Diff</a> per maggiori informazioni' ),
align: 'top'
}
);
dialog.rmDiffInput = new OO.ui.NumberInputWidget( {
showButtons: false,
min: 1
} );
dialog.rmDiffField = new OO.ui.FieldLayout(
dialog.rmDiffInput,
{
label: 'Eventuale identificativo della modifica con cui è stata tolta la violazione di copyright',
help: new OO.ui.HtmlSnippet( 'Vedi <a href="//it.wikipedia.org/wiki/Aiuto:Diff">Aiuto:Diff</a> per maggiori informazioni' ),
align: 'top'
}
);
dialog.siteInput = new OO.ui.TextInputWidget( {
required: true
} );
dialog.siteField = new OO.ui.FieldLayout(
dialog.siteInput,
{
label: 'Link del sito da cui è stato copiato il materiale',
align: 'top'
}
);
dialog.site2Input = new OO.ui.TextInputWidget( {} );
dialog.site2Field = new OO.ui.FieldLayout(
dialog.site2Input,
{
label: 'Eventuale altro sito da cui è stato copiato il materiale',
align: 'top'
}
);
dialog.sourceInput = new OO.ui.TextInputWidget( {} );
dialog.sourceField = new OO.ui.FieldLayout(
dialog.sourceInput,
{
label: 'Eventuale fonte cartacea, sito non linkabile o altra provenienza del materiale',
align: 'top'
}
);
dialog.noTitleInput = new OO.ui.ToggleSwitchWidget( {} );
dialog.noTitleField = new OO.ui.FieldLayout(
dialog.noTitleInput,
{
label: 'Ometti titolo della sezione, aggiungendo la segnalazione in coda a quelle esistenti',
align: 'top'
}
);
dialog.setFields( [ dialog.pageField, dialog.diffField, dialog.rmDiffField, dialog.siteField, dialog.site2Field, dialog.sourceField, dialog.noTitleField ] );
},
getSubmitData: function ( dialog ) {
var page = dialog.pageInput.getValue().trim();
var newText = "{{subst:#ifexist:Wikipedia:Sospette violazioni di copyright/Segnalazioni/{{subst:LOCALMONTHNAME}} {{subst:LOCALYEAR}}" +
"||<noinclude>{{Wikipedia:Sospette violazioni di copyright/Segnalazioni/Cassetto mensile|{{subst:LOCALMONTHNAME}} {{subst:LOCALYEAR}}}}" +
"</noinclude>}}{{Segnala copyviol" +
"|pagina= " + page +
"|diff= " + dialog.diffInput.getValue().trim() +
"|diff2= " + dialog.rmDiffInput.getValue().trim() +
"|sito= " + dialog.siteInput.getValue().trim() +
"|sito2= " + dialog.site2Input.getValue().trim() +
"|fonte= " + dialog.sourceInput.getValue().trim() +
"|firma=~~~~" +
"|senzatitolo= " + ( dialog.noTitleInput.getValue() ? 'y' : '' ) +
"|conferma= <!-- Parametro riservato a chi verifica la segnalazione-->}}";
return { text: newText, summary: '' };
}
},
'Wikipedia:Richieste_di_protezione_pagina': {
reqPage: 'Wikipedia:Richieste di protezione pagina',
buttonID: 'btn-richiesta-protezione',
dialogTitle: 'Aggiungi una nuova richiesta',
successMsg: 'Richiesta inserita correttamente',
buildForm: function ( dialog ) {
dialog.reqTypeInput = new OO.ui.RadioSelectInputWidget( {
options: [
{ data: 'protect', label: 'Protezione' },
{ data: 'unprotect', label: 'Rimozione della protezione' }
]
} );
dialog.reqTypeField = new OO.ui.FieldLayout(
dialog.reqTypeInput,
{
label: 'Tipo di richiesta',
align: 'top'
}
);
dialog.pageInput = new mw.widgets.TitleInputWidget( {
validateTitle: true,
required: true
} );
dialog.pageField = new OO.ui.FieldLayout(
dialog.pageInput,
{
label: 'Pagina',
align: 'top'
}
);
dialog.detailsInput = new OO.ui.MultilineTextInputWidget( {
required: true,
rows: 5,
classes: [ 'requests-wizard-textarea-resize-vertical' ]
} );
dialog.detailsField = new OO.ui.FieldLayout(
dialog.detailsInput,
{
label: 'Spiegazione (senza firma)',
align: 'top'
}
);
dialog.setFields( [ dialog.reqTypeField, dialog.pageField, dialog.detailsField ] );
},
getSubmitData: function ( dialog ) {
var page = dialog.pageInput.getValue();
var newText = '{{Richiesta protezione';
if ( dialog.reqTypeInput.getValue() === 'unprotect' ) {
newText += '|Sprotezione = sì';
}
newText += '|NomePagina = ' + page + '}} ' +
dialog.detailsInput.getValue().trim() + ' --~~~~';
return { text: newText, summary: page };
}
},
'Aiuto:Sportello_informazioni': {
reqPage: 'Aiuto:Sportello informazioni',
buttonID: 'btn-richiesta-informazioni',
dialogTitle: 'Chiedi informazioni',
successMsg: 'Richiesta inserita correttamente',
buildForm: function ( dialog ) {
dialog.titleInput = new OO.ui.TextInputWidget( {
required: true
} );
dialog.titleField = new OO.ui.FieldLayout(
dialog.titleInput,
{
label: 'Titolo della richiesta',
align: 'top'
}
);
dialog.detailsInput = new OO.ui.MultilineTextInputWidget( {
required: true,
rows: 10,
classes: [ 'requests-wizard-textarea-resize-vertical' ]
} );
dialog.detailsField = new OO.ui.FieldLayout(
dialog.detailsInput,
{
label: 'Richiesta (senza firma)',
align: 'top'
}
);
dialog.setFields( [ dialog.titleField, dialog.detailsField ] );
},
getSubmitData: function ( dialog ) {
var title = dialog.titleInput.getValue(),
details = dialog.detailsInput.getValue();
return { text: details.trim() + ' --~~~~', summary: title };
}
},
};
module.exports = config;
/* </nowiki> */