# HG changeset patch # User Michiel Broek # Date 1549054849 -3600 # Node ID 8edca0488e65016c5ff2e695622a94eddea6cc0b # Parent cfd87d51a33c2d86c0700e799305d06745bf3515 Finished the water treatment in the recipes editor. It seems that the recipes editor is ready. diff -r cfd87d51a33c -r 8edca0488e65 www/import/from_brouwhulp.php --- a/www/import/from_brouwhulp.php Fri Feb 01 19:41:46 2019 +0100 +++ b/www/import/from_brouwhulp.php Fri Feb 01 22:00:49 2019 +0100 @@ -1225,6 +1225,7 @@ if ($recipe->VOLUME_HLT) { $sql .= "', sparge_volume='" . floatval($recipe->VOLUME_HLT); } + $sql .= "', sparge_source='0"; /* * Put the fermentables in a json array @@ -1412,6 +1413,7 @@ if ($recipe->VOLUME_HLT) { $sql .= "', sparge_volume='" . floatval($recipe->VOLUME_HLT); } + $sql .= "', sparge_source='0"; /* * Put the fermentables in a json array diff -r cfd87d51a33c -r 8edca0488e65 www/js/global.js --- a/www/js/global.js Fri Feb 01 19:41:46 2019 +0100 +++ b/www/js/global.js Fri Feb 01 22:00:49 2019 +0100 @@ -375,6 +375,12 @@ { id: 1, en: 'Source 2', nl: 'Bron 2' }, { id: 2, en: 'Mixed', nl: 'Gemengd' } ]; +var SpargeSourceSource = { + localdata: SpargeSourceData, + datatype: "array", + datafields: [{ name: 'id' }, { name: 'en' }, { name: 'nl' }] +}; +var SpargeSourceAdapter = new $.jqx.dataAdapter(SpargeSourceSource); // options for editors diff -r cfd87d51a33c -r 8edca0488e65 www/js/rec_edit.js --- a/www/js/rec_edit.js Fri Feb 01 19:41:46 2019 +0100 +++ b/www/js/rec_edit.js Fri Feb 01 22:00:49 2019 +0100 @@ -604,17 +604,24 @@ chloride += 1000 * RA / liters; // Einde noot. - if ($("#wa_acid_name").val() == "") { - $("#wa_acid_name").val('Melkzuur'); - last_acid = 'Melkzuur'; + if ($("#wa_acid_name").val() < 0 || $("#wa_acid_name").val() > 3) { + console.log("fix wa_acid_name"); + $("#wa_acid_name").val(0); + dataRecord.wa_acid_name = 0; } - if ($("#wa_base_name").val() == "") { - $("#wa_base_name").val('NaHCO3'); - last_base = 'NaHCO3'; + if (last_acid == '') + last_acid = AcidTypeData[$("#wa_acid_name").val()].nl; + + if ($("#wa_base_name").val() < 0 || $("#wa_base_name").val() > 3) { + console.log("fix wa_base_name"); + $("#wa_base_name").val(0); + dataRecord.wa_base_name = 0; } + if (last_base == '') + last_base = BaseTypeData[$("#wa_base_name").val()].nl; var AT = dataRecord.wa_acid_name; // parseFloat($("#wa_acid_name").jqxNumberInput('decimal')); - var BT = parseFloat($("#wa_base_name").jqxNumberInput('decimal')); + var BT = dataRecord.wa_base_name; //parseFloat($("#wa_base_name").jqxNumberInput('decimal')); var result = GetAcidSpecs(AT); var pK1 = result.pK1; @@ -642,7 +649,7 @@ Acid = Acid * AcidPrc / (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) / 100); // ml console.log("Final ml: "+Acid); $("#wa_acid").val(Math.round(Acid * 100) / 100); - setWaterAgent(AT, Math.round(Acid * 100) / 100); + setWaterAgent(AcidTypeData[AT].nl, Math.round(Acid * 100) / 100); bicarbonate = bicarbonate - protonDeficit * frac / liters; total_alkalinity = bicarbonate * 50 / 61; @@ -658,7 +665,7 @@ case 0: RA = -protonDeficit / (f1d - f3d); //Sodiumbicarbonate, mmol totaal RA = RA * MMNaHCO3/1000; //gram $("#wa_base").val(Math.round(RA * 100) / 100); - setWaterAgent(BT, Math.round(RA * 100) / 100); + setWaterAgent('NaHCO3', Math.round(RA * 100) / 100); if (liters > 0) { // Na RA = parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMNa / MMNaCl + @@ -676,7 +683,7 @@ case 1: RA = -protonDeficit / (2 * f1d + f2d); // Sodiumcarbonate, mmol totaal RA = RA * MMNa2CO3/1000; //gram $("#wa_base").val(Math.round(RA * 100) / 100); - setWaterAgent(BT, Math.round(RA * 100) / 100); + setWaterAgent('Na2CO3', Math.round(RA * 100) / 100); if (liters > 0) { RA = parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMNa / MMNaCl + parseFloat($("#wa_base").jqxNumberInput('decimal')) * 2 * MMNa / MMNa2CO3; @@ -695,7 +702,7 @@ //but only 1/3 is effective, so add 3 times as much RA = 3 * RA; $("#wa_base").val(Math.round(RA * 100) / 100); - setWaterAgent(BT, Math.round(RA * 100) / 100); + setWaterAgent('CaCO3', Math.round(RA * 100) / 100); if (liters > 0) { //Bicarbonate RA = parseFloat($("#wa_base").jqxNumberInput('decimal')) / 3 * MMHCO3 / MMCaCO3; @@ -713,7 +720,7 @@ break; case 3: RA = -protonDeficit / 19.3; // Calciumhydroxide $("#wa_base").val(Math.round(RA * 100) / 100); - setWaterAgent(BT, Math.round(RA * 100) / 100); + setWaterAgent('Ca(OH)2', Math.round(RA * 100) / 100); if (liters > 0) { // Bicarbonate RA = -protonDeficit / liters; @@ -830,7 +837,7 @@ } else if ((AT == 1) && (liters > 0)) { // Hydrochloric, Zoutzuur RA = parseFloat($("#wa_cacl2").jqxNumberInput('decimal')) * MMCl / MMCaCl2 + parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMCl / MMNaCl + - Acidmg / 1000 * MMCl / (MMCL + 1); + Acidmg / 1000 * MMCl / (MMCl + 1); RA = 1000 * RA / liters; chloride = wg_chloride + RA; } @@ -899,21 +906,21 @@ var Source_pH = dataRecord.w1_ph; var Source_alkalinity = dataRecord.w1_total_alkalinity; // Select watersource or fallback to the first source. - if (dataRecord.sparge_source == 'Bron 2') { + if (dataRecord.sparge_source == 1) { // Source 2 if (dataRecord.w2_ph > 0.0) { Source_pH = dataRecord.w2_ph; Source_alkalinity = dataRecord.w2_total_alkalinity; } else { - dataRecord.sparge_source = 'Bron 1'; - $("#sparge_source").val('Bron 1'); + dataRecord.sparge_source = 0; // Source 1 + $("#sparge_source").val(0); } - } else if (dataRecord.sparge_source == 'Gemengd') { + } else if (dataRecord.sparge_source == 2) { // Mixed if (dataRecord.w2_ph > 0.0) { Source_pH = parseFloat($("#wg_ph").jqxNumberInput('decimal')); Source_alkalinity = parseFloat($("#wg_total_alkalinity").jqxNumberInput('decimal')); } else { - dataRecord.sparge_source = 'Bron 1'; - $("#sparge_source").val('Bron 1'); + dataRecord.sparge_source = 0; + $("#sparge_source").val(0); } } @@ -950,10 +957,9 @@ //Step 6. Use these to compute the milliequivalents acid required per liter (mEq/L) var Acid = alkalinity * ((f1g-f1)+(f3-f3g)) + Math.pow(10, -TargetpH) - Math.pow(10, -Source_pH); //mEq/l - - if ($("#sparge_acid_type").val() == NaN) { + if (dataRecord.sparge_acid_type < 0 || dataRecord.sparge_acid_type > 3) { + dataRecord.sparge_acid_type = 0; $("#sparge_acid_type").val(0); - dataRecord.sparge_acid_type = 0; } var AT = dataRecord.sparge_acid_type; var result = GetAcidSpecs(AT); @@ -1076,23 +1082,35 @@ calcWater(); }); $('#wa_base_name').on('change', function (event) { - setWaterAgent(last_base, 0); - last_base = event.args.item.value; - setWaterAgent(last_base, parseFloat($("#wa_base").jqxNumberInput('decimal'))); - calcWater(); + if (event.args) { + var index = event.args.index; + console.log("wa_base_name "+index); + setWaterAgent(last_base, 0); + last_base = BaseTypeData[index].nl; + setWaterAgent(last_base, parseFloat($("#wa_base").jqxNumberInput('decimal'))); + dataRecord.wa_base_name = index; + calcWater(); + } }); $('#wa_base').on('change', function (event) { - setWaterAgent($("#wa_base_name").val(), parseFloat(event.args.value)); + var name = BaseTypeData[$("#wa_base_name").val()].nl; + setWaterAgent(name, parseFloat(event.args.value)); calcWater(); }); $('#wa_acid_name').on('change', function (event) { - setWaterAgent(last_acid, 0); - last_acid = event.args.item.value; - setWaterAgent(last_acid, parseFloat($("#wa_acid").jqxNumberInput('decimal'))); - calcWater(); + if (event.args) { + var index = event.args.index; + console.log("wa_acid_name "+index); + setWaterAgent(last_acid, 0); + last_acid = AcidTypeData[index].nl; + setWaterAgent(last_acid, parseFloat($("#wa_acid").jqxNumberInput('decimal'))); + dataRecord.wa_acid_name = index; + calcWater(); + } }); $('#wa_acid').on('change', function (event) { - setWaterAgent($("#wa_acid_name").val(), parseFloat(event.args.value)); + var name = AcidTypeData[$("#wa_acid_name").val()].nl; + setWaterAgent(name, parseFloat(event.args.value)); calcWater(); }); $('#wa_acid_perc').on('change', function (event) { calcWater(); }); @@ -1167,13 +1185,19 @@ calcSparge(); }); $('#sparge_source').on('change', function (event) { - dataRecord.sparge_source= event.args.item.value; - calcSparge(); + if (event.args) { + var index = event.args.index; + dataRecord.sparge_source= index; + calcSparge(); + } }); $('#sparge_acid_type').on('change', function (event) { - dataRecord.sparge_acid_type = event.args.item.value; - console.log("new sparge_acid_type: "+dataRecord.sparge_acid_type); - calcSparge(); + if (event.args) { + var index = event.args.index; + dataRecord.sparge_acid_type = index; + console.log("new sparge_acid_type: "+dataRecord.sparge_acid_type); + calcSparge(); + } }); $('#sparge_acid_perc').on('change', function (event) { dataRecord.sparge_acid_perc = parseFloat(event.args.value); @@ -1275,7 +1299,7 @@ { name: 'sparge_temp', type: 'float' }, { name: 'sparge_ph', type: 'float' }, { name: 'sparge_volume', type: 'float' }, - { name: 'sparge_source', type: 'string' }, + { name: 'sparge_source', type: 'int' }, { name: 'sparge_acid_type', type: 'int' }, { name: 'sparge_acid_perc', type: 'float' }, { name: 'sparge_acid_amount', type: 'float' }, @@ -1857,49 +1881,49 @@ data.push(row); // Initial set water agent values. switch (row.m_name) { - case 'CaCl2': $("#wa_cacl2").val(row.m_weight); + case 'CaCl2': $("#wa_cacl2").val(row.m_amount * 1000); break; - case 'CaSO4': $("#wa_caso4").val(row.m_weight); + case 'CaSO4': $("#wa_caso4").val(row.m_amount * 1000); break; - case 'MgSO4': $("#wa_mgso4").val(row.m_weight); + case 'MgSO4': $("#wa_mgso4").val(row.m_amount * 1000); break; - case 'NaCl': $("#wa_nacl").val(row.m_weight); + case 'NaCl': $("#wa_nacl").val(row.m_amount * 1000); break; case 'Melkzuur': $("#wa_acid_name").val(0); - $("#wa_acid").val(row.m_weight); + $("#wa_acid").val(row.m_amount * 1000); $("#wa_acid_perc").val(80); - last_acid = 0; + last_acid = 'Melkzuur'; break; case 'Zoutzuur': $("#wa_acid_name").val(1); - $("#wa_acid").val(row.m_weight); + $("#wa_acid").val(row.m_amount * 1000); $("#wa_acid_perc").val(80); - last_acid = 1; + last_acid = 'Zoutzuur'; break; case 'Fosforzuur': $("#wa_acid_name").val(2); - $("#wa_acid").val(row.m_weight); + $("#wa_acid").val(row.m_amount * 1000); $("#wa_acid_perc").val(80); - last_acid = 2; + last_acid = 'Fosforzuur'; break; case 'Zwavelzuur': $("#wa_acid_name").val(3); - $("#wa_acid").val(row.m_weight); + $("#wa_acid").val(row.m_amount * 1000); $("#wa_acid_perc").val(80); - last_acid = 3; + last_acid = 'Zwavelzuur'; break; case 'NaHCO3': $("#wa_base_name").val(0); - $("#wa_base").val(row.m_weight); - last_base = 0; + $("#wa_base").val(row.m_amount * 1000); + last_base = 'NaHCO3'; break; case 'Na2CO3': $("#wa_base_name").val(1); - $("#wa_base").val(row.m_weight); - last_base = 1; + $("#wa_base").val(row.m_amount * 1000); + last_base = 'Na2CO3'; break; case 'CaCO3': $("#wa_base_name").val(2); - $("#wa_base").val(row.m_weight); - last_base = 2; + $("#wa_base").val(row.m_amount * 1000); + last_base = 'CaCO3'; break; case 'Ca(OH)2': $("#wa_base_name").val(3); - $("#wa_base").val(row.m_weight); - last_base = 3; + $("#wa_base").val(row.m_amount * 1000); + last_base = 'Ca(OH)2'; break; } } @@ -3254,13 +3278,13 @@ // Water agents $("#wa_cacl2").jqxTooltip({ content: 'Voor het maken van een ander waterprofiel. Voegt calcium en chloride toe. Voor het verbeteren van zoetere bieren.'}); - $("#wa_cacl2").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 0, max: 1000, decimalDigits: 1, spinButtons: true, spinButtonsStep: 0.1, symbol: ' gr', symbolPosition: 'right' }); + $("#wa_cacl2").jqxNumberInput( Spin1dec1 ); $("#wa_caso4").jqxTooltip({ content: 'Gips. Voor het maken van een ander waterprofiel. Voegt calcium en sulfaat toe. Voor het verbeteren van bittere bieren.'}); - $("#wa_caso4").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 0, max: 1000, decimalDigits: 1, spinButtons: true, spinButtonsStep: 0.1, symbol: ' gr', symbolPosition: 'right' }); + $("#wa_caso4").jqxNumberInput( Spin1dec1 ); $("#wa_mgso4").jqxTooltip({ content: 'Epsom zout. Voor het maken van een ander waterprofiel. Voegt magnesium en sulfaat toe. Gebruik spaarzaam!'}); - $("#wa_mgso4").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 0, max: 1000, decimalDigits: 1, spinButtons: true, spinButtonsStep: 0.1, symbol: ' gr', symbolPosition: 'right' }); + $("#wa_mgso4").jqxNumberInput( Spin1dec1 ); $("#wa_nacl").jqxTooltip({ content: 'Keukenzout. Voor het maken van een ander waterprofiel. Voegt natrium en chloride toe. Voor het accentueren van zoetheid. Bij hoge dosering wordt het bier ziltig.'}); - $("#wa_nacl").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 0, max: 1000, decimalDigits: 1, spinButtons: true, spinButtonsStep: 0.1, symbol: ' gr', symbolPosition: 'right' }); + $("#wa_nacl").jqxNumberInput( Spin1dec1 ); $("#mash_ph").jqxTooltip({ content: 'Maisch pH tussen 5.2 en 5.6. Gebruik 5.2 voor lichte en 5.5 voor donkere bieren.'}); $("#mash_ph").jqxNumberInput( SpinpH ); $("#calc_acid").jqxCheckBox({ theme: theme, width: 120, height: 23 }); @@ -3269,30 +3293,51 @@ source: BaseTypeAdapter, valueMember: 'id', displayMember: 'nl', - width: 180, + width: 170, height: 23, autoDropDownHeight: true }); - $("#wa_base").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 0, decimalDigits: 2, spinButtons: true, spinButtonsStep: 0.05, symbol: ' gr', symbolPosition: 'right' }); + $("#wa_base").jqxNumberInput( Spin2dec5 ); + $("#wa_base").jqxNumberInput({ symbol: ' gr', symbolPosition: 'right' }); $("#wa_acid_name").jqxDropDownList({ theme: theme, source: AcidTypeAdapter, valueMember: 'id', displayMember: 'nl', - width: 180, + width: 170, height: 23, autoDropDownHeight: true }); - $("#wa_acid").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 0, decimalDigits: 2, spinButtons: true, spinButtonsStep: 0.05, symbol: ' ml', symbolPosition: 'right' }); - $("#wa_acid_perc").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 80, height: 23, min: 0, max: 100, decimalDigits: 0, spinButtons: true, symbol: '%', symbolPosition: 'right' }); + $("#wa_acid").jqxNumberInput( Spin2dec5 ); + $("#wa_acid").jqxNumberInput({ symbol: ' ml', symbolPosition: 'right' }); + $("#wa_acid_perc").jqxNumberInput( Perc0 ); + $("#wa_acid_perc").jqxNumberInput({ width: 70, symbol: '%', symbolPosition: 'right' }); // Sparge water - $("#sparge_temp").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 70, max: 98, decimalDigits: 1, spinButtons: true, spinButtonsStep: 0.5 }); - $("#sparge_volume").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, decimalDigits: 1, spinButtons: true, spinButtonsStep: 0.1 }); - $("#sparge_ph").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, min: 4.5, max: 6.5, decimalDigits: 1, spinButtons: true, spinButtonsStep: 0.1 }); - $("#sparge_source").jqxDropDownList({ theme: theme, source: srcSource, width: 100, height: 23, dropDownHeight: 95 }); - $("#sparge_acid_amount").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 100, height: 23, decimalDigits: 2, readOnly: true, symbol: ' ml', symbolPosition: 'right' }); - $("#sparge_acid_type").jqxDropDownList({ theme: theme, source: srcAcid, width: 100, height: 23, dropDownHeight: 128 }); - $("#sparge_acid_perc").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 100, height: 23, spinButtons: true, decimalDigits: 0, symbol: '%', symbolPosition: 'right' }); + $("#sparge_temp").jqxNumberInput( Spin1dec5 ); + $("#sparge_volume").jqxNumberInput( Spin1dec5 ); + $("#sparge_ph").jqxNumberInput( SpinpH ); + $("#sparge_source").jqxDropDownList({ + theme: theme, + source: SpargeSourceAdapter, + valueMember: 'id', + displayMember: 'nl', + width: 110, + height: 23, + autoDropDownHeight: true + }); + $("#sparge_acid_amount").jqxNumberInput( Spin2dec1 ); + $("#sparge_acid_amount").jqxNumberInput({ spinButtons: false, readOnly: true, symbol: ' ml', symbolPosition: 'right' }); + $("#sparge_acid_type").jqxDropDownList({ + theme: theme, + source: AcidTypeAdapter, + valueMember: 'id', + displayMember: 'nl', + width: 110, + height: 23, + autoDropDownHeight: true + }); + $("#sparge_acid_perc").jqxNumberInput( Perc0 ); + $("#sparge_acid_perc").jqxNumberInput({ symbol: '%', symbolPosition: 'right' }); // Tabs inside the popup window. $('#jqxTabs').jqxTabs({ diff -r cfd87d51a33c -r 8edca0488e65 www/rec_edit.php --- a/www/rec_edit.php Fri Feb 01 19:41:46 2019 +0100 +++ b/www/rec_edit.php Fri Feb 01 22:00:49 2019 +0100 @@ -284,23 +284,23 @@ - Calciumchloride (CaCl2): + Calciumchloride (CaCl2) gr:
Maish pH:
- Spoelwater volume: + Spoelwater liters:
- Gips (CaSO4): + Gips (CaSO4) gr:
pH Automatisch:
- Spoelwater temp: + Spoelwater °C:
- Epsom zout (MgSO4): + Epsom zout (MgSO4) gr:
Ontzuren met:
@@ -308,7 +308,7 @@
- Keukenzout (NaCl): + Keukenzout (NaCl) gr:
Aanzuren met:
@@ -322,12 +322,12 @@ - Percentage: + Sterkte %:
- Hoeveelheid: + Benodigd: