Finished bitterness and cl/so4 ratio calculations and design aids. Translated water error messages. Fixed recipes menu width.

Mon, 29 Apr 2019 17:10:38 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 29 Apr 2019 17:10:38 +0200
changeset 347
e6e7ec9e33e0
parent 346
01b393df529a
child 348
5fc0f4b42224

Finished bitterness and cl/so4 ratio calculations and design aids. Translated water error messages. Fixed recipes menu width.

www/includes/global.inc.php file | annotate | diff | comparison | revisions
www/js/prod_edit.js file | annotate | diff | comparison | revisions
www/js/rec_edit.js file | annotate | diff | comparison | revisions
www/prod_edit.php file | annotate | diff | comparison | revisions
www/rec_edit.php file | annotate | diff | comparison | revisions
--- a/www/includes/global.inc.php	Sat Apr 27 13:08:53 2019 +0200
+++ b/www/includes/global.inc.php	Mon Apr 29 17:10:38 2019 +0200
@@ -250,7 +250,7 @@
       </ul>
      </li>
      <li style='width: 80px;'>Recepten
-      <ul style='width: 150px;'>
+      <ul style='width: 200px;'>
        <li><img style='float: left; margin-right: 5px;' src='images/beerstyles.png' /><a href="rec_main.php">Recepten</a></li>
        <li><img style='float: left; margin-right: 5px;' src='images/insert-object.png' /><a href="rec_import.php">Import beerxml</a></li>
       </ul>
--- a/www/js/prod_edit.js	Sat Apr 27 13:08:53 2019 +0200
+++ b/www/js/prod_edit.js	Mon Apr 29 17:10:38 2019 +0200
@@ -1008,10 +1008,10 @@
 	}
 
 	function setRangeIndicator(ion, rangeCode) {
-		if (rangeCode == "low")
-			$("#wr_"+ion).html("<img src='images/dialog-error.png'><span style='font-size: 10px; font-style: italic;'>"+rangeCode + "</span>");
-		else if (rangeCode == "high")
-			$("#wr_"+ion).html("<img src='images/dialog-error.png'><span style='font-size: 10px; font-style: italic;'>"+rangeCode+"</span>");
+		if (rangeCode == "laag")
+			$("#wr_"+ion).html("<img src='images/dialog-error.png'><span style='vertical-align: top; font-size: 10px; font-style: italic;'>"+rangeCode + "</span>");
+		else if (rangeCode == "hoog")
+			$("#wr_"+ion).html("<img src='images/dialog-error.png'><span style='vertical-align: top; font-size: 10px; font-style: italic;'>"+rangeCode+"</span>");
 		else
 			$("#wr_"+ion).html("<img src='images/dialog-ok-apply.png'>");
 	}
@@ -1485,15 +1485,37 @@
 		// 2:1 Sulfate to Chroride IPA's, Pale Ales.
 		// 1:1 Sulfate to Chloride Balanced
 		// 1:2 Sulfate to Chloride Malty
+		// Note, values below are the other way, cl to so4!
+		// So: 0.5 is IPA's, Pale Ales.
+		//       1 Balanced
+		//       2 Malty.
 		$('#tgt_bu').val(Math.round(GetBUGU() * 100) / 100);
-		$('#tgt_cl_so4').val(Math.round(GetOptClSO4ratio() * 10) / 10); // Show real value too
+		// From brouwhulp.
+		if (GetBUGU() < 0.32)
+			$('#wr_bu').html("<span style='vertical-align: top; font-size: 14px; font-style: italic;'>Zeer zoet</span>");
+		else if (GetBUGU() < 0.43)
+			$('#wr_bu').html("<span style='vertical-align: top; font-size: 14px; font-style: italic;'>Zoet</span>");
+		else if (GetBUGU() < 0.52)
+			$('#wr_bu').html("<span style='vertical-align: top; font-size: 14px; font-style: italic;'>Evenwichtig</span>");
+		else if (GetBUGU() < 0.63)
+			$('#wr_bu').html("<span style='vertical-align: top; font-size: 14px; font-style: italic;'>Bitter</span>");
+		else
+			$('#wr_bu').html("<span style='vertical-align: top; font-size: 14px; font-style: italic;'>Zeer bitter</span>");
+		$('#tgt_cl_so4').val(Math.round(GetOptClSO4ratio() * 10) / 10);
 		if (sulfate > 0)
 			RA = chloride / sulfate;
 		else
 			RA = 10;
