git-svn-id: https://msi/svn/firstRepo/WebClient/trunk@13 0f545695-f87b-41b6-9a03-7f16563b5454

This commit is contained in:
2014-12-10 14:58:10 +00:00
parent 90e0252f4b
commit 876ee18579
238 changed files with 35068 additions and 0 deletions
+498
View File
@@ -0,0 +1,498 @@
define(['jquery', 'underscore', 'backbone',
'text!modules/converter/converterViewTemplate.html',
'modules/base/baseView'],
function($, _, Backbone, converterViewTemplate, BaseView){
var ConverterView = BaseView.extend({
collection: null,
//initialize template
template:_.template(converterViewTemplate),
initialize: function (options) {
var self = this;
ConverterView.__super__.initialize.call(this);
//this.header.title = "pippo";
},
events: {
"click #calculate": "performCalcBtn",
"change #typeLvStart": "typeLvStartChanged"
},
performCalcBtn: function (e) {
e.preventDefault();
//this.calculateConvert();
this.$el.find("#inputForm").submit();
},
typeLvStartChanged: function(e){
e.preventDefault();
if(this.$el.find("#typeLvStart").val() == "ldbf" ||
this.$el.find("#typeLvStart").val() == "ldbs"){
}
else{
}
},
calculateConvert: function(){
var ret ="";
if(this.$el.find("#typeLvStart").val() == "ldbf" ||
this.$el.find("#typeLvStart").val() == "ldbs"){
this.$el.find("#qtaLvlAlt").val(this.impostaPmConsigliata());
ret += this.convertiLDB();
}
else{
this.$el.find("#qtaLvlAlt").val(this.impostaPmConsigliata());
ret += this.convertiPM();
}
this.$el.find('#result')[0].innerHTML = ret.replace(/<br>/g, "<br><br>");
this.$el.find('#popupConvertResult').popup("open");
},
convertiPM: function(){
// dichiaro e inizializzo la variabile che conterrà il risultato dell'elaborazione
var risultato = "";
// imposto come fissa al 50% l'idratazione della PM solida
var VidratazionePmSolida = 50;
// ottengo i valori scelti dall'utente
var vTipoPmPartenza = this.$el.find("#typeLvStart").val();
var vTipoPmFinale = "";
var vIdratazionePmFinale = 0;
var vIdratazionePmPartenza = 50; //parseInt(this.$el.find("#qtaLiquidi").val());
if(this.$el.find("#typeLvStart").val() == "lic100" )
vIdratazionePmPartenza = 100;
else if(this.$el.find("#typeLvStart").val() == "lic130" )
vIdratazionePmPartenza = 130;
var vQuantitaPmPartenza = parseInt(this.$el.find("#qtaLvStart").val());
var vQuantitaFarinaPartenza = parseInt(this.$el.find("#qtaFarina").val());
var vQuantitaAcquaPartenza = parseInt(this.$el.find("#qtaLiquidi").val());
var vQuantitaPmFinale = parseInt(this.$el.find("#qtaLvlAlt").val());
// Imposto di il tipo di PM finale in funzione di quello scelto come partenza
// e visualizzo o nascondo di conseguenza la select per l'idratazione
switch (this.$el.find("#typeLvDest").val()){
case "pm":
vTipoPmFinale = "SOLIDA";
vIdratazionePmFinale = 50;
break;
case "lic100":
vTipoPmFinale = "LIQUIDA";
vIdratazionePmFinale = 100;
break;
case "lic130":
vTipoPmFinale = "LIQUIDA";
vIdratazionePmFinale = 130;
break;
default:
vTipoPmFinale = "";
}
// elaborazione per PM finale SOLIDA
if (vTipoPmFinale == "SOLIDA") {
// quanta acqua c'è nella PM liquida di partenza?
var qAcquaPmPartenza = (vQuantitaPmPartenza / (100 + vIdratazionePmPartenza)) * vIdratazionePmPartenza;
qAcquaPmPartenza = qAcquaPmPartenza.toFixed(0);
// quanta farina c'è nella PM liquida di partenza?
var qFarinaPmPartenza = vQuantitaPmPartenza - qAcquaPmPartenza;
// quanta acqua c'è nella PM finale?
var qAcquaPmFinale = (vQuantitaPmFinale / (100 + VidratazionePmSolida)) * VidratazionePmSolida
qAcquaPmFinale = qAcquaPmFinale.toFixed(0);
// quanta farina c'è nella PM finale?
var qFarinaPmFinale = vQuantitaPmFinale - qAcquaPmFinale;
// come devo modificare l'acqua prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra l'acqua della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaAcquaPM = qAcquaPmPartenza - qAcquaPmFinale;
// ...e la aggiungo/tolgo all'acqua dell'impasto della ricetta originale
var qAcquaImpastoFinale = vQuantitaAcquaPartenza;
// se il delta acqua è negativo lo tolgo
// altrimenti lo aggiungo
if (deltaAcquaPM < 0) {
qAcquaImpastoFinale -= deltaAcquaPM;
}
else {
qAcquaImpastoFinale += deltaAcquaPM;
}
// come devo modificare la farina prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra la farina della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaFarinaPM = qFarinaPmPartenza - qFarinaPmFinale;
// ...e la aggiungo/tolgo alla farina dell'impasto della ricetta originale
var qFarinaImpastoFinale = vQuantitaFarinaPartenza;
// se il delta farina è negativo lo aggiungo
// altrimenti lo tolgo
if (deltaFarinaPM < 0) {
qFarinaImpastoFinale += deltaFarinaPM;
}
else {
qFarinaImpastoFinale -= deltaFarinaPM;
}
risultato += "PM solida gr " + vQuantitaPmFinale.toString();
risultato += "<br>";
risultato += "Farina gr " + qFarinaImpastoFinale.toString();
risultato += "<br>";
risultato += "Acqua gr " + qAcquaImpastoFinale.toString();
}
// elaborazione per PM finale LIQUIDA
if (vTipoPmFinale == "LIQUIDA"){
// CASO PM LIQUIDA FINALE AL 100%
// quanta acqua c'è nella PM solida iniziale?
var qAcquaPmPartenza = (vQuantitaPmPartenza / (100 + VidratazionePmSolida)) * VidratazionePmSolida
qAcquaPmPartenza = qAcquaPmPartenza.toFixed(0);
// quanta farina c'è nella PM solida iniziale?
var qFarinaPmPartenza = vQuantitaPmPartenza - qAcquaPmPartenza;
// quanta acqua c'è nella PM finale?
var qAcquaPmFinale = (vQuantitaPmFinale / (100 + 100)) * 100;
qAcquaPmFinale = qAcquaPmFinale.toFixed(0);
// quanta farina c'è nella PM finale?
var qFarinaPmFinale = vQuantitaPmFinale - qAcquaPmFinale;
// come devo modificare l'acqua prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra l'acqua della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaAcquaPM = qAcquaPmPartenza - qAcquaPmFinale;
// ...e la aggiungo/tolgo all'acqua dell'impasto della ricetta originale
var qAcquaImpastoFinale = vQuantitaAcquaPartenza;
// se il delta acqua è negativo lo aggiungo
// altrimenti lo tolgo
if (deltaAcquaPM < 0){
qAcquaImpastoFinale += deltaAcquaPM;
}
else{
qAcquaImpastoFinale -= deltaAcquaPM;
}
// come devo modificare la farina prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra la farina della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaFarinaPM = qFarinaPmPartenza - qFarinaPmFinale;
// ...e la aggiungo/tolgo alla farina dell'impasto della ricetta originale
var qFarinaImpastoFinale = vQuantitaFarinaPartenza;
// se il delta farina è negativo lo aggiungo
// altrimenti lo tolgo
if (deltaFarinaPM < 0){
qFarinaImpastoFinale -= deltaFarinaPM;
}
else{
qFarinaImpastoFinale += deltaFarinaPM;
}
if(vIdratazionePmFinale == 100) {
risultato += "PM liquida 100% gr " + vQuantitaPmFinale.toString();
risultato += "<br>";
risultato += "Farina gr " + qFarinaImpastoFinale.toString();
risultato += "<br>";
risultato += "Acqua gr " + qAcquaImpastoFinale.toString();
}
else {
// CASO PM LIQUIDA FINALE AL 130%
// quanta acqua c'è nella PM solida iniziale?
var qAcquaPmPartenza = (vQuantitaPmPartenza / (100 + VidratazionePmSolida)) * VidratazionePmSolida
qAcquaPmPartenza = qAcquaPmPartenza.toFixed(0);
// quanta farina c'è nella PM solida iniziale?
var qFarinaPmPartenza = vQuantitaPmPartenza - qAcquaPmPartenza;
// quanta acqua c'è nella PM finale?
var qAcquaPmFinale = (vQuantitaPmFinale / (100 + 130)) * 130;
qAcquaPmFinale = qAcquaPmFinale.toFixed(0);
// quanta farina c'è nella PM finale?
var qFarinaPmFinale = vQuantitaPmFinale - qAcquaPmFinale;
// come devo modificare l'acqua prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra l'acqua della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaAcquaPM = qAcquaPmPartenza - qAcquaPmFinale;
// ...e la aggiungo/tolgo all'acqua dell'impasto della ricetta originale
var qAcquaImpastoFinale = vQuantitaAcquaPartenza;
// se il delta acqua è negativo lo aggiungo
// altrimenti lo tolgo
if (deltaAcquaPM < 0) {
qAcquaImpastoFinale += deltaAcquaPM;
}
else {
qAcquaImpastoFinale -= deltaAcquaPM;
}
// come devo modificare la farina prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra la farina della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaFarinaPM = qFarinaPmPartenza - qFarinaPmFinale;
// ...e la aggiungo/tolgo alla farina dell'impasto della ricetta originale
var qFarinaImpastoFinale = vQuantitaFarinaPartenza;
// se il delta farina è negativo lo aggiungo
// altrimenti lo tolgo
if (deltaFarinaPM < 0) {
qFarinaImpastoFinale -= deltaFarinaPM;
}
else {
qFarinaImpastoFinale += deltaFarinaPM;
}
risultato += "PM liquida 130% gr " + vQuantitaPmFinale.toString();
risultato += "<br>";
risultato += "Farina gr " + qFarinaImpastoFinale.toString();
risultato += "<br>";
risultato += "Acqua gr " + qAcquaImpastoFinale.toString();
}
}
return risultato;
},
convertiLDB: function(){
// dichiaro e inizializzo la variabile che conterrà il risultato dell'elaborazione
var risultato = "";
// dichiaro e inizializzo la variabile che conterrà la quantità di farina da usare
var vQuantitaFarinaDaUsare = 0;
// dichiaro e inizializzo la variabile che conterrà la quantità di acqua da usare
var vQuantitaAcquaDaUsare = 0;
// dichiaro e inizializzo la variabile per la quantità di farina presente nella PM da usare
var qFarinaPmDaUsare = 0;
// dichiaro e inizializzo la variabile per la quantità di acqua presente nella PM da usare
var qAcquaPmDaUsare = 0;
// ricavo la quantità di LDB della ricetta originale
var vQuantitaLdbPartenza = parseInt(this.$el.find("#qtaLvStart").val());
// ricavo l'idratazione della PM da usare
var vIdratazionePmFinale = 50;
if(this.$el.find("#typeLvDest").val() == "lic100" )
vIdratazionePmFinale = 100;
else if(this.$el.find("#typeLvDest").val() == "lic130" )
vIdratazionePmFinale = 130;
// ricavo la quantità di farina della ricetta originale
var vQuantitaFarinaPartenza = parseInt(this.$el.find("#qtaFarina").val());
// ricavo la quantità di acqua della ricetta originale
var vQuantitaAcquaPartenza = parseInt(this.$el.find("#qtaLiquidi").val());
// ricavo la quantità di PM da usare
var vQuantitaPmDaUsare = parseInt(this.$el.find("#qtaLvlAlt").val());
// quanta acqua c'è nella PM da usare?
var qAcquaPmDaUsare = (vQuantitaPmDaUsare / (100 + vIdratazionePmFinale)) * vIdratazionePmFinale;
qAcquaPmDaUsare = qAcquaPmDaUsare.toFixed(0);
// ricavo la quantità di farina presente nella PM da usare
qFarinaPmDaUsare = vQuantitaPmDaUsare - qAcquaPmDaUsare;
// diminuisco la farina della ricetta originale di una quantità pari a quella presente nella PM da usare
vQuantitaFarinaDaUsare = vQuantitaFarinaPartenza - qFarinaPmDaUsare;
// diminuisco l'acqua della ricetta originale di una quantità pari a quella presente nella PM da usare
vQuantitaAcquaDaUsare = vQuantitaAcquaPartenza - qAcquaPmDaUsare;
// costruisco la stringa del risultato
risultato += "PM gr " + vQuantitaPmDaUsare.toString();
risultato += "<br>";
risultato += "Farina gr " + vQuantitaFarinaDaUsare.toString();
risultato += "<br>";
risultato += "Acqua gr " + vQuantitaAcquaDaUsare.toString();
return risultato;
},
impostaPmConsigliata: function(){
var dummy = "";
// dichiaro e inizializzo la variabile per la quantità consigliata di pasta madre
var vQuantitaPmConsigliata = 0;
if(this.$el.find("#typeLvStart").val() == "pm")
{
vQuantitaPmConsigliata = ((parseInt(this.$el.find("#qtaLvStart").val()) / 3) * 2);
}
else if(this.$el.find("#typeLvStart").val() == "lic100" ||
this.$el.find("#typeLvStart").val() == "lic130")
{
vQuantitaPmConsigliata = ((parseInt(this.$el.find("#qtaLvStart").val()) / 2) * 3);
}
else {
// dichiaro e inizializzo la variabile per la quantità di lievito di birra
var vQuantitaLdbPartenza = 0;
// dichiaro e inizializzo la variabile per il tipo di lievito di birra
var vTipoLdbPartenza = "";
// dichiaro e inizializzo la variabile per la quantità consigliata di pasta madre massima ammessa
var vQuantitaPmConsigliataMax = 0;
// imposto il rapporto percentuale di default PM solida/Farina... ma è solo orientativo
var rapportoPmSolidaFarina = 25;
// imposto il rapporto percentuale di default PM liquida 100%/Farina... ma è solo orientativo
var rapportoPm100Farina = 16.5;
// imposto il rapporto percentuale di default PM liquida 100%/Farina... ma è solo orientativo
var rapportoPm130Farina = 16.5;
// ricavo la quantità di farina della ricetta originale
var vQuantitaFarinaPartenza = parseInt(this.$el.find('#qtaFarina').val());
// ricavo l'idratazione della PM da usare
var vIdratazionePmFinale = 0;
switch (this.$el.find("#typeLvDest").val()) {
case "pm":
vTipoPmFinale = "SOLIDA";
vIdratazionePmFinale = 50;
break;
case "lic100":
vTipoPmFinale = "LIQUIDA";
vIdratazionePmFinale = 100;
break;
case "lic130":
vTipoPmFinale = "LIQUIDA";
vIdratazionePmFinale = 130;
break;
default:
vTipoPmFinale = "";
}
// altrimenti faccio il rapporto partendo dalla quantità del lievito di birra
// ricavo la quantità di lievito di birra
vQuantitaLdbPartenza = parseInt(this.$el.find('#qtaLvStart').val());
// ricavo il tipo di lievito di birra
vTipoLdbPartenza = this.$el.find("#typeLvStart").val();
if (!isNaN(vQuantitaLdbPartenza)) {
if (vQuantitaLdbPartenza > 0) {
if (vTipoLdbPartenza == "ldbs") {
// 6 ldb = 240 PM
vQuantitaPmConsigliata = (240 / 6) * vQuantitaLdbPartenza;
}
else {
// 15 ldb = 240 PM
vQuantitaPmConsigliata = (240 / 15) * vQuantitaLdbPartenza;
}
// SE IL RISULTATO OTTENUTO E' IRRAGIONEVOLE LO CORREGGO
switch (this.$el.find('#typeLvDest').val()) {
case "pm":
vQuantitaPmConsigliataMax = (vQuantitaFarinaPartenza / 100) * rapportoPmSolidaFarina;
break;
case "lic100":
vQuantitaPmConsigliataMax = (vQuantitaFarinaPartenza / 100) * rapportoPm100Farina;
break;
case "lic130":
vQuantitaPmConsigliataMax = (vQuantitaFarinaPartenza / 100) * rapportoPm130Farina;
break;
default:
vQuantitaPmConsigliataMax = 0;
}
if (vQuantitaPmConsigliata > vQuantitaPmConsigliataMax) {
vQuantitaPmConsigliata = vQuantitaPmConsigliataMax;
}
}
else {
vQuantitaPmConsigliata = 0;
alert("Impossibile calcolare\nAccertati di aver scritto bene la quantita'\ndi lievito di birra nella ricetta originale.");
}
}
else {
vQuantitaPmConsigliata = 0;
alert("Impossibile calcolare\nAccertati di aver scritto bene la quantita'\ndi lievito di birra nella ricetta originale.");
}
}
return vQuantitaPmConsigliata;
},
//render the content into div of view
render: function(){
//this.header.title = "pippo";
ConverterView.__super__.render.call(this);
//this.el is the root element of Backbone.View. By default, it is a div.
//$el is cached jQuery object for the view's element.
//append the compiled template into view div container
var self = this;
this.$el.append(this.header.$el);
this.$el.append(this.template({ deviceWidth: myManifest.Settings.Device.Width }));
this.$el.append(this.footer.$el);
//this.$el.find("#popupConvertResult").css("max-width", myManifest.Settings.Device.Width + "px" );
jQuery.validator.addMethod("cRequired", $.validator.methods.required,
"Il campo è richiesto, si prega di completarlo");
jQuery.validator.addMethod("requireIf", function(value, element, params) {
if(self.$el.find('#typeLvStart').val() != "ldbf" &&
self.$el.find('#typeLvStart').val() != "ldbs")
{
return value!="";
}
return true;
}, jQuery.validator.format("Il campo è richiesto, si prega di completarlo"));
jQuery.validator.addClassRules("cRequireIf", {
requireIf: true
});
jQuery.validator.addClassRules("cRequired", {
cRequired: true
});
this.$el.find("#inputForm").validate({
submitHandler: function() {
self.calculateConvert();
}
});
this.$el.find("#moreBtn").addClass("ui-btn-active");
//$("#homeBtn").addClass("ui-btn-active");
//return to enable chained calls
return this;
}
});
return ConverterView;
});
@@ -0,0 +1,57 @@
<div data-role="content">
<h1>Convertitore</h1>
<form id="inputForm">
<label for="typeLvStart">Tipo lievito della ricetta originale:</label>
<select name="typeLvStart" id="typeLvStart" data-theme="a" class="cRequired">
<option value="">Selezionare il tipo di lievito</option>
<option value="ldbf">Lievito di Birra Fresco</option>
<option value="ldbs">Lievito di Birra Secco</option>
<option value="pm">PM Solida</option>
<option value="lic100">PM Liquida 100% (Li.Co.Li.)</option>
<option value="lic130">PM Liquida 130% (Li.Co.Li.)</option>
</select>
<br>
<label for="qtaLvStart">Lievito nella ricetta originale:</label>
<input type="number" data-clear-btn="false" name="qtaLvStart" id="qtaLvStart" value="" placeholder="Specificare quantità in grammi" data-theme="a" class="cRequired">
<br>
<label for="typeLvDest">Tipo lievito che si vuole utilizzare:</label>
<select name="typeLvDest" id="typeLvDest" data-theme="a" class="cRequired">
<option value="">Selezionare il tipo di lievito</option>
<option value="pm">PM Solida</option>
<option value="lic100">PM Liquida 100% (Li.Co.Li.)</option>
<option value="lic130">PM Liquida 130% (Li.Co.Li.)</option>
</select>
<br>
<label for="qtaFarina">Farina per l'impasto nella ricetta originale:</label>
<input type="number" data-clear-btn="false" name="qtaFarina" id="qtaFarina" value="" placeholder="Specificare quantità in grammi" data-theme="a" class="cRequired">
<br>
<label for="qtaLiquidi">Liquidi (acqua, latte...) per l'impasto nella ricetta originale:</label>
<input type="number" data-clear-btn="false" name="qtaLiquidi" id="qtaLiquidi" value="" placeholder="Specificare quantità in grammi" data-theme="a" class="cRequired">
<br>
<!-- <label for="qtaLvlAlt">Lievito alternativo rispetto alla ricetta originale che intendi usare:</label>-->
<input type="hidden" data-clear-btn="false" name="qtaLvlAlt" id="qtaLvlAlt" value="" placeholder="Specificare quantità in grammi" data-theme="a" disabled="disabled">
<br>
<button type="submit" id="calculate" class="ui-shadow ui-btn ui-corner-all" data-theme="a">Calcola</button>
</form>
<div data-role="popup" id="popupConvertResult" data-dismissible="false" style="width: 300px;max-width: <%= deviceWidth%>px">
<div data-role="header">
<h1>Conversione</h1>
</div>
<div role="main" class="ui-content">
<h3 class="ui-title" id="result" style="text-align: center;"></h3>
<p style="text-align: center;font-style: italic;"><br><br>IMPORTANTE<br><br>
La quantità consigliata è da ritenersi
<br>
assolutamente indicativa in quanto la scelta
<br>
dovrebbe essere fatta sulla base
<br>
dell'esperienza, del particolare impasto
<br>
e delle condizioni ambientali di temperatura
<br>
e umidità</p>
<a href="" class="ui-btn ui-corner-all ui-shadow ui-btn-b ui-icon-check" data-rel="back">Ok</a>
</div>
</div>
</div>