Thu, 03 Jan 2019 20:56:47 +0100
Added new brew project wizzard. Moved equipment dropdown to global script. The project birth date is allways read-only, so it can never be changed.
www/css/style.css | file | annotate | diff | comparison | revisions | |
www/includes/global.inc.php | file | annotate | diff | comparison | revisions | |
www/js/global.js | file | annotate | diff | comparison | revisions | |
www/js/prod_edit.js | file | annotate | diff | comparison | revisions | |
www/js/prod_new.js | file | annotate | diff | comparison | revisions | |
www/prod_edit.php | file | annotate | diff | comparison | revisions | |
www/prod_new.php | file | annotate | diff | comparison | revisions |
--- a/www/css/style.css Thu Jan 03 14:21:35 2019 +0100 +++ b/www/css/style.css Thu Jan 03 20:56:47 2019 +0100 @@ -210,7 +210,7 @@ /* * New recipe wizzard */ -#hintBase, #hintStyle { +#hintBase, #hintStyle, #hintEq { float: left; margin-top: 30px; margin-right: 20px; @@ -233,6 +233,12 @@ margin-right: 10px; width: 320px; } +#eqButtonsWrapper { + float: right; + margin-top: 30px; + margin-right: 10px; + width: 320px; +} #completedButtonsWrapper { float: right; margin-right: 10px;
--- a/www/includes/global.inc.php Thu Jan 03 14:21:35 2019 +0100 +++ b/www/includes/global.inc.php Thu Jan 03 20:56:47 2019 +0100 @@ -189,7 +189,7 @@ <li>Productie <ul> <li><a href="prod_inprod.php">In bewerking</a></li> - <li>Start nieuw</li> + <li><a href="prod_new.php?return=index.php">Start nieuw</a></li> <li>Archief <ul> <li>Op naam</li>
--- a/www/js/global.js Thu Jan 03 14:21:35 2019 +0100 +++ b/www/js/global.js Thu Jan 03 20:56:47 2019 +0100 @@ -57,6 +57,41 @@ }; var styleslist = new $.jqx.dataAdapter(stylesSource); +// Equipemnt dropdown list +var equipmentUrl = "includes/db_inventory_equipments.php"; +var equipmentSource = { + datatype: "json", + datafields: [ + { name: 'name', type: 'string' }, + { name: 'boil_size', type: 'float' }, + { name: 'batch_size', type: 'float' }, + { name: 'tun_volume', type: 'float' }, + { name: 'tun_weight', type: 'float' }, + { name: 'tun_specific_heat', type: 'float' }, + { name: 'tun_material', type: 'string' }, + { name: 'tun_height', type: 'float' }, + { name: 'top_up_water', type: 'float' }, + { name: 'trub_chiller_loss', type: 'float' }, + { name: 'evap_rate', type: 'float' }, + { name: 'boil_time', type: 'float' }, + { name: 'calc_boil_volume', type: 'bool' }, + { name: 'top_up_kettle', type: 'float' }, + { name: 'hop_utilization', type: 'float' }, + { name: 'notes', type: 'string' }, + { name: 'lauter_volume', type: 'float' }, + { name: 'lauter_height', type: 'float' }, + { name: 'lauter_deadspace', type: 'float' }, + { name: 'kettle_volume', type: 'float' }, + { name: 'kettle_height', type: 'float' }, + { name: 'mash_volume', type: 'float' }, + { name: 'mash_max', type: 'float' }, + { name: 'efficiency', type: 'float' } + ], + url: equipmentUrl, + async: true +}; +var equipmentlist = new $.jqx.dataAdapter(equipmentSource); + // dropdownlist datasource from inventory_fermentables var fermentableInvSource = { datatype: "json",
--- a/www/js/prod_edit.js Thu Jan 03 14:21:35 2019 +0100 +++ b/www/js/prod_edit.js Thu Jan 03 20:56:47 2019 +0100 @@ -1309,39 +1309,6 @@ }); // Equipemnt dropdown list - var equipmentUrl = "includes/db_inventory_equipments.php"; - var equipmentSource = { - datatype: "json", - datafields: [ - { name: 'name', type: 'string' }, - { name: 'boil_size', type: 'float' }, - { name: 'batch_size', type: 'float' }, - { name: 'tun_volume', type: 'float' }, - { name: 'tun_weight', type: 'float' }, - { name: 'tun_specific_heat', type: 'float' }, - { name: 'tun_material', type: 'string' }, - { name: 'tun_height', type: 'float' }, - { name: 'top_up_water', type: 'float' }, - { name: 'trub_chiller_loss', type: 'float' }, - { name: 'evap_rate', type: 'float' }, - { name: 'boil_time', type: 'float' }, - { name: 'calc_boil_volume', type: 'bool' }, - { name: 'top_up_kettle', type: 'float' }, - { name: 'hop_utilization', type: 'float' }, - { name: 'notes', type: 'string' }, - { name: 'lauter_volume', type: 'float' }, - { name: 'lauter_height', type: 'float' }, - { name: 'lauter_deadspace', type: 'float' }, - { name: 'kettle_volume', type: 'float' }, - { name: 'kettle_height', type: 'float' }, - { name: 'mash_volume', type: 'float' }, - { name: 'mash_max', type: 'float' }, - { name: 'efficiency', type: 'float' } - ], - url: equipmentUrl, - async: true - }; - var equipmentlist = new $.jqx.dataAdapter(equipmentSource); $("#equipmentSelect").jqxDropDownList({ placeHolder: "Kies apparatuur:", theme: theme, @@ -1783,7 +1750,6 @@ $("#equipmentSelect").jqxDropDownList({ disabled: true }); if (brewstage > 0) { $("#Delete").jqxButton({ disabled: true }); - $("#birth").jqxDateTimeInput({ disabled: true }); } if (brewstage < 3) { $('#jqxTabs').jqxTabs('disableAt', 9); @@ -2912,7 +2878,7 @@ $("#code").jqxTooltip({ content: 'Product code nummer.' }); $("#code").jqxInput({ theme: theme, width: 100, height: 23 }); $("#birth").jqxTooltip({ content: 'De ontwerp datum van dit product.' }); - $("#birth").jqxDateTimeInput({ theme: theme, width: 150, height: 23, formatString: 'yyyy-MM-dd' }); + $("#birth").jqxInput({ theme: theme, width: 120, height: 23 }); $("#stage").jqxTooltip({ content: 'De productie fase van dit product.' }); $("#stage").jqxInput({ theme: theme, width: 100, height: 23 }); $("#log_brew").jqxCheckBox({ theme: theme, width: 120, height: 23, disabled : true });
--- a/www/js/prod_new.js Thu Jan 03 14:21:35 2019 +0100 +++ b/www/js/prod_new.js Thu Jan 03 20:56:47 2019 +0100 @@ -24,13 +24,179 @@ $(document).ready(function () { // tooltips - $("#name").jqxTooltip({ content: 'De naam voor dit recept.' }); - $("#notes").jqxTooltip({ content: 'De uitgebreide opmerkingen over dit recept.' }); + $("#name").jqxTooltip({ content: 'De naam voor dit brouw project.' }); + $("#code").jqxTooltip({ content: 'Het unieke code nummer van dit brouw project.' }); + $("#notes").jqxTooltip({ content: 'De uitgebreide opmerkingen over dit project.' }); + $("#type").jqxTooltip({ content: 'Het brouw type van bier in dit brouw project.' }); // editers var srcType = [ "All Grain", "Partial Mash", "Extract" ]; $("#name").jqxInput({ theme: theme, width: 640, height: 23 }); + $("#code").jqxInput({ theme: theme, width: 100, height: 23 }); $("#notes").jqxInput({ theme: theme, width: 960, height: 200 }); + $("#type").jqxDropDownList({ theme: theme, source: srcType, width: 125, height: 23, dropDownHeight: 95 }); + + $("#st_name").jqxInput({ theme: theme, width: 250, height: 23 }); + $("#st_category").jqxInput({ theme: theme, width: 250, height: 23 }); + $("#st_category_number").jqxInput({ theme: theme, width: 70, height: 23 }); + $("#st_letter").jqxInput({ theme: theme, width: 250, height: 23 }); + $("#st_guide").jqxInput({ theme: theme, width: 250, height: 23 }); + $("#st_notes").jqxInput({ theme: theme, width: 800, height: 100 }); + $("#st_type").jqxInput({ theme: theme, width: 90, height: 23 }); + $("#st_og_min").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 3, readOnly: true }); + $("#st_og_max").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 3, readOnly: true }); + $("#st_fg_min").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 3, readOnly: true }); + $("#st_fg_max").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 3, readOnly: true }); + $("#st_ibu_min").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 0, readOnly: true }); + $("#st_ibu_max").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 0, readOnly: true }); + $("#st_color_min").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 0, readOnly: true }); + $("#st_color_max").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 0, readOnly: true }); + $("#st_carb_min").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 1, readOnly: true }); + $("#st_carb_max").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 1, readOnly: true }); + $("#st_abv_min").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 1, readOnly: true }); + $("#st_abv_max").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 1, readOnly: true }); + $("#st_profile").jqxInput({ theme: theme, width: 800, height: 48 }); + $("#st_ingredients").jqxInput({ theme: theme, width: 800, height: 23 }); + $("#st_examples").jqxInput({ theme: theme, width: 800, height: 48 }); + + $("#eq_name").jqxTooltip({ content: 'De naam van deze brouw apparatuur.' }); + $("#eq_name").jqxInput({ theme: theme, width: 250, height: 23 }); + $("#eq_calc_boil_volume").jqxCheckBox({ theme: theme, width: 120, height: 23, disabled: true }); + $("#eq_boil_size").jqxTooltip({ content: 'Normaal kook volume in liters' }); + $("#eq_boil_size").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_batch_size").jqxTooltip({ content: 'Berekende batch grootte in liters aan het eind van de kook.' }); + $("#eq_batch_size").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_tun_volume").jqxTooltip({ content: 'Maisch ketel volume.' }); + $("#eq_tun_volume").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_tun_weight").jqxTooltip({ content: 'Maisch ketel gewicht.' }); + $("#eq_tun_weight").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_tun_height").jqxTooltip({ content: 'Maisch ketel hoogte.' }); + $("#eq_tun_height").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_tun_material").jqxTooltip({ content: 'Maisch ketel materiaal.' }); + $("#eq_tun_material").jqxInput({ theme: theme, width: 120, height: 23 }); + $("#eq_tun_specific_heat").jqxTooltip({ content: 'Maisch ketel warmte geleiding.' }); + $("#eq_tun_specific_heat").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_top_up_water").jqxTooltip({ content: 'Extra water in het gistvat.' }); + $("#eq_top_up_water").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_trub_chiller_loss").jqxTooltip({ content: 'Standaard verlies bij het overbrengen naar het gistvat.' }); + $("#eq_trub_chiller_loss").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_evap_rate").jqxTooltip({ content: 'Verdamping in liters per uur.' }); + $("#eq_evap_rate").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 2, }); + $("#eq_boil_time").jqxTooltip({ content: 'Normale kooktijd in minuten.' }); + $("#eq_boil_time").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 0 }); + $("#eq_top_up_kettle").jqxTooltip({ content: 'Extra water toevoegen tijdens de kook.' }); + $("#eq_top_up_kettle").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_hop_utilization").jqxTooltip({ content: '100% voor kleine installaties, hoger voor grote brouwerijen.' }); + $("#eq_hop_utilization").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 0 }); + $("#eq_notes").jqxTooltip({ content: 'Opmerkingen over deze apparatuur.' }); + $("#eq_notes").jqxInput({ theme: theme, width: 960, height: 100 }); + $("#eq_lauter_volume").jqxTooltip({ content: 'Filterkuip volume.' }); + $("#eq_lauter_volume").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_lauter_height").jqxTooltip({ content: 'Filterkuip hoogte.' }); + $("#eq_lauter_height").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_lauter_deadspace").jqxTooltip({ content: 'Filterkuip verlies in liters.' }); + $("#eq_lauter_deadspace").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_kettle_volume").jqxTooltip({ content: 'Kook ketel volume in liters.' }); + $("#eq_kettle_volume").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_kettle_height").jqxTooltip({ content: 'Kook ketel hoogte in cm.' }); + $("#eq_kettle_height").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_mash_volume").jqxTooltip({ content: 'Maisch water voor de eerste stap.' }); + $("#eq_mash_volume").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_mash_max").jqxTooltip({ content: 'De maximale moutstort in Kg.' }); + $("#eq_mash_max").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + $("#eq_efficiency").jqxTooltip({ content: 'Gemiddeld brouwzaal rendement.' }); + $("#eq_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); + + // Default values + $("#type").val('All Grain'); + + $("#styleSelect").jqxDropDownList({ + placeHolder: "Kies bierstijl:", + theme: theme, + source: styleslist, + displayMember: "name", + width: 150, + height: 27, + dropDownWidth: 500, + dropDownHeight: 500, + renderer: function (index, label, value) { + var datarecord = styleslist.records[index]; + return datarecord.style_guide + " " + datarecord.style_letter+ " " + datarecord.name; + } + }); + $("#styleSelect").on('select', function (event) { + if (event.args) { + var index = event.args.index; + var datarecord = styleslist.records[index]; + $("#st_name").val(datarecord.name); + $("#st_category").val(datarecord.category); + $("#st_category_number").val(datarecord.category_number); + $("#st_letter").val(datarecord.style_letter); + $("#st_guide").val(datarecord.style_guide); + $("#st_type").val(datarecord.type); + $("#st_og_min").val(datarecord.og_min); + $("#st_og_max").val(datarecord.og_max); + $("#st_fg_min").val(datarecord.fg_min); + $("#st_fg_max").val(datarecord.fg_max); + $("#st_ibu_min").val(datarecord.ibu_min); + $("#st_ibu_max").val(datarecord.ibu_max); + $("#st_color_min").val(datarecord.color_min); + $("#st_color_max").val(datarecord.color_max); + $("#st_carb_min").val(datarecord.carb_min); + $("#st_carb_max").val(datarecord.carb_max); + $("#st_abv_min").val(datarecord.abv_min); + $("#st_abv_max").val(datarecord.abv_max); + $("#st_notes").val(datarecord.notes); + $("#st_profile").val(datarecord.profile); + $("#st_ingredients").val(datarecord.ingredients); + $("#st_examples").val(datarecord.examples); + } + }); + + // Equipemnt dropdown list + $("#equipmentSelect").jqxDropDownList({ + placeHolder: "Kies apparatuur:", + theme: theme, + source: equipmentlist, + displayMember: "name", + width: 150, + height: 27, + dropDownWidth: 300, + renderer: function (index, label, value) { + var datarecord = equipmentlist.records[index]; + return datarecord.batch_size + " liter " + datarecord.name; + } + }); + $("#equipmentSelect").on('select', function (event) { + if (event.args) { + var index = event.args.index; + var datarecord = equipmentlist.records[index]; + $("#eq_name").val(datarecord.name); + $("#eq_boil_size").val(datarecord.boil_size); + $("#eq_batch_size").val(datarecord.batch_size); + $("#eq_tun_volume").val(datarecord.tun_volume); + $("#eq_tun_weight").val(datarecord.tun_weight); + $("#eq_tun_specific_heat").val(datarecord.tun_specific_heat); + $("#eq_tun_material").val(datarecord.tun_material); + $("#eq_tun_height").val(datarecord.tun_height); + $("#eq_top_up_water").val(datarecord.top_up_water); + $("#eq_trub_chiller_loss").val(datarecord.trub_chiller_loss); + $("#eq_evap_rate").val(datarecord.evap_rate); + $("#eq_boil_time").val(datarecord.boil_time); + $("#eq_calc_boil_volume").val(datarecord.calc_boil_volume); + $("#eq_top_up_kettle").val(datarecord.top_up_kettle); + $("#eq_hop_utilization").val(datarecord.hop_utilization); + $("#eq_notes").val(datarecord.notes); + $("#eq_lauter_volume").val(datarecord.lauter_volume); + $("#eq_lauter_height").val(datarecord.lauter_height); + $("#eq_lauter_deadspace").val(datarecord.lauter_deadspace); + $("#eq_kettle_volume").val(datarecord.kettle_volume); + $("#eq_kettle_height").val(datarecord.kettle_height); + $("#eq_mash_volume").val(datarecord.mash_volume); + $("#eq_mash_max").val(datarecord.mash_max); + $("#eq_efficiency").val(datarecord.efficiency); + } + }); //Creating wizard module var wizard = (function () { @@ -38,13 +204,25 @@ //Adding event listeners var _addHandlers = function () { $('#name').on('change', function (event) { wizard.validate(true); }); + $('#code').on('change', function (event) { wizard.validate(true); }); + $('#type').on('change', function (event) { wizard.validate(true); }); + $('#styleSelect').on('change', function (event) { wizard.validate(true); }); + $('#equipmentSelect').on('change', function (event) { wizard.validate(true); }); $('#nextButtonCompleted').click(function () { - console.log("insert start"); + var d = new Date(); + var m = d.getMonth() + 1; + var b = d.getFullYear() + '-'; + if (m < 10) + b = b + '0'; + b = b + m + '-'; + if (d.getDate() < 10) + b = b + '0'; + b = b + d.getDate(); var newrow = { record: -1, name: $("#name").val(), code: $("#code").val(), - birth: $("#birth").val(), + birth: b, stage: 'Plan', notes: $("#notes").val(), log_brew: false, @@ -55,36 +233,36 @@ eq_boil_size: parseFloat($("#eq_boil_size").jqxNumberInput('decimal')), eq_batch_size: parseFloat($("#eq_batch_size").jqxNumberInput('decimal')), eq_tun_volume: parseFloat($("#eq_tun_volume").jqxNumberInput('decimal')), - eq_tun_weight: dataRecord.eq_tun_weight, - eq_tun_specific_heat: dataRecord.eq_tun_specific_heat, - eq_tun_material: dataRecord.eq_tun_material, - eq_tun_height: dataRecord.eq_tun_height, + eq_tun_weight: parseFloat($("#eq_tun_weight").jqxNumberInput('decimal')), + eq_tun_specific_heat: parseFloat($("#eq_tun_specific_heat").jqxNumberInput('decimal')), + eq_tun_material: $("#eq_tun_material").val(), + eq_tun_height: parseFloat($("#eq_tun_height").jqxNumberInput('decimal')), eq_top_up_water: parseFloat($("#eq_top_up_water").jqxNumberInput('decimal')), eq_trub_chiller_loss: parseFloat($("#eq_trub_chiller_loss").jqxNumberInput('decimal')), eq_evap_rate: parseFloat($("#eq_evap_rate").jqxNumberInput('decimal')), eq_boil_time: parseFloat($("#eq_boil_time").jqxNumberInput('decimal')), - eq_calc_boil_volume: dataRecord.eq_calc_boil_volume, + eq_calc_boil_volume: $("#eq_calc_boil_volume").val(), eq_top_up_kettle: parseFloat($("#eq_top_up_kettle").jqxNumberInput('decimal')), eq_hop_utilization: parseFloat($("#eq_hop_utilization").jqxNumberInput('decimal')), eq_notes: $("#eq_notes").val(), eq_lauter_volume: parseFloat($("#eq_lauter_volume").jqxNumberInput('decimal')), - eq_lauter_height: dataRecord.eq_lauter_height, + eq_lauter_height: parseFloat($("#eq_lauter_height").jqxNumberInput('decimal')), eq_lauter_deadspace: parseFloat($("#eq_lauter_deadspace").jqxNumberInput('decimal')), eq_kettle_volume: parseFloat($("#eq_kettle_volume").jqxNumberInput('decimal')), - eq_kettle_height: dataRecord.eq_kettle_height, + eq_kettle_height: parseFloat($("#eq_kettle_height").jqxNumberInput('decimal')), eq_mash_volume: parseFloat($("#eq_mash_volume").jqxNumberInput('decimal')), eq_mash_max: parseFloat($("#eq_mash_max").jqxNumberInput('decimal')), eq_efficiency: parseFloat($("#eq_efficiency").jqxNumberInput('decimal')), brew_date_start: '', brew_mash_ph: 0.0, brew_mash_sg: 1.000, - brew_sparge_temperature: 85, - brew_sparge_volume: parseFloat($("#eq_mash_volume").jqxNumberInput('decimal')), + brew_sparge_temperature: 0, + brew_sparge_volume: 0, brew_sparge_ph: 0.0, - brew_preboil_volume: parseFloat($("#eq_boil_size").jqxNumberInput('decimal')), + brew_preboil_volume: 0, brew_preboil_sg: 1.000, brew_preboil_ph: 0.0, - brew_aboil_volume: parseFloat($("#eq_boil_size").jqxNumberInput('decimal')) * 0.9, + brew_aboil_volume: 0, brew_aboil_sg: 1.000, brew_aboil_ph: 0.0, brew_aboil_efficiency: 0, @@ -95,7 +273,7 @@ brew_whirlpool7: 0, brew_whirlpool6: 0, brew_whirlpool2: 0, - brew_fermenter_volume: parseFloat($("#eq_batch_size").jqxNumberInput('decimal')), + brew_fermenter_volume: 0, brew_fermenter_extrawater: 0, brew_aeration_time: 0, brew_aeration_speed: 0, @@ -156,11 +334,12 @@ st_abv_min: parseFloat($("#st_abv_min").jqxNumberInput('decimal')), st_abv_max: parseFloat($("#st_abv_max").jqxNumberInput('decimal')), type: $("#type").val(), - batch_size: 20.0, - boil_time: parseFloat($("#boil_time").jqxNumberInput('decimal')), - efficiency: parseFloat($("#efficiency").jqxNumberInput('decimal')), - est_og: parseFloat($("#est_og").jqxNumberInput('decimal')), - est_fg: 1.000, + batch_size: parseFloat($("#eq_batch_size").jqxNumberInput('decimal')), + boil_size: parseFloat($("#eq_boil_size").jqxNumberInput('decimal')), + boil_time: parseFloat($("#eq_boil_time").jqxNumberInput('decimal')), + efficiency: parseFloat($("#eq_efficiency").jqxNumberInput('decimal')), + est_og: 0.000, + est_fg: 0.000, est_color: 0, est_abv: 0.0, est_carb: 0.0, @@ -169,7 +348,14 @@ ibu_method: "Tinseth", mash_name: "", mash_ph: 5.4, - mash_sparge_temp: 78.0 + sparge_temp: 78.0, + sparge_volume: parseFloat($("#eq_boil_size").jqxNumberInput('decimal')) / 2, + sparge_ph: 5.8, + sparge_source: 'Bron 1', + sparge_acid_type: 'Melkzuur', + sparge_acid_perc: 80, + sparge_acid_amount: 0, + calc_acid: true }; var data = "insert=true&return=" + my_return + "&" + $.param(newrow); $.ajax({ @@ -210,6 +396,8 @@ $('#nextButtonBase').jqxButton({ theme: theme, width: 150 }); $('#nextButtonStyle').jqxButton({ theme: theme, width: 150}); $('#backButtonStyle').jqxButton({ theme: theme, width: 150}); + $('#nextButtonEq').jqxButton({ theme: theme, width: 150}); + $('#backButtonEq').jqxButton({ theme: theme, width: 150}); $('#nextButtonCompleted').jqxButton({ theme: theme, width: 150}); $('#backButtonCompleted').jqxButton({ theme: theme, width: 150}); _addHandlers(); @@ -222,16 +410,24 @@ if (!this.firstTab(notify)) { $('#jqxTabs').jqxTabs('disableAt', 1); $('#jqxTabs').jqxTabs('disableAt', 2); + $('#jqxTabs').jqxTabs('disableAt', 3); return; } else { $('#jqxTabs').jqxTabs('enableAt', 1); } if (!this.secondTab(notify)) { $('#jqxTabs').jqxTabs('disableAt', 2); + $('#jqxTabs').jqxTabs('disableAt', 3); return; } else { $('#jqxTabs').jqxTabs('enableAt', 2); } + if (!this.thirdTab(notify)) { + $('#jqxTabs').jqxTabs('disableAt', 3); + return; + } else { + $('#jqxTabs').jqxTabs('enableAt', 3); + } }, //Displaying message to the user @@ -247,21 +443,14 @@ //Validating the first tab firstTab: function (notify) { - var name = $('#name').val(), - message = ''; + var name = $('#name').val(), code = $('#code').val(), message = ''; if (name.length < 3) { - message += 'Je moet een recept naam invullen. <br />'; + message += 'Je moet een brouw project naam invullen. <br />'; } - // Check if name already exists. - //if ((boil_time < 4) || (boil_time > 360)) { - // message += 'De kooktijd moet tussen 4 en 360 minuten zijn. <br />'; - //} - //if ((est_og < 1.010) || (est_og > 1.200)) { - // message += 'Het OG moet tussen 1.010 en 1.500 zijn. <br />'; - //} - //if ((efficiency < 35) || (efficiency > 95)) { - // message += 'Het brouwzaal rendement moet tussen 35 en 95 zijn. <br />'; - //} + if (code.length < 3) { + message += 'Je moet een brouw project code invullen. <br />'; + } + // Check if code already exists. if (message !== '') { if (notify) { this.showHint(message, '#hintBase'); @@ -287,6 +476,23 @@ } this.showHint('Ok, je mag doorgaan.', '#hintStyle'); return true; + }, + + //Validating the third tab + thirdTab: function (notify) { + var equipsel = $('#equipmentSelect').val(), + message = ''; + if (equipsel.length < 3) { + message += 'Je moet een brouw installatie kiezen. <br />'; + } + if (message !== '') { + if (notify) { + this.showHint(message, '#hintEq'); + } + return false; + } + this.showHint('Ok, je mag doorgaan.', '#hintEq'); + return true; } } } ());
--- a/www/prod_edit.php Thu Jan 03 14:21:35 2019 +0100 +++ b/www/prod_edit.php Thu Jan 03 20:56:47 2019 +0100 @@ -30,7 +30,7 @@ <td style="vertical-align: top; float: right; padding: 3px;">Brouw code:</td> <td align="left" style="vertical-align: top; padding: 3px;"><input id="code" /></td> <td style="vertical-align: top; float: right; padding: 3px;">Start planning:</td> - <td align="left" style="vertical-align: top;"><div id="birth"></div></td> + <td align="left" style="vertical-align: top;"><input readonly="1" id="birth" /></td> <td style="vertical-align: top; float: right; padding: 3px;">Brouw fase:</td> <td align="left" style="vertical-align: top; padding: 3px;"><input id="stage" readonly /></td> </tr>
--- a/www/prod_new.php Thu Jan 03 14:21:35 2019 +0100 +++ b/www/prod_new.php Thu Jan 03 20:56:47 2019 +0100 @@ -6,6 +6,7 @@ <div id='jqxTabs'> <ul> <li style="margin-left: 30px;">Product basis</li> + <li>Bierstijl</li> <li>Apparatuur</li> <li>Overzicht</li> </ul> @@ -14,25 +15,19 @@ <div style="overflow: hidden;"> <table> <tr> - <td style="vertical-align: top; float: right; padding: 3px;">Recept naam:</td> + <td style="vertical-align: top; float: right; padding: 3px;">Brouw project naam:</td> <td align="left" colspan="3" style="vertical-align: top; padding: 3px;"><input id="name" /></td> </tr> <tr> + <td style="vertical-align: top; float: right; padding: 3px;">Brouw project code:</td> + <td align="left" style="vertical-align: top; padding: 3px;"><input id="code" /></td> + <td style="vertical-align: top; float: right; padding: 3px;">Brouw type:</td> + <td align="left" style="padding: 3px;"><div id="type"></div></td> + </tr> + <tr> <td style="vertical-align: top; float: right; padding: 3px;">Opmerkingen:</td> <td colspan="3" style="padding: 3px;"><textarea id="notes"></textarea></td> </tr> - <tr> - <td style="vertical-align: top; float: right; padding: 3px;">Brouw type:</td> - <td align="left" style="padding: 3px;"><div id="type"></div></td> - <td style="vertical-align: top; float: right; padding: 3px;">Start SG:</td> - <td style="padding: 3px;"><div style="float: left;" id="est_og"></div></td> - </tr> - <tr> - <td style="vertical-align: top; float: right; padding: 3px;">Kooktijd minuten:</td> - <td style="padding: 3px;"><div id="boil_time"></div></td> - <td style="vertical-align: top; float: right; padding: 3px;">Brouwzaal rendement:</td> - <td style="padding: 3px;"><div id="efficiency"></div></td> - </tr> </table> </div> <div id="hintBase" class="hint"> @@ -49,6 +44,58 @@ <td align="right" style="vertical-align: top;">Kies stijl:</td> <td align="left" colspan="3"><div id="styleSelect">Stylenlijst</div></td> </tr> + <tr> + <td align="right" style="vertical-align: top;">Bier stijl:</td> + <td align="left" style="vertical-align: top;"><input readonly="1" id="st_name" /></td> + <td align="right" style="vertical-align: top;">Bier groep:</td> + <td align="left" style="vertical-align: top;"><input readonly="1" id="st_letter" /></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Type:</td> + <td align="left" style="vertical-align: top;"><input readonly="1" id="st_type" /></td> + <td align="right" style="vertical-align: top;">Stijl gids:</td> + <td align="left" style="vertical-align: top;"><input readonly="1" id="st_guide" /></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Categorie:</td> + <td align="left" style="vertical-align: top;"><input readonly="1" id="st_category" /></td> + <td align="right" style="vertical-align: top;">Categorie nummer:</td> + <td align="left" style="vertical-align: top;"><input readonly="1" id="st_category_number" /></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Opmerkingen:</td> + <td align="left" colspan="3"><textarea readonly="1" id="st_notes"></textarea></td> + </tr> + <tr> + <td style="vertical-align: top; float: right; padding: 3px;">Begin SG:</td> + <td style="padding: 3px;"><div style="float: left;" id="st_og_min"></div><div style="float: left; margin-left: 5px;" id="st_og_max"></div></td> + <td style="vertical-align: top; float: right; padding: 3px;">Kleur EBC:</td> + <td style="padding: 3px;"><div style="float: left;" id="st_color_min"></div><div style="float: left; margin-left: 5px;" id="st_color_max"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right; padding: 3px;">Eind SG:</td> + <td style="padding: 3px;"><div style="float: left;" id="st_fg_min"></div><div style="float: left; margin-left: 5px;" id="st_fg_max"></div></td> + <td style="vertical-align: top; float: right; padding: 3px;">Koolzuur vol:</td> + <td style="padding: 3px;"><div style="float: left;" id="st_carb_min"></div><div style="float: left; margin-left: 5px;" id="st_carb_max"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right; padding: 3px;">Bitterheid IBU:</td> + <td style="padding: 3px;"><div style="float: left;" id="st_ibu_min"></div><div style="float: left; margin-left: 5px;" id="st_ibu_max"></div></td> + <td style="vertical-align: top; float: right; padding: 3px;">Alcohol vol%:</td> + <td style="padding: 3px;"><div style="float: left;" id="st_abv_min"></div><div style="float: left; margin-left: 5px;" id="st_abv_max"></div></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Profiel:</td> + <td align="left" colspan="3"><textarea readonly="1" id="st_profile"></textarea></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Ingredienten:</td> + <td align="left" colspan="3"><textarea readonly="1" id="st_ingredients"></textarea></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Voorbeelden:</td> + <td align="left" colspan="3"><textarea readonly="1" id="st_examples"></textarea></td> + </tr> </table> </div> <div class="hint" id="hintStyle"> @@ -60,10 +107,110 @@ </div> <div class="section"> + <div style="overflow: hidden;"> + <table> + <tr> + <td align="right" style="vertical-align: top;">Kies apparatuur:</td> + <td align="left" colspan="3"><div id="equipmentSelect">Apparatuur</div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Installatie naam:</td> + <td style="vertical-align: top;"><input readonly="1" id="eq_name" /></td> + <td style="vertical-align: top; float: right;">Bereken kook volume:</td> + <td><div id="eq_calc_boil_volume"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Opmerkingen:</td> + <td colspan="3"><textarea readonly="1" id="eq_notes"></textarea></td> + </tr> + <tr> + <th style="text-align: center;" colspan="2">Maischen</th> + <th style="text-align: center;" colspan="2">Koken</th> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Maischkuip volume l:</td> + <td><div id="eq_tun_volume"></div></td> + <td style="vertical-align: top; float: right;">Kookketel volume l:</td> + <td><div id="eq_kettle_volume"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Maischkuip hoogte cm:</td> + <td><div id="eq_tun_height"></div></td> + <td style="vertical-align: top; float: right;">Kookketel hoogte cm:</td> + <td><div id="eq_kettle_height"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Maischkuip gewicht kg:</td> + <td><div id="eq_tun_weight"></div></td> + <td style="vertical-align: top; float: right;">Kook volume l:</td> + <td><div id="eq_boil_size"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Maischkuip materiaal:</td> + <td align="left" style="vertical-align: top; padding: 3px;"><input readonly="1" id="eq_tun_material" /></td> + <td style="vertical-align: top; float: right;">Verdamping per uur l:</td> + <td><div id="eq_evap_rate"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Maischkuip specific heat:</td> + <td><div id="eq_tun_specific_heat"></div></td> + <td style="vertical-align: top; float: right;">Kooktijd in minuten:</td> + <td><div id="eq_boil_time"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Maischwater l:</td> + <td><div id="eq_mash_volume"></div></td> + <td style="vertical-align: top; float: right;">Extra water bij koken l:</td> + <td><div id="eq_top_up_kettle"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Maximum moutstort kg:</td> + <td><div id="eq_mash_max"></div></td> + <td style="vertical-align: top; float: right;">Hopfactor %:</td> + <td><div id="eq_hop_utilization"></div></td> + </tr> + <tr> + <th style="text-align: center;" colspan="2">Filteren</th> + <td style="vertical-align: top; float: right;">Volume eind koken l:</td> + <td><div id="eq_batch_size"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Filter volume l:</td> + <td><div id="eq_lauter_volume"></div></td> + <th style="text-align: center;" colspan="2">Koelen</th> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Filterkuip hoogte cm:</td> + <td><div id="eq_lauter_height"></div></td> + <td style="vertical-align: top; float: right;">Trub verlies kookketel l:</td> + <td><div id="eq_trub_chiller_loss"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Filterkuip verlies l:</td> + <td><div id="eq_lauter_deadspace"></div></td> + <td style="vertical-align: top; float: right;">Extra water in het gistvat l:</td> + <td><div id="eq_top_up_water"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Brouwzaalrendement %:</td> + <td><div id="eq_efficiency"></div></td> + <td colspan="2"></td> + </tr> + </table> + </div> + <div class="hint" id="hintEq"> + </div> + <div id="eqButtonsWrapper"> + <input type="button" value="Terug" class="backButton" id="backButtonEq" /> + <input type="button" value="Volgende" class="nextButton" id="nextButtonEq" /> + </div> + </div> + + <div class="section"> <div style="overflow: hidden; margin: 25px;"><br> <p>Alle nodige gegevens zijn compleet.</p> - <p> Zodra je de "Volgende" toets gebruikt zal een nieuw recept aangemaakt worden en<br> - wordt het recept in de database gezet. Hierna kun je dat recept bewerken.</p> + <p> Zodra je de "Volgende" toets gebruikt zal een nieuw brouw project aangemaakt worden en<br> + worden de gegevens in de database gezet. Hierna kun je dit brouw project bewerken.</p> </div> <div id="completedButtonsWrapper"> <input type="button" value="Terug" id="backButtonCompleted" class="backButton" />