+		$('#got_cl_so4').val(Math.round(RA * 10) / 10);
 		var piCLSO4_low = 0.8 * GetOptClSO4ratio();
 		var piCLSO4_high = 1.2 * GetOptClSO4ratio();
-		console.log("low: "+piCLSO4_low+" val: "+RA+" high: "+piCLSO4_high);
+		var Res = 'normaal';
+		if (RA < piCLSO4_low)
+			Res = 'laag';
+		else if (RA > piCLSO4_high)
+			Res = 'hoog';
+		setRangeIndicator('cl_so4', Res);
+//		console.log("low: "+piCLSO4_low+" val: "+RA+" high: "+piCLSO4_high);
 
 		$('#wb_calcium').val(Math.round(calcium * 10) / 10);
 		$('#wb_magnesium').val(Math.round(magnesium * 10) / 10);
@@ -1503,38 +1525,44 @@
 		$('#wb_total_alkalinity').val(Math.round(total_alkalinity * 10) / 10);
 
 		if (calcium < 40) {
-			setRangeIndicator("calcium", "low");
+			setRangeIndicator("calcium", "laag");
 		} else if (calcium > 150) {
-			setRangeIndicator("calcium", "high");
+			setRangeIndicator("calcium", "hoog");
 		} else {
-			setRangeIndicator("calcium", "normal");
+			setRangeIndicator("calcium", "normaal");
 		}
 		if (magnesium >= 0 && magnesium <= 30) {
-			setRangeIndicator("magnesium", "normal");
+			setRangeIndicator("magnesium", "normaal");
 		} else {
-			setRangeIndicator("magnesium", "high");
+			setRangeIndicator("magnesium", "hoog");
 		}
 		if (sodium <= 150) {
-			setRangeIndicator("sodium", "normal");
-		} else {
-			setRangeIndicator("sodium", "high");
-		}
-		if (chloride <= 100) {
-			setRangeIndicator("chloride", "normal");
+			setRangeIndicator("sodium", "normaal");
 		} else {
-			setRangeIndicator("chloride", "high");
+			setRangeIndicator("sodium", "hoog");
 		}
-		if (sulfate <= 350) {
-			setRangeIndicator("sulfate", "normal");
+		// Both chloride and sulfate should be above 50 according to
+		// John Palmer. So the Cl/SO4 ratio calculation will work.
+		if (chloride <= 50) {
+			setRangeIndicator("chloride", "laag");
+		} else if (chloride <= 100) {
+			setRangeIndicator("chloride", "normaal");
 		} else {
-			setRangeIndicator("sulfate", "high");
+			setRangeIndicator("chloride", "hoog");
+		}
+		if (sulfate <= 50) {
+                        setRangeIndicator("sulfate", "laag");
+                } else if (sulfate <= 350) {
+			setRangeIndicator("sulfate", "normaal");
+		} else {
+			setRangeIndicator("sulfate", "hoog");
 		}
 		if (ph < 5.2) {
-			setRangeIndicator("ph", "low");
+			setRangeIndicator("ph", "laag");
 		} else if (ph > 5.6) {
-			setRangeIndicator("ph", "high");
+			setRangeIndicator("ph", "hoog");
 		} else {
-			setRangeIndicator("ph", "normal");
+			setRangeIndicator("ph", "normaal");
 		}
 		calcSparge();
 	}
@@ -4936,6 +4964,7 @@
 	// Tab 8, Water
 	$("#tgt_bu").jqxNumberInput( Show2wat );
 	$("#tgt_cl_so4").jqxNumberInput( Show1wat );
