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%">'
+ ' '
+ 'Quantità: <input class="mw-ui-input IngredienteQ" name="NuovaQuantita00" id="NuovaQuantita00" size="6" maxlength="5" value=""> <select id="
+ '<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
*/
|