95 isModal: true, |
97 isModal: true, |
96 text: "Laden product ...", |
98 text: "Laden product ...", |
97 theme: theme |
99 theme: theme |
98 }); |
100 }); |
99 |
101 |
|
102 /* |
|
103 * All calculations that depend on changes in the fermentables, |
|
104 * volumes and equipments. |
|
105 */ |
100 function calcFermentables() { |
106 function calcFermentables() { |
|
107 |
101 console.log("calcFermentables()"); |
108 console.log("calcFermentables()"); |
102 sugarsf = 0; |
109 sugarsf = 0; // fermentable sugars mash + boil |
103 sugarsm = 0; |
110 sugarsm = 0; // fermentable sugars in mash |
104 psugar = 0; |
111 psugar = 0; |
105 pcara = 0; |
112 pcara = 0; |
106 mashkg = 0; |
113 mashkg = 0; |
107 var colorw = 0; // Colors working |
114 var vol = 0; // Volume sugars after boil |
|
115 var addedS = 0; // Added sugars after boil |
|
116 var addedmass = 0; // Added mass after boil |
|
117 var mvol = 0; // mash volume |
|
118 var colort = 0; // Colors srm * vol totals |
108 var my_100 = false; |
119 var my_100 = false; |
109 |
120 |
110 var rows = $('#fermentableGrid').jqxGrid('getrows'); |
121 if ((rows = $('#mashGrid').jqxGrid('getrows'))) { |
|
122 for (var i = 0; i < rows.length; i++) { |
|
123 var row = rows[i]; |
|
124 if (row.step_type == 0) // Infusion |
|
125 mvol += parseFloat(row.step_infuse_amount); |
|
126 } |
|
127 } |
|
128 |
|
129 if (!(rows = $('#fermentableGrid').jqxGrid('getrows'))) { |
|
130 return; // grid not yet loaded. |
|
131 } |
|
132 |
|
133 var s = 0; |
111 for (var i = 0; i < rows.length; i++) { |
134 for (var i = 0; i < rows.length; i++) { |
112 var row = rows[i]; |
135 var row = rows[i]; |
113 if (row.f_adjust_to_total_100) |
136 if (row.f_adjust_to_total_100) |
114 my_100 = true; |
137 my_100 = true; |
115 if (row.f_type == 1) // Sugar |
138 if (row.f_type == 1) // Sugar |
116 psugar += row.f_percentage; |
139 psugar += row.f_percentage; |
117 if (row.f_graintype == 2) // Crystal |
140 if (row.f_graintype == 2) // Crystal |
118 pcara += row.f_percentage; |
141 pcara += row.f_percentage; |
119 var d = row.f_amount * (row.f_yield / 100) * (1 - row.f_moisture / 100); |
142 var d = row.f_amount * (row.f_yield / 100) * (1 - row.f_moisture / 100); |
120 if (row.f_added == 0) { // Mash |
143 if (row.f_added == 0) { // Mash |
|
144 if (mvol > 0) { // Only if mash already known. |
|
145 mvol += row.f_amount * row.f_moisture / 100; |
|
146 s += d; |
|
147 } |
121 d = parseFloat(dataRecord.efficiency) / 100 * d; |
148 d = parseFloat(dataRecord.efficiency) / 100 * d; |
122 sugarsm += d; |
149 sugarsm += d; |
123 mashkg += row.f_amount; |
150 mashkg += row.f_amount; |
124 } |
151 } |
125 sugarsf += d; |
152 if (row.f_added == 0 || row.f_added == 1) // Mash or Boil |
126 colorw += row.f_amount * ebc_to_srm(row.f_color) / parseFloat(dataRecord.batch_size) * 8.34436; |
153 sugarsf += d; |
|
154 if (row.f_added == 2 || row.f_added == 3) { |
|
155 var x = (row.f_yield / 100) * (1 - row.f_moisture / 100); |
|
156 addedS += row.f_amount * x; |
|
157 addedmass += row.f_amount; |
|
158 vol += (x * sugardensity + (1 - x) * 1) * row.f_amount; |
|
159 } |
|
160 colort += row.f_amount * ebc_to_srm(row.f_color); |
127 } |
161 } |
128 to_100 = my_100; |
162 to_100 = my_100; |
129 if (to_100) { |
163 if (to_100) { |
130 $("#wf_amount").jqxNumberInput({ width: 90, readOnly: true, spinButtons: false }); |
164 $("#wf_amount").jqxNumberInput({ width: 90, readOnly: true, spinButtons: false }); |
131 } else { |
165 } else { |
132 $("#wf_amount").jqxNumberInput({ width: 110, readOnly: false, spinButtons: true }); |
166 $("#wf_amount").jqxNumberInput({ width: 110, readOnly: false, spinButtons: true }); |
133 } |
167 } |
134 var est_og = estimate_sg(sugarsf, parseFloat(dataRecord.batch_size)); |
168 |
135 dataRecord.est_og = est_og; |
169 if (mvol > 0) { |
136 $('#est_og').val(est_og); |
170 var v = s / sugardensity + mvol; |
137 $('#est_og2').val(est_og); |
171 s = 1000 * s / (v * 10); //deg. Plato |
138 $('#est_og3').val(est_og); |
172 est_mash_sg = Math.round(plato_to_sg(s) * 1000) / 1000; |
|
173 //console.log("est_mash_sg "+est_mash_sg); |
|
174 $('#est_mash_sg').val(est_mash_sg); |
|
175 } |
|
176 |
|
177 // Estimate total recipe OG. |
|
178 dataRecord.est_og = estimate_sg(sugarsf + addedS, parseFloat(dataRecord.batch_size)); |
|
179 $('#est_og').val(dataRecord.est_og); |
|
180 $('#est_og2').val(dataRecord.est_og); |
|
181 |
|
182 // Estimate SG in kettle after boil |
|
183 aboil_sg = estimate_sg(sugarsf, parseFloat(dataRecord.batch_size)); |
|
184 $('#est_og3').val(aboil_sg); |
|
185 |
|
186 // Estimate SG in kettle before boil |
139 preboil_sg = estimate_sg(sugarsm, parseFloat(dataRecord.boil_size)); |
187 preboil_sg = estimate_sg(sugarsm, parseFloat(dataRecord.boil_size)); |
140 $('#est_pre_sg').val(preboil_sg); |
188 $('#est_pre_sg').val(preboil_sg); |
141 var color = kw_to_ebc(dataRecord.color_method, colorw); |
189 |
|
190 // Recalculate volumes. |
|
191 var aboil_volume = parseFloat(dataRecord.batch_size); |
|
192 if (dataRecord.brew_aboil_volume > 0) |
|
193 aboil_volume = dataRecord.brew_aboil_volume / 1.04; // volume @ 20 degrees |
|
194 dataRecord.brew_fermenter_volume = aboil_volume - dataRecord.brew_fermenter_tcloss + dataRecord.brew_fermenter_extrawater; |
|
195 $("#brew_fermenter_volume").val(dataRecord.brew_fermenter_volume); |
|
196 |
|
197 // Calculate SG in fermenter |
|
198 var ogx = dataRecord.brew_aboil_sg; |
|
199 if (ogx < 1.002) |
|
200 ogx = aboil_sg; |
|
201 var top = dataRecord.brew_fermenter_extrawater; |
|
202 |
|
203 if (dataRecord.brew_fermenter_volume > 0) { |
|
204 var sug = sg_to_plato(ogx) * dataRecord.brew_fermenter_volume * ogx / 100; //kg of sugar in |
|
205 sug += addedS; //kg |
|
206 console.log("Contents ferm_vol:"+dataRecord.brew_fermenter_volume+" top:"+top+" vol:"+vol+" addedS:"+addedS+" addedmass:"+addedmass); |
|
207 |
|
208 if ((dataRecord.brew_fermenter_volume * ogx + addedmass) > 0) { |
|
209 var pt = 100 * sug / (dataRecord.brew_fermenter_volume * ogx + addedmass + top); |
|
210 dataRecord.brew_fermenter_sg = Math.round(plato_to_sg(pt) * 1000) / 1000; |
|
211 $("#brew_fermenter_sg").val(dataRecord.brew_fermenter_sg); |
|
212 // color |
|
213 var cw = colort / (aboil_volume + top) * 8.34436; |
|
214 dataRecord.brew_fermenter_color = kw_to_ebc(dataRecord.color_method, cw); |
|
215 $("#brew_fermenter_color").val(dataRecord.brew_fermenter_color); |
|
216 var scolor = ebc_to_color(dataRecord.brew_fermenter_color); |
|
217 $("#bcolorf").show(); |
|
218 document.getElementById("bcolorf").style.background= scolor; |
|
219 console.log("OG in fermenter:"+dataRecord.brew_fermenter_sg+" color:"+dataRecord.brew_fermenter_color); |
|
220 } |
|
221 } else { |
|
222 // Negative volume |
|
223 dataRecord.brew_fermenter_sg = dataRecord.brew_fermenter_color = 0; |
|
224 $("#brew_fermenter_sg").val(0); |
|
225 $("#brew_fermenter_color").val(0); |
|
226 $("#bcolorf").hide(); |
|
227 } |
|
228 |
|
229 // Color of the wort |
|
230 var cw = colort / parseFloat(dataRecord.batch_size) * 8.34436; |
|
231 var color = kw_to_ebc(dataRecord.color_method, cw); |
142 dataRecord.est_color = color; |
232 dataRecord.est_color = color; |
143 $('#est_color').val(color); |
233 $('#est_color').val(color); |
144 $('#est_color2').val(color); |
234 $('#est_color2').val(color); |
145 var scolor = ebc_to_color(color); |
235 var scolor = ebc_to_color(color); |
146 document.getElementById("bcolor").style.background= scolor; |
236 document.getElementById("bcolor").style.background= scolor; |
147 document.getElementById("bcolor2").style.background= scolor; |
237 document.getElementById("bcolor2").style.background= scolor; |
|
238 |
|
239 // Progress bars |
148 pmalts = mashkg / dataRecord.eq_mash_max * 100; |
240 pmalts = mashkg / dataRecord.eq_mash_max * 100; |
149 // console.log("mash kg: "+mashkg+" max: "+dataRecord.eq_mash_max+" perc: "+pmalts); |
241 //console.log("mash kg: "+mashkg+" max: "+dataRecord.eq_mash_max+" perc: "+pmalts); |
150 $("#perc_malts").jqxProgressBar('val', pmalts); |
242 $("#perc_malts").jqxProgressBar('val', pmalts); |
151 $("#perc_sugars").jqxProgressBar('val', psugar); |
243 $("#perc_sugars").jqxProgressBar('val', psugar); |
152 $("#perc_cara").jqxProgressBar('val', pcara); |
244 $("#perc_cara").jqxProgressBar('val', pcara); |
153 calcStage(); |
245 calcStage(); |
154 }; |
246 }; |
155 |
247 |
|
248 /* |
|
249 * Change OG of recipe but keep the water volumes. |
|
250 */ |
156 function calcFermentablesFromOG(OG) { |
251 function calcFermentablesFromOG(OG) { |
157 |
252 |
158 console.log("calcFermentablesFromOG("+OG+")"); |
253 console.log("calcFermentablesFromOG("+OG+")"); |
159 var i, j, sug, d, tot, totmass; |
254 var efficiency = parseFloat($("#efficiency").jqxNumberInput('decimal')); |
160 var vol, vol1, vol2, sug2; |
255 var sug = sg_to_plato(OG) * parseFloat($("#batch_size").jqxNumberInput('decimal')) * OG / 100; //total amount of sugars in kg |
161 var mass1, mass2, efficiency; |
256 var tot = 0; |
162 |
257 var rowscount = $("#fermentableGrid").jqxGrid('getdatainformation').rowscount; |
163 for (j = 1; j < 15; j++) { |
258 |
164 vol = 0; |
259 for (var i = 0; i < rowscount; i++) { |
165 sug2 = 0; |
260 var row = $("#fermentableGrid").jqxGrid('getrowdata', i); |
166 efficiency = parseFloat(dataRecord.efficiency); |
261 var d = row.f_percentage / 100 * (row.f_yield / 100) * (1 - row.f_moisture / 100); |
167 var rows = $('#fermentableGrid').jqxGrid('getrows'); |
262 if (row.f_added == 0) // Mash |
168 for (i = 0; i < rows.length; i++) { |
263 d = efficiency / 100 * d; |
169 var row = rows[i]; |
264 tot += d; |
170 if ((row.f_added == 2) || (row.f_added == 3) || (row.f_added == 4)) { // Fermentation, Lagering or Bottle |
265 } |
171 var x = (row.f_yield / 100) * (1 - row.f_moisture / 100); |
266 var totmass = 0; |
172 vol += row.f_amount / (x * sugardensity + (1 - x) * 1); |
267 if (tot) |
173 sug2 += row.f_amount * x; |
268 totmass = sug / tot; |
174 } |
269 |
|
270 if (totmass) { |
|
271 for (i = 0; i < rowscount; i++) { |
|
272 var row = $("#fermentableGrid").jqxGrid('getrowdata', i); |
|
273 var amount = row.f_percentage / 100 * totmass; |
|
274 $("#fermentableGrid").jqxGrid('setcellvalue', i, "f_amount", amount); |
175 } |
275 } |
176 sug = sg_to_plato(OG) * OG / 100; // kg/l |
276 } |
177 vol1 = dataRecord.batch_size - dataRecord.eq_trub_chiller_loss; |
|
178 vol2 = vol1 + dataRecord.eq_top_up_water + vol; |
|
179 sug = sug * vol2; // kg in het gistvat |
|
180 sug = sug - sug2; // kg voor toevoeging in gistvat |
|
181 if (vol1 > 0) |
|
182 sug = sug * dataRecord.batch_size / vol1; //kg in kookketel |
|
183 sug = sug + sug2; |
|
184 // sug = sg_to_plato(OG) * parseFloat($("#batch_size").jqxNumberInput('decimal')) * OG / 100; //total amount of sugars in kg |
|
185 |
|
186 tot = 0; |
|
187 d = 0; |
|
188 for (i = 0; i < rows.length; i++) { |
|
189 var row = rows[i]; |
|
190 d = row.f_percentage / 100 * (row.f_yield / 100) * (1 - row.f_moisture / 100); |
|
191 if (row.f_added == 0) // Mash |
|
192 d = efficiency / 100 * d; |
|
193 tot += d; |
|
194 } |
|
195 if (tot) |
|
196 totmass = sug / tot; |
|
197 else |
|
198 totmass = 0; |
|
199 |
|
200 if (totmass) { |
|
201 console.log("pass:"+j+" totmass:"+totmass); |
|
202 for (i = 0; i < rows.length; i++) { |
|
203 var row = rows[i]; |
|
204 row.f_amount = row.f_percentage / 100 * totmass; |
|
205 $("#fermentableGrid").jqxGrid('setcellvalue', i, "f_amount", row.f_percentage / 100 * totmass); |
|
206 } |
|
207 } |
|
208 }; |
|
209 //CalcWaterBalance; |
|
210 }; |
277 }; |
211 |
278 |
212 function calcFG() { |
279 function calcFG() { |
213 var fg = estimate_fg(psugar, pcara, 0, 0, 0, svg, parseFloat(parseFloat($("#est_og").jqxNumberInput('decimal')))); |
280 var fg = estimate_fg(psugar, pcara, 0, 0, 0, svg, dataRecord.est_og); |
214 dataRecord.est_fg = fg; |
281 dataRecord.est_fg = fg; |
215 $('#est_fg').val(fg); |
282 $('#est_fg').val(fg); |
216 $('#est_fg2').val(fg); |
283 $('#est_fg2').val(fg); |
217 } |
284 } |
218 |
285 |
219 function calcABV() { |
286 function calcABV() { |
220 var abv = abvol(parseFloat($("#est_og").jqxNumberInput('decimal')), parseFloat($("#est_fg").jqxNumberInput('decimal'))); |
287 var abv = abvol(dataRecord.est_og, dataRecord.est_fg); |
221 $("#est_abv").val(abv); |
288 $("#est_abv").val(abv); |
222 $("#est_abv2").val(abv); |
289 $("#est_abv2").val(abv); |
223 }; |
290 }; |
224 |
291 |
225 function hopFlavourContribution(bt, vol, use, amount) { |
292 function hopFlavourContribution(bt, vol, use, amount) { |
1639 { name: 'brew_whirlpool7', type: 'float' }, |
1683 { name: 'brew_whirlpool7', type: 'float' }, |
1640 { name: 'brew_whirlpool6', type: 'float' }, |
1684 { name: 'brew_whirlpool6', type: 'float' }, |
1641 { name: 'brew_whirlpool2', type: 'float' }, |
1685 { name: 'brew_whirlpool2', type: 'float' }, |
1642 { name: 'brew_fermenter_volume', type: 'float' }, |
1686 { name: 'brew_fermenter_volume', type: 'float' }, |
1643 { name: 'brew_fermenter_extrawater', type: 'float' }, |
1687 { name: 'brew_fermenter_extrawater', type: 'float' }, |
|
1688 { name: 'brew_fermenter_tcloss', type: 'float' }, |
1644 { name: 'brew_aeration_time', type: 'float' }, |
1689 { name: 'brew_aeration_time', type: 'float' }, |
1645 { name: 'brew_aeration_speed', type: 'float' }, |
1690 { name: 'brew_aeration_speed', type: 'float' }, |
1646 { name: 'brew_aeration_type', type: 'int' }, |
1691 { name: 'brew_aeration_type', type: 'int' }, |
1647 { name: 'brew_fermenter_sg', type: 'float' }, |
1692 { name: 'brew_fermenter_sg', type: 'float' }, |
1648 { name: 'brew_fermenter_ibu', type: 'float' }, |
1693 { name: 'brew_fermenter_ibu', type: 'float' }, |
|
1694 { name: 'brew_fermenter_color', type: 'float' }, |
1649 { name: 'brew_date_end', type: 'string' }, |
1695 { name: 'brew_date_end', type: 'string' }, |
1650 { name: 'og', type: 'float' }, |
1696 { name: 'og', type: 'float' }, |
1651 { name: 'fg', type: 'float' }, |
1697 { name: 'fg', type: 'float' }, |
1652 { name: 'primary_start_temp', type: 'float' }, |
1698 { name: 'primary_start_temp', type: 'float' }, |
1653 { name: 'primary_max_temp', type: 'float' }, |
1699 { name: 'primary_max_temp', type: 'float' }, |
1809 // Header Naar gistvat |
1855 // Header Naar gistvat |
1810 $("#brew_fermenter_volume").val(dataRecord.brew_fermenter_volume); |
1856 $("#brew_fermenter_volume").val(dataRecord.brew_fermenter_volume); |
1811 $("#brew_fermenter_sg").val(dataRecord.brew_fermenter_sg); |
1857 $("#brew_fermenter_sg").val(dataRecord.brew_fermenter_sg); |
1812 $("#brew_fermenter_sg2").val(dataRecord.brew_fermenter_sg); |
1858 $("#brew_fermenter_sg2").val(dataRecord.brew_fermenter_sg); |
1813 $("#brew_fermenter_ibu").val(dataRecord.brew_fermenter_ibu); |
1859 $("#brew_fermenter_ibu").val(dataRecord.brew_fermenter_ibu); |
|
1860 $("#brew_fermenter_color").val(dataRecord.brew_fermenter_color); |
|
1861 $("#brew_fermenter_extrawater").val(dataRecord.brew_fermenter_extrawater); |
|
1862 $("#brew_fermenter_tcloss").val(dataRecord.brew_fermenter_tcloss); |
1814 |
1863 |
1815 $("#brew_aboil_ph").val(dataRecord.brew_aboil_ph); |
1864 $("#brew_aboil_ph").val(dataRecord.brew_aboil_ph); |
1816 $("#brew_aboil_sg").val(dataRecord.brew_aboil_sg); |
1865 $("#brew_aboil_sg").val(dataRecord.brew_aboil_sg); |
1817 $("#brew_aboil_volume").val(dataRecord.brew_aboil_volume); |
1866 $("#brew_aboil_volume").val(dataRecord.brew_aboil_volume); |
1818 $("#brew_aboil_efficiency").val(dataRecord.brew_aboil_efficiency); |
1867 $("#brew_aboil_efficiency").val(dataRecord.brew_aboil_efficiency); |
1819 // Header Koelen en whirlpoolen |
1868 // Header Koelen en whirlpoolen |
1820 $("#brew_cooling_to").val(dataRecord.brew_cooling_to); |
1869 $("#brew_cooling_to").val(dataRecord.brew_cooling_to); |
1821 $("#brew_cooling_method").val(dataRecord.brew_cooling_method); |
1870 $("#brew_cooling_method").val(dataRecord.brew_cooling_method); |
1822 $("#brew_cooling_time").val(dataRecord.brew_cooling_time); |
1871 $("#brew_cooling_time").val(dataRecord.brew_cooling_time); |
1823 // Niks |
1872 // Niks |
1824 // Header Naar gistvat |
|
1825 $("#brew_fermenter_extrawater").val(dataRecord.brew_fermenter_extrawater); |
|
1826 $("#brew_fermenter_extrasugar").val(dataRecord.brew_fermenter_extrasugar); |
|
1827 $("#brew_fermenter_color").val(dataRecord.brew_fermenter_color); |
|
1828 $("#brew_date_end").val(dataRecord.brew_date_end); |
1873 $("#brew_date_end").val(dataRecord.brew_date_end); |
1829 $("#og").val(dataRecord.og); |
1874 $("#og").val(dataRecord.og); |
1830 $("#fg").val(dataRecord.fg); |
1875 $("#fg").val(dataRecord.fg); |
1831 $("#primary_start_temp").val(dataRecord.primary_start_temp); |
1876 $("#primary_start_temp").val(dataRecord.primary_start_temp); |
1832 $("#primary_max_temp").val(dataRecord.primary_max_temp); |
1877 $("#primary_max_temp").val(dataRecord.primary_max_temp); |
3955 $("#brew_preboil_sg").on('valueChanged', function (event) { dataRecord.brew_preboil_sg = event.args.value; calcEfficiencyBeforeBoil() }); |
3996 $("#brew_preboil_sg").on('valueChanged', function (event) { dataRecord.brew_preboil_sg = event.args.value; calcEfficiencyBeforeBoil() }); |
3956 $("#est_pre_sg").jqxTooltip({ content: 'Het berekende SG in de kookketel na het spoelen en voor het koken.' }); |
3997 $("#est_pre_sg").jqxTooltip({ content: 'Het berekende SG in de kookketel na het spoelen en voor het koken.' }); |
3957 $("#est_pre_sg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 3 }); |
3998 $("#est_pre_sg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 3 }); |
3958 $("#brew_aboil_sg").jqxTooltip({ content: 'Het gemeten SG in de kookketel na het koken.' }); |
3999 $("#brew_aboil_sg").jqxTooltip({ content: 'Het gemeten SG in de kookketel na het koken.' }); |
3959 $("#brew_aboil_sg").jqxNumberInput( SGopts ); |
4000 $("#brew_aboil_sg").jqxNumberInput( SGopts ); |
3960 $("#brew_aboil_sg").on('valueChanged', function (event) { dataRecord.brew_aboil_sg = event.args.value; calcEfficiencyAfterBoil() }); |
4001 $("#brew_aboil_sg").on('valueChanged', function (event) { dataRecord.brew_aboil_sg = event.args.value; calcEfficiencyAfterBoil(); calcFermentables(); }); |
3961 $("#est_og3").jqxTooltip({ content: 'Het gewenste SG in de kookketel na het koken.' }); |
4002 $("#est_og3").jqxTooltip({ content: 'Het gewenste SG in de kookketel na het koken.' }); |
3962 $("#est_og3").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 70, height: 23, decimalDigits: 3, readOnly: true }); |
4003 $("#est_og3").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 70, height: 23, decimalDigits: 3, readOnly: true }); |
3963 $("#brew_mash_efficiency").jqxTooltip({ content: 'Het behaalde maisch rendement.' }); |
4004 $("#brew_mash_efficiency").jqxTooltip({ content: 'Het behaalde maisch rendement.' }); |
3964 $("#brew_mash_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); |
4005 $("#brew_mash_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); |
3965 $("#brew_preboil_volume").jqxTooltip({ content: 'Het volume van het wort voor het koken.' }); |
4006 $("#brew_preboil_volume").jqxTooltip({ content: 'Het gemeten volume van het wort voor het koken.' }); |
3966 $("#brew_preboil_volume").jqxNumberInput( Spin1dec ); |
4007 $("#brew_preboil_volume").jqxNumberInput( Spin1dec ); |
3967 $("#brew_preboil_volume").on('valueChanged', function (event) { dataRecord.brew_preboil_volume = event.args.value; calcEfficiencyBeforeBoil() }); |
4008 $("#brew_preboil_volume").on('valueChanged', function (event) { dataRecord.brew_preboil_volume = event.args.value; calcEfficiencyBeforeBoil() }); |
3968 $("#est_pre_vol").jqxTooltip({ content: 'Het berekende volume van het wort voor het koken.' }); |
4009 $("#est_pre_vol").jqxTooltip({ content: 'Het berekende volume van het wort voor het koken.' }); |
3969 $("#est_pre_vol").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
4010 $("#est_pre_vol").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
3970 $("#brew_aboil_volume").jqxTooltip({ content: 'Het volume van het wort na het koken.' }); |
4011 $("#brew_aboil_volume").jqxTooltip({ content: 'Het gemeten volume van het wort na het koken.' }); |
3971 $("#brew_aboil_volume").jqxNumberInput( Spin1dec ); |
4012 $("#brew_aboil_volume").jqxNumberInput( Spin1dec ); |
3972 $("#brew_aboil_volume").on('valueChanged', function (event) { dataRecord.brew_aboil_volume = event.args.value; calcEfficiencyAfterBoil() }); |
4013 $("#brew_aboil_volume").on('valueChanged', function (event) { dataRecord.brew_aboil_volume = event.args.value; calcEfficiencyAfterBoil(); calcFermentables(); }); |
3973 $("#est_a_vol").jqxTooltip({ content: 'Het gewenste volume na het koken.' }); |
4014 $("#est_a_vol").jqxTooltip({ content: 'Het gewenste volume na het koken.' }); |
3974 $("#est_a_vol").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
4015 $("#est_a_vol").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
3975 $("#brew_preboil_efficiency").jqxTooltip({ content: 'Het berekende rendement voor het koken.' }); |
4016 $("#brew_preboil_efficiency").jqxTooltip({ content: 'Het berekende rendement voor het koken.' }); |
3976 $("#brew_preboil_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); |
4017 $("#brew_preboil_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); |
3977 $("#brew_aboil_efficiency").jqxTooltip({ content: 'Het bereikte rendement na het koken.' }); |
4018 $("#brew_aboil_efficiency").jqxTooltip({ content: 'Het bereikte rendement na het koken.' }); |
4010 }); |
4051 }); |
4011 $("#brew_aeration_time").jqxNumberInput( PosInt ); |
4052 $("#brew_aeration_time").jqxNumberInput( PosInt ); |
4012 $("#brew_aeration_time").jqxNumberInput({ max: 1440 }); |
4053 $("#brew_aeration_time").jqxNumberInput({ max: 1440 }); |
4013 $("#brew_aeration_speed").jqxNumberInput( PosInt ); |
4054 $("#brew_aeration_speed").jqxNumberInput( PosInt ); |
4014 $("#brew_aeration_speed").jqxNumberInput({ max: 1440 }); |
4055 $("#brew_aeration_speed").jqxNumberInput({ max: 1440 }); |
4015 $("#brew_fermenter_volume").jqxNumberInput( Spin1dec ); |
4056 $("#brew_fermenter_volume").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); |
4016 $("#brew_fermenter_extrawater").jqxNumberInput( Spin1dec ); |
4057 $("#brew_fermenter_extrawater").jqxNumberInput( Spin1dec ); |
4017 $("#brew_fermenter_sg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 3 }); |
4058 $("#brew_fermenter_sg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 3 }); |
4018 $("#brew_fermenter_extrasugar").jqxNumberInput( Spin1dec ); |
4059 $("#brew_fermenter_tcloss").jqxNumberInput( Spin1dec ); |
4019 $("#brew_fermenter_ibu").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 0 }); |
4060 $("#brew_fermenter_ibu").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 0 }); |
4020 $("#brew_fermenter_color").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 0 }); |
4061 $("#brew_fermenter_color").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 0 }); |
4021 $("#BLog").jqxButton({ template: "info", width: '150px', theme: theme }); |
4062 $("#BLog").jqxButton({ template: "info", width: '150px', theme: theme }); |
4022 $("#BLog").click(function () { |
4063 $("#BLog").click(function () { |
4023 // Open log in a new tab. |
4064 // Open log in a new tab. |
4237 brew_whirlpool7: parseFloat($("#brew_whirlpool7").jqxNumberInput('decimal')), |
4278 brew_whirlpool7: parseFloat($("#brew_whirlpool7").jqxNumberInput('decimal')), |
4238 brew_whirlpool6: parseFloat($("#brew_whirlpool6").jqxNumberInput('decimal')), |
4279 brew_whirlpool6: parseFloat($("#brew_whirlpool6").jqxNumberInput('decimal')), |
4239 brew_whirlpool2: parseFloat($("#brew_whirlpool2").jqxNumberInput('decimal')), |
4280 brew_whirlpool2: parseFloat($("#brew_whirlpool2").jqxNumberInput('decimal')), |
4240 brew_fermenter_volume: parseFloat($("#brew_fermenter_volume").jqxNumberInput('decimal')), |
4281 brew_fermenter_volume: parseFloat($("#brew_fermenter_volume").jqxNumberInput('decimal')), |
4241 brew_fermenter_extrawater: parseFloat($("#brew_fermenter_extrawater").jqxNumberInput('decimal')), |
4282 brew_fermenter_extrawater: parseFloat($("#brew_fermenter_extrawater").jqxNumberInput('decimal')), |
|
4283 brew_fermenter_tcloss: parseFloat($("#brew_fermenter_tcloss").jqxNumberInput('decimal')), |
4242 brew_aeration_time: parseFloat($("#brew_aeration_time").jqxNumberInput('decimal')), |
4284 brew_aeration_time: parseFloat($("#brew_aeration_time").jqxNumberInput('decimal')), |
4243 brew_aeration_speed: parseFloat($("#brew_aeration_speed").jqxNumberInput('decimal')), |
4285 brew_aeration_speed: parseFloat($("#brew_aeration_speed").jqxNumberInput('decimal')), |
4244 brew_aeration_type: $("#brew_aeration_type").val(), |
4286 brew_aeration_type: $("#brew_aeration_type").val(), |
4245 brew_fermenter_sg: parseFloat($("#brew_fermenter_sg").jqxNumberInput('decimal')), |
4287 brew_fermenter_sg: parseFloat($("#brew_fermenter_sg").jqxNumberInput('decimal')), |
4246 brew_fermenter_ibu: parseFloat($("#brew_fermenter_ibu").jqxNumberInput('decimal')), |
4288 brew_fermenter_ibu: parseFloat($("#brew_fermenter_ibu").jqxNumberInput('decimal')), |
|
4289 brew_fermenter_color: parseFloat($("#brew_fermenter_color").jqxNumberInput('decimal')), |
4247 brew_date_end: $("#brew_date_end").val(), |
4290 brew_date_end: $("#brew_date_end").val(), |
4248 og: dataRecord.og, |
4291 og: dataRecord.og, |
4249 fg: parseFloat($("#fg").jqxNumberInput('decimal')), |
4292 fg: parseFloat($("#fg").jqxNumberInput('decimal')), |
4250 primary_start_temp: parseFloat($("#primary_start_temp").jqxNumberInput('decimal')), |
4293 primary_start_temp: parseFloat($("#primary_start_temp").jqxNumberInput('decimal')), |
4251 primary_max_temp: parseFloat($("#primary_max_temp").jqxNumberInput('decimal')), |
4294 primary_max_temp: parseFloat($("#primary_max_temp").jqxNumberInput('decimal')), |