MediaWiki:Gadget-Ricetta.js: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Intanto salvo così, poi dovrò continuare ma voglio anche evitare di perdere tutto
Versione abbastanza stabile, magari va un po' raffinata…
Riga 30:
+ '<input name="title" type="hidden" value="Speciale:Ricetta" />'
+ '<fieldset><legend>Creazione rapida di una nuova ricetta</legend>'
+ '<h3>Informazioni preliminari </h3>'
+ '<li><b>Nome della ricetta:</b> <input type="text" id="NomeRicetta" name="NomeRicetta size="30"></li>'
+ '<li><b>Breve descrizione:</b> (Descrizione aspetto, indicazione periodo o ricorrenza, ecc…)</li>'
+ '<textarea rows="4" cols="50" id="DescrizioneRicetta" name="DescrizioneRicetta"></textarea>'
+ '<li><b>Per quante persone:</b> <input type="text" id="NumeroPersone" name="NumeroPersone" size="3" maxlength="2"></li>'
+ '<h3>Ingredienti: <button id="addIngrediente" >+</button><p></p> </h3>'
+ '<div id="IngredientiNuovi">'
+ '<div id="IngredientiAggiuntivi">'
+ 'Ingrediente:<span id="ing00"></span> <input class="mw-ui-input Ingrediente" name="NuovoIngrediente00" id="NuovoIngrediente00" size="80%">'
+ '&nbsp;'
+ 'Quantità: <input class="mw-ui-input IngredienteQ" name="NuovaQuantita00" id="NuovaQuantita00" size="6" maxlength="5" value=""> <select id="quantità00Quantita00" name="quantità00Quantita00">'
+ '<optgroup id="Liquidi" name="Liquidi" label="Liquidi">Liquidi</optgroup>'
+ '<option value="ml">millilitri</option>'
Line 63 ⟶ 68:
+ '</div>'
+ '</div>'
+ '\n'
+ '<h3>Consigli:</h3>'
+'<input name="CBConsigli" type="checkbox" value="" id="CBConsigli" style="">Hai dei consigli per questa ricetta?'
+ '<textarea rows="4" cols="50" id="ConsigliRicetta" name="ConsigliRicetta" disabled></textarea>'
+ '\n'
+ '<h3>Categorie:</h3>'
+ '<div id="ElencoCategorie"></div>'
+ '<p></p>'
+ '<input type="submit" value="Genera" name="submit" /><div id="Success"></div>'
+ '</fieldset><div id="results" style="visibility: hidden"></div></form>').ready(function () {
 
Line 86 ⟶ 96:
$(this).attr('name', nome);
}).val('');
//Menù a discesa
$('select', newElement).each(function() {
$(this).attr('id', $(this).attr('id').replace(/00/, id));
var nome = $(this).attr('id');
$(this).attr('name', nome);
}).val('');
$('#addIngrediente').prop('disabled', current_id > 49);
}
Line 108 ⟶ 124:
$('#addPassaggio').prop('disabled', current_idPassaggi > 99);
}
 
 
///Gestione del CB per i consigli
$('input#CBConsigli').change(function(){
if(this.checked){
$( 'textarea#ConsigliRicetta' ).attr('disabled' , false).focus();
}
else{
$( 'textarea#ConsigliRicetta' ).attr('disabled', true);
}
return false;
});
 
// Funzione API per recuperare le categorie delle ricette
 
var api = new mw.Api();
 
Line 200 ⟶ 229:
 
makeList( 'Categoria:Ricette' ).appendTo( '#ElencoCategorie' );
 
//FUNZIONE QUANDO SI PREME IL BOTTONE
$( "input[name=submit]" ).click(function( event ) {
// setto tutte le variabili in modo che recuperino i valori dei campi
// Funzione per scrivere materialmente nelle pagine
function writeInPage(title, content, summary, option, section, success, tags) {
var param = {action: 'edit',
title: title,
summary: summary,
tags: tags,
token: mw.user.tokens.get('editToken'),
format: 'json'
};
param[option || 'text'] = content;
if (section || section === 0)
param.section = section;
$.post(mw.util.wikiScript('api'), param, function() {
if (typeof(success) === 'function')
success();
});
}
var success = '<span style="color:#00A050; font-size:20px">√</span>';
 
// recupera e mette in elenco i valori dei passaggi della ricetta
resPass = $('input.Passaggio').map(function(_, el) {
return $(el).val();
}).get().join(';\n# ');
var resPass = '# '+resPass+'.';
 
// Elenca tutte le categorie da aggiungere
Line 213 ⟶ 267:
var resCat = '{{Categorie della ricetta|'+resCat+'}}';
 
var values = Object.create( null );
$( '#IngredientiNuovi :input' ).serializeArray().forEach( function ( input ) {
values[ input.name ] = input.value;
} );
 
//Funzione per recuperare l'lenco degli ingredienti
var resIngr = $( '#IngredientiNuovi > *' ).map( function ( i ) {
var id = ( i < 50 ? '0' : '' ) + i,
ing = [],
qua = values[ 'NuovaQuantita' + id ];
if ( qua ) {
ing.push( qua );
}
ing.push(
values[ ( 'AltraUnita' + id in values ? 'Altro' : 'Quantita' ) + id ],
'di',
values[ 'NuovoIngrediente' + id ]
);
return ing.join( ' ' );
} ).get().join( ';\n* ' );
resIngr = '* ' + resIngr + '.';
 
//INIZIO VARIABILI DEL TESTO
var NomeRicetta = $("#NomeRicetta").val();
var NumeroPersone = $("#NumeroPersone").val();
var DescrizioneRicetta = $('#DescrizioneRicetta').val();
var ConsigliRicetta = $('#ConsigliRicetta').val();
//Gestione CB per i consigli, se no ce ne sono, non scrive niente
if ($('input#CBConsigli').is(':checked')) { var SezConsigliRicetta = '== Consigli ==\n'+ConsigliRicetta+'\n\n' } else { var SezConsigliRicetta = '' }
 
//Testo da scrivere nelle pagina
var Testo = ''+DescrizioneRicetta+'.'
+'\n'
+'== Ingredienti ==\n'
+'per \'\'\''+NumeroPersone+'\'\'\' persone\n'
+'\n'
+''+resIngr+'\n'
+'\n'
+'== Preparazione ==\n'
+'\n'
+''+resPass+'\n'
+'\n'
+''+resCat+''
mw.loader.using('mediawiki.user', writeInPage("Libro di cucina/Ricette/"+NomeRicetta, ""+Testo+"","[[MediaWiki:Gadget-Ricetta.js|Script]]: Creazione nuova ricetta","text",false, function() {
$('#Success').html(success + ' <a href="/wiki/'+NomeRicetta+' id="PageCreated">La pagina '+NomeRicetta+' è stata crata con successo. </a>')
}, "Ricette (BETA)"));
});
});
}
t
 
/* resPass = elenco di tutti i passaggi della ricetta
resCat = elenco di tutte le categorie da aggiungere
resIng = Elenco di tutti gli ingredienti
*/