+	$("#got_cl_so4").jqxNumberInput( Show1wat );
 
 	// Water source 1
 	$("#w1_name").jqxDropDownList({
@@ -5043,9 +5072,9 @@
 	$("#wb_sodium").jqxNumberInput( Show1wat );
 
 	$("#wb_total_alkalinity").jqxNumberInput( Show1wat );
-	$("#wb_chloride").jqxTooltip({ content: 'De ideale hoeveelheid Chloride is lager dan 100.'});
+	$("#wb_chloride").jqxTooltip({ content: 'De ideale hoeveelheid Chloride is tussen 50 en 100.'});
 	$("#wb_chloride").jqxNumberInput( Show1wat );
-	$("#wb_sulfate").jqxTooltip({ content: 'De ideale hoeveelheid Sulfaat is lager dan 350.'});
+	$("#wb_sulfate").jqxTooltip({ content: 'De ideale hoeveelheid Sulfaat is tussen 50 en 350.'});
 	$("#wb_sulfate").jqxNumberInput( Show1wat );
 
 	$("#wb_ph").jqxNumberInput( Show1wat );
--- a/www/js/rec_edit.js	Sat Apr 27 13:08:53 2019 +0200
+++ b/www/js/rec_edit.js	Mon Apr 29 17:10:38 2019 +0200
@@ -536,10 +536,10 @@
 	}
 
 	function setRangeIndicator(ion, rangeCode) {
-		if (rangeCode == "low")
-			$("#wr_"+ion).html("<img src='images/dialog-error.png'><span style='font-size: 10px; font-style: italic;'>"+rangeCode + "</span>");
-		else if (rangeCode == "high")
-			$("#wr_"+ion).html("<img src='images/dialog-error.png'><span style='font-size: 10px; font-style: italic;'>"+rangeCode+"</span>");
+		if (rangeCode == "laag")
+			$("#wr_"+ion).html("<img src='images/dialog-error.png'><span style='vertical-align: top; font-size: 10px; font-style: italic;'>"+rangeCode + "</span>");
+		else if (rangeCode == "hoog")
+			$("#wr_"+ion).html("<img src='images/dialog-error.png'><span style='vertical-align: top; font-size: 10px; font-style: italic;'>"+rangeCode+"</span>");
 		else
 			$("#wr_"+ion).html("<img src='images/dialog-ok-apply.png'>");
 	}
@@ -1016,15 +1016,36 @@
 		// 2:1 Sulfate to Chroride IPA's, Pale Ales.
 		// 1:1 Sulfate to Chloride Balanced
 		// 1:2 Sulfate to Chloride Malty
+		// Note, values below are the other way, cl to so4!
+		// So: 0.5 is IPA's, Pale Ales.
+		//       1 Balanced
+		//       2 Malty.
 		$('#tgt_bu').val(Math.round(GetBUGU() * 100) / 100);
-		$('#tgt_cl_so4').val(Math.round(GetOptClSO4ratio() * 10) / 10);	// Show real value too
+		// From brouwhulp.
+		if (GetBUGU() < 0.32)
+			$('#wr_bu').html("<span style='vertical-align: top; font-size: 14px; font-style: italic;'>Zeer zoet</span>");
+		else if (GetBUGU() < 0.43)
+			$('#wr_bu').html("<span style='vertical-align: top; font-size: 14px; font-style: italic;'>Zoet</span>");
+		else if (GetBUGU() < 0.52)
+			$('#wr_bu').html("<span style='vertical-align: top; font-size: 14px; font-style: italic;'>Evenwichtig</span>");
+		else if (GetBUGU() < 0.63)
+			$('#wr_bu').html("<span style='vertical-align: top; font-size: 14px; font-style: italic;'>Bitter</span>");
+		else
+			$('#wr_bu').html("<span style='vertical-align: top; font-size: 14px; font-style: italic;'>Zeer bitter</span>");
+		$('#tgt_cl_so4').val(Math.round(GetOptClSO4ratio() * 10) / 10);
 		if (sulfate > 0)
 			RA = chloride / sulfate;
 		else
 			RA = 10;
+		$('#got_cl_so4').val(Math.round(RA * 10) / 10);
 		var piCLSO4_low = 0.8 * GetOptClSO4ratio();
 		var piCLSO4_high = 1.2 * GetOptClSO4ratio();
-		console.log("low: "+piCLSO4_low+" val: "+RA+" high: "+piCLSO4_high);
+		var Res = 'normaal';
+		if (RA < piCLSO4_low)
+			Res = 'laag';
+		else if (RA > piCLSO4_high)
+			Res = 'hoog';
+		setRangeIndicator('cl_so4', Res);
 
                 $('#wb_calcium').val(Math.round(calcium * 10) / 10);
                 $('#wb_magnesium').val(Math.round(magnesium * 10) / 10);
@@ -1034,38 +1055,44 @@
 		$('#wb_total_alkalinity').val(Math.round(total_alkalinity * 10) / 10);
 
                 if (calcium < 40) {
-			setRangeIndicator("calcium", "low");
+			setRangeIndicator("calcium", "laag");
 		} else if (calcium > 150) {
-			setRangeIndicator("calcium", "high");
+			setRangeIndicator("calcium", "hoog");
 		} else {
-			setRangeIndicator("calcium", "normal");
+			setRangeIndicator("calcium", "normaal");
 		}
                 if (magnesium >= 0 && magnesium <= 30) {
-			setRangeIndicator("magnesium", "normal");
+			setRangeIndicator("magnesium", "normaal");
 		} else {
-			setRangeIndicator("magnesium", "high");
+			setRangeIndicator("magnesium", "hoog");
 		}
                 if (sodium <= 150) {
-			setRangeIndicator("sodium", "normal");
-		} else {
-			setRangeIndicator("sodium", "high");
-		}
-                if (chloride <= 100) {
-			setRangeIndicator("chloride", "normal");
+			setRangeIndicator("sodium", "normaal");
 		} else {
-			setRangeIndicator("chloride", "high");
+			setRangeIndicator("sodium", "hoog");
 		}
-                if (sulfate <= 350) {
-			setRangeIndicator("sulfate", "normal");
+		// Both chloride and sulfate should be above 50 according to
+		// John Palmer. So the Cl/SO4 ratio calculation will work.
+		if (chloride <= 50) {
+			setRangeIndicator("chloride", "laag");
+		} else if (chloride <= 100) {
+			setRangeIndicator("chloride", "normaal");
 		} else {
-			setRangeIndicator("sulfate", "high");
+			setRangeIndicator("chloride", "hoog");
+		}
+		if (sulfate <= 50) {
+			setRangeIndicator("sulfate", "laag");
+                } else if (sulfate <= 350) {
+			setRangeIndicator("sulfate", "normaal");
+		} else {
+			setRangeIndicator("sulfate", "hoog");
 		}
 		if (ph < 5.2) {
-			setRangeIndicator("ph", "low");
+			setRangeIndicator("ph", "laag");
 		} else if (ph > 5.6) {
-			setRangeIndicator("ph", "high");
+			setRangeIndicator("ph", "hoog");
 		} else {
-			setRangeIndicator("ph", "normal");
+			setRangeIndicator("ph", "normaal");
 		}
 		calcSparge();
 	}
@@ -3498,6 +3525,7 @@
 	// Tab 7, Water
 	$("#tgt_bu").jqxNumberInput( Show2wat );
 	$("#tgt_cl_so4").jqxNumberInput( Show1wat );
+	$("#got_cl_so4").jqxNumberInput( Show1wat );
 
 	// Water source 1
 	$("#w1_name").jqxDropDownList({
@@ -3603,9 +3631,9 @@
 	$("#wb_magnesium").jqxNumberInput( Show1wat );
 	$("#wb_sodium").jqxTooltip({ content: 'De ideale hoeveelheid Natrium is lager dan 150.'});
 	$("#wb_sodium").jqxNumberInput( Show1wat );
-	$("#wb_chloride").jqxTooltip({ content: 'De ideale hoeveelheid Chloride is lager dan 100.'});
+	$("#wb_chloride").jqxTooltip({ content: 'De ideale hoeveelheid Chloride is tussen 50 en 100.'});
 	$("#wb_chloride").jqxNumberInput( Show1wat );
-	$("#wb_sulfate").jqxTooltip({ content: 'De ideale hoeveelheid Sulfaat is lager dan 350.'});
+	$("#wb_sulfate").jqxTooltip({ content: 'De ideale hoeveelheid Sulfaat is tussen 50 en 350.'});
 	$("#wb_sulfate").jqxNumberInput( Show1wat );
 	$("#wb_total_alkalinity").jqxNumberInput( Show1wat );
 	$("#wb_ph").jqxNumberInput( Show1wat );
--- a/www/prod_edit.php	Sat Apr 27 13:08:53 2019 +0200
+++ b/www/prod_edit.php	Mon Apr 29 17:10:38 2019 +0200
@@ -352,10 +352,18 @@
      <div style="overflow: hidden;">
       <table style="width: 100%;">
        <tr>
-        <td style="vertical-align: top; float: right; padding: 3px;">Bitterheidsindex:</td>
-        <td style="padding: 3px;" colspan="2"><div id="tgt_bu"></div></td>
-        <td style="vertical-align: top; float: right; padding: 3px;">Richtgetal Cl/SO4:</td>
-        <td style="padding: 3px;" colspan="2"><div id="tgt_cl_so4"></div></td>
+        <td colspan="6">
+         <table style="width: 100%;">
+          <tr>
+           <td style="vertical-align: top; float: right; padding: 3px;">Bitterheidsindex:</td>
+           <td style="padding: 3px;"><div style="float: left;" id="tgt_bu"></div><div style="float: left; margin-left: 10px;" id="wr_bu"></div></td>
+           <td style="vertical-align: top; float: right; padding: 3px;">Richtgetal Cl/SO4:</td>
+           <td style="padding: 3px;"><div id="tgt_cl_so4"></div></td>
+           <td style="vertical-align: top; float: right; padding: 3px;">Huidig Cl/SO4:</td>
+           <td style="padding: 3px;"><div style="float: left;" id="got_cl_so4"></div><div style="float: left; margin-left: 10px;" id="wr_cl_so4"></div></td>
+          </tr>
+         </table>
+        </td>
        </tr>
        <tr>
         <td></td>
--- a/www/rec_edit.php	Sat Apr 27 13:08:53 2019 +0200
+++ b/www/rec_edit.php	Mon Apr 29 17:10:38 2019 +0200
@@ -190,12 +190,18 @@
      <div> <!-- tab water -->
       <div style="overflow: hidden;">
        <table style="width: 100%;">
-        <tr>
-         <td style="vertical-align: top; float: right; padding: 3px;">Bitterheidsindex:</td>
-         <td style="padding: 3px;" colspan="2"><div id="tgt_bu"></div></td>
-         <td style="vertical-align: top; float: right; padding: 3px;">Richtgetal Cl/SO4:</td>
-         <td style="padding: 3px;" colspan="2"><div id="tgt_cl_so4"></div></td>
-        </tr>
+        <td colspan="6">
+         <table style="width: 100%;">
+          <tr>
+           <td style="vertical-align: top; float: right; padding: 3px;">Bitterheidsindex:</td>
+           <td style="padding: 3px;"><div style="float: left;" id="tgt_bu"></div><div style="float: left; margin-left: 10px;" id="wr_bu"></div></td>
+           <td style="vertical-align: top; float: right; padding: 3px;">Richtgetal Cl/SO4:</td>
+           <td style="padding: 3px;"><div id="tgt_cl_so4"></div></td>
+           <td style="vertical-align: top; float: right; padding: 3px;">Huidig Cl/SO4:</td>
+           <td style="padding: 3px;"><div style="float: left;" id="got_cl_so4"></div><div style="float: left; margin-left: 10px;" id="wr_cl_so4"></div></td>
+          </tr>
+         </table>
+        </td>
         <tr>
          <td></td>
          <td align="left" colspan="5">

mercurial