# HG changeset patch # User Michiel Broek # Date 1584646878 -3600 # Node ID 2246d830a42aec98e4cb12d207a5ba946027bf8a # Parent 3b1510050c9b769fd6cfab5d4b2363b93950a245 Fixed some html errors. Added volume calculations for the brewday tab using a popup tool. diff -r 3b1510050c9b -r 2246d830a42a README.design --- a/README.design Thu Mar 19 13:42:59 2020 +0100 +++ b/README.design Thu Mar 19 20:41:18 2020 +0100 @@ -52,12 +52,8 @@ Bij splits na brouwen, de brouw log records kopieren onder nieuwe code en naam. includes/db_divide.php -Miscs type: add wood. - Hop types: Extract IKE. -Popups in de editors met rekenhulpjes. - https://github.com/beerjson/beerjson diff -r 3b1510050c9b -r 2246d830a42a www/js/global.js --- a/www/js/global.js Thu Mar 19 13:42:59 2020 +0100 +++ b/www/js/global.js Thu Mar 19 20:41:18 2020 +0100 @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2014-2019 + * Copyright (C) 2014-2020 * * Michiel Broek * @@ -1190,3 +1190,16 @@ } +function kettle_cm(vol, kettle_vol, kettle_height) { + if ((vol > 0) && (kettle_vol > 0) && (vol <= kettle_vol)) + return Round(100 * ((1 - vol / kettle_vol) * kettle_height), 1); + return 0; +} + + +function kettle_vol(cm, kettle_vol, kettle_height) { + if ((cm >= 0) && (kettle_vol > 0) && (cm <= (kettle_height * 100))) + return Round(((kettle_height - (cm / 100)) / kettle_height) * kettle_vol, 1); + return 0; +} + diff -r 3b1510050c9b -r 2246d830a42a www/js/prod_edit.js --- a/www/js/prod_edit.js Thu Mar 19 13:42:59 2020 +0100 +++ b/www/js/prod_edit.js Thu Mar 19 20:41:18 2020 +0100 @@ -31,6 +31,7 @@ resizable: false, isModal: true, modalOpacity: 0.4, + autoOpen: false, okButton: $('#delOk'), cancelButton: $('#delCancel'), initContent: function() { @@ -40,6 +41,19 @@ } }); $('#eventWindow').jqxWindow('hide'); + + $('#volumeWindow').jqxWindow({ + theme: theme, + position: { x: 380, y: 210 }, + width: 500, + height: 200, + resizable: false, + isModal: true, + modalOpacity: 0.4, + autoOpen: false, + cancelButton: $('#volumeReady') + }); + $('#volumeWindow').jqxWindow('hide'); } @@ -66,6 +80,9 @@ data_loaded = 0; error_count = 0; + k_cm = 0; + k_vol = 0; + k_what = 0; hop_flavour = 0, hop_aroma = 0, @@ -3594,6 +3611,8 @@ $('#brew_aeration_time').jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); $('#brew_fermenter_extrawater').jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); $('#brew_aeration_speed').jqxNumberInput({ spinButtons: false, readOnly: true, width: 90 }); + $('#but_pre_boil').jqxButton({ disabled: true }); + $('#but_after_boil').jqxButton({ disabled: true }); } if (dataRecord.stage == 5) // Lagering, allow packaging $('#package_date').jqxDateTimeInput({ disabled: false }); @@ -5720,6 +5739,50 @@ calcFermentables(); calcIBUs(); }); + $('#ketel_volume').jqxNumberInput(Show1dec); + $('#ketel_cm').jqxNumberInput(Spin1dec); + $('#ketel_cm').on('change', function(event) { + k_cm = parseFloat(event.args.value); + k_vol = kettle_vol(k_cm, dataRecord.eq_kettle_volume, dataRecord.eq_kettle_height); + $('#ketel_volume').val(k_vol); + }); + $('#volumeReady').jqxButton({ template: 'success', width: '90px', theme: theme }); + $('#volumeReady').click(function() { + /* Is it pre or after boil */ + console.log('volumeReady ' + k_what + ' volume: ' + Round(k_vol, 1)); + if (k_what == 0) { + dataRecord.brew_preboil_volume = Round(k_vol, 1); + $('#brew_preboil_volume').val(Round(k_vol, 1)); + } else if (k_what == 1) { + dataRecord.brew_aboil_volume = Round(k_vol, 1); + $('#brew_aboil_volume').val(Round(k_vol, 1)); + } + }); + $('#but_pre_boil').jqxButton({ template: 'success', width: '23px', height: 23, theme: theme }); + $('#but_pre_boil').bind('click', function() { + /* If we already have measured a value, use that. Else use the estimated value. */ + if (dataRecord.brew_preboil_volume > 0) + k_cm = kettle_cm(dataRecord.brew_preboil_volume, dataRecord.eq_kettle_volume, dataRecord.eq_kettle_height); + else + k_cm = kettle_cm(dataRecord.boil_size * 1.04, dataRecord.eq_kettle_volume, dataRecord.eq_kettle_height); + k_vol = kettle_vol(k_cm, dataRecord.eq_kettle_volume, dataRecord.eq_kettle_height); + k_what = 0; + $('#ketel_cm').val(k_cm); + $('#ketel_volume').val(k_vol); + $('#volumeWindow').jqxWindow('open'); + }); + $('#but_after_boil').jqxButton({ template: 'success', width: 23, height: 23, theme: theme }); + $('#but_after_boil').bind('click', function() { + if (dataRecord.brew_aboil_volume > 0) + k_cm = kettle_cm(dataRecord.brew_aboil_volume, dataRecord.eq_kettle_volume, dataRecord.eq_kettle_height); + else + k_cm = kettle_cm(dataRecord.batch_size * 1.04, dataRecord.eq_kettle_volume, dataRecord.eq_kettle_height); + k_vol = kettle_vol(k_cm, dataRecord.eq_kettle_volume, dataRecord.eq_kettle_height); + k_what = 1; + $('#ketel_cm').val(k_cm); + $('#ketel_volume').val(k_vol); + $('#volumeWindow').jqxWindow('open'); + }); $('#est_pre_vol,#est_a_vol').jqxNumberInput(Show1wat); $('#brew_preboil_efficiency,#brew_aboil_efficiency,#brew_sparge_temperature,#brew_sparge_volume,#brew_sparge_est').jqxNumberInput(Show1dec); $('#brew_cooling_to').jqxNumberInput(Spin1dec); diff -r 3b1510050c9b -r 2246d830a42a www/prod_edit.php --- a/www/prod_edit.php Thu Mar 19 13:42:59 2020 +0100 +++ b/www/prod_edit.php Thu Mar 19 20:41:18 2020 +0100 @@ -111,7 +111,7 @@ Bitterheid methode:
Energie-inhoud kcal/l: -
+
@@ -544,7 +544,7 @@ Maisch pH: -
+
Voor koken pH:
Na koken pH: @@ -552,19 +552,19 @@ Maisch SG: -
+
Voor koken SG: -
+
Na koken SG: -
+
Maisch rendement %:
Voor koken vol@100°C: -
+
Na koken vol@100°C: -
+
@@ -632,7 +632,7 @@ Extra water in gistvat l:
Kleur in gistvat EBC: -
+
Beluchten snelheid: @@ -903,7 +903,7 @@ - + @@ -948,7 +948,7 @@
Ingrediënt naam:
Ander ingrediënt:
- + @@ -989,7 +989,7 @@
Hop naam:
Andere hop:
- + @@ -1026,15 +1026,15 @@
Ingrediënt naam:
Ander ingrediënt:
- + - + - + @@ -1067,7 +1067,7 @@
Gist naam:
Product code:
Leverancier:
Andere gist:
- + @@ -1102,6 +1102,29 @@ +
+
Bereken volume in de ketel
+
+
Stap naam:
Stap type:
+ + + + + + + + + + + + + +
Ketel volume:
cm vanaf de bovenrand:
+ +
+
+ +