Added fermentables Moment dropdown list. Added fermentables adjust to 100% logic.

Fri, 07 Dec 2018 20:58:23 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 07 Dec 2018 20:58:23 +0100
changeset 127
6d5e215d77d2
parent 126
9999b3ce98cb
child 128
4d188d216c88

Added fermentables Moment dropdown list. Added fermentables adjust to 100% logic.

www/js/rec_edit.js file | annotate | diff | comparison | revisions
--- a/www/js/rec_edit.js	Thu Dec 06 23:18:27 2018 +0100
+++ b/www/js/rec_edit.js	Fri Dec 07 20:58:23 2018 +0100
@@ -45,6 +45,7 @@
 $(document).ready(function () {
 
 	var	dataRecord = {};
+	var	to_100 = false;	// Fermentables adjust to 100%
 	var	preboil_sg = 0;
 	var	sugarsm = 0;	// Sugars after mash
 	var	sugarsf = 0;	// Sugars after boil
@@ -60,10 +61,13 @@
 		psugar = 0;
 		pcara = 0;
 		var colorw = 0;	// Colors working
+		var my_100 = false;
 
 		var rows = $('#fermentableGrid').jqxGrid('getrows');
 		for (var i = 0; i < rows.length; i++) {
 			var row = rows[i];
+			if (row.f_adjust_to_total_100)
+				my_100 = true;
 			if (row.f_type == "Sugar")
 				psugar += row.f_percentage;
 			if (row.f_type == "Crystal")
@@ -76,6 +80,9 @@
 			sugarsf += d;
 			colorw += row.f_amount * ebc_to_srm(row.f_color) / parseFloat($("#batch_size").jqxNumberInput('decimal')) * 8.34436;
 		}
+		if (to_100 != my_100)
+			console.log("change to_100 to:"+my_100);
+		to_100 = my_100;
 		$('#est_og').val(estimate_sg(sugarsf, parseFloat($("#batch_size").jqxNumberInput('decimal'))));
 		preboil_sg = estimate_sg(sugarsm, parseFloat($("#boil_size").jqxNumberInput('decimal')));
 		$('#est_color').val(kw_to_ebc($("#color_method").val(), colorw));
@@ -493,9 +500,14 @@
 				  }
 			       	},
 				{ text: 'Type', editable: false, width: 100, datafield: 'f_type' },
-				{ text: 'Moment', editable: false, width: 100, datafield: 'f_added' },
+				{ text: 'Moment', width: 110, align: 'center', cellsalign: 'center', datafield: 'f_added', columntype: 'dropdownlist',
+				  createeditor: function (row, column, editor) {
+					var srcAdded = [ "Mash", "Boil", "Fermentation", "Lagering", "Bottle" ];
+					editor.jqxDropDownList({ autoDropDownHeight: true, source: srcAdded });
+				  }
+				},
 				{ text: 'Opbrengst', editable: false, datafield: 'f_yield', width: 80, align: 'right', cellsalign: 'right', cellsformat: 'p1' },
-				{ text: 'Gewicht', datafield: 'f_amount', width: 110, align: 'right', cellsalign: 'right', cellsformat: 'f3',
+				{ text: 'Gewicht Kg', datafield: 'f_amount', width: 110, align: 'right', cellsalign: 'right', cellsformat: 'f3',
 				  columntype: 'numberinput',
 				  validation: function (cell, value) {
 					// Maximum weight is the batch_size, just a simple check.
@@ -530,13 +542,10 @@
 							return oldvalue;
 						}
 						var diff = newvalue - oldvalue;
-						var to_100 = false;
 						var tw = 0;	// total weight
 						for (i = 0; i < rowscount; i++) {
 							var rowdata = $("#fermentableGrid").jqxGrid('getrowdata', i);
 							tw += rowdata.f_amount;
-							if (rowdata.f_adjust_to_total_100)
-								to_100 = true;
 						}
 						if (to_100) {
 							// Adjust this row and the 100% row.
@@ -563,19 +572,31 @@
 								}
 							}
 						}
+//						$('#fermentableGrid').jqxGrid('sortby', 'f_amount', 'desc');
+						//$('#fermentableGrid').jqxGrid('render');
 //						console.log("diff:"+diff+" len:"+rowscount+" to100:"+to_100+" tw:"+tw);
 					}
-					// return newvalue;
 				  }
 				},
-				{ text: '100%', datafield: 'f_adjust_to_total_100', columntype: 'checkbox', width: 80 }
+				{ text: '100%', align: 'center', datafield: 'f_adjust_to_total_100', columntype: 'checkbox', width: 80,
+			          cellvaluechanging: function (row, column, columntype, oldvalue, newvalue) {
+					if (to_100) {
+						var rowscount = $("#fermentableGrid").jqxGrid('getdatainformation').rowscount;
+						for (i = 0; i < rowscount; i++) {
+							if (i != row) {
+								var rowdata = $("#fermentableGrid").jqxGrid('getrowdata', i);
+								rowdata.f_adjust_to_total_100 = false;
+							}
+						}
+					}
+				  }
+			  	}
 			]
 		});
 		$("#fermentableGrid").on('cellendedit', function (event) {
 			var args = event.args;
 			console.log("Event Type: cellendedit, Column: " + args.datafield + ", Row: " + (args.rowindex) + ", Value: " + args.value);
-//			$('#fermentableGrid').jqxGrid('updatebounddata');
-			$('#fermentableGrid').jqxGrid('sortby', 'f_amount', 'desc');
+//			$('#fermentableGrid').jqxGrid('sortby', 'f_amount', 'desc');
 			calcFermentables();
 		});
 	};

mercurial