diff -r 74b442eae07b -r 4bb005694ce7 www/js/inv_waters.js --- a/www/js/inv_waters.js Sun Apr 26 10:36:38 2020 +0200 +++ b/www/js/inv_waters.js Fri May 01 11:56:24 2020 +0200 @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2014-2019 + * Copyright (C) 2014-2020 * * Michiel Broek * @@ -56,6 +56,7 @@ $('#magnesium').jqxTooltip({ content: 'Magnesium (Mg).' }); $('#ph').jqxTooltip({ content: 'De zuurgraad (pH).' }); $('#total_alkalinity').jqxTooltip({ content: 'Totale alkaliniteit. Berekend meteen de Bicarbonaat.' }); + $('#balance').jqxTooltip({ content: 'De ionen balans van het water. Ideaal minder dan 0.1 verschil tussen kationen en anionen. Meer dan 0.5 is een fout in het waterraport.' }); $('#inventory').jqxTooltip({ content: 'Voorraad in liters.' }); $('#cost').jqxTooltip({ content: 'Kostprijs per liter. 5 cijfers achter de comma zodat het kraanwater er ook in kan.' }); @@ -151,6 +152,7 @@ $('#magnesium').jqxNumberInput(Spin1dec); $('#ph').jqxNumberInput(Spin2pH); $('#total_alkalinity').jqxNumberInput(Spin1dec); + $('#balance').jqxNumberInput(Show2dec); $('#inventory').jqxNumberInput(Spin1dec); $('#cost').jqxNumberInput({inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 5, spinButtons: true }); @@ -231,19 +233,57 @@ $('#inventory').val(dataRecord.inventory); $('#cost').val(dataRecord.cost); // show the popup window. + calcBalance(); $('#popupWindow').jqxWindow('open'); } } ] }); + function calcBalance() { + var cations = (dataRecord.calcium / 20.039) + (dataRecord.magnesium / 12.1525) + (dataRecord.sodium / 22.989); + var anions = (dataRecord.bicarbonate / 61.016) + (dataRecord.sulfate / 48.031) + (dataRecord.chloride / 35.4527); + var balance = Round(cations - anions, 2); + $('#balance').val(balance); + if (balance <= 0.1 && balance >= -0.1) + $('#wr_balance').html(""); + else if (balance <= 0.5 && balance >= -0.5) + $('#wr_balance').html(""); + else + $('#wr_balance').html(""); + } + + $('#calcium').on('change', function(event) { + dataRecord.calcium = parseFloat(event.args.value); + calcBalance(); + }); + $('#magnesium').on('change', function(event) { + dataRecord.magnesium = parseFloat(event.args.value); + calcBalance(); + }); + $('#sodium').on('change', function(event) { + dataRecord.sodium = parseFloat(event.args.value); + calcBalance(); + }); $('#total_alkalinity').on('change', function(event) { + dataRecord.total_alkalinity = parseFloat(event.args.value); dataRecord.bicarbonate = parseFloat(event.args.value) * 1.22; $('#bicarbonate').val(dataRecord.bicarbonate); + calcBalance(); }); $('#bicarbonate').on('change', function(event) { + dataRecord.bicarbonate = parseFloat(event.args.value); dataRecord.total_alkalinity = parseFloat(event.args.value) * 50 / 61; $('#total_alkalinity').val(dataRecord.total_alkalinity); + calcBalance(); + }); + $('#sulfate').on('change', function(event) { + dataRecord.sulfate = parseFloat(event.args.value); + calcBalance(); + }); + $('#chloride').on('change', function(event) { + dataRecord.chloride = parseFloat(event.args.value); + calcBalance(); }); // initialize the popup window and buttons.