From c2a98cb1a6071b0029dc8dce27bdf25dbaadc49c Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Mon, 8 Jun 2020 11:15:51 +0200
Subject: [PATCH] Adding localstorage for calibration values

---
 roughage/templates/roughage/nutrition.html | 39 ++++++++++++++++++----
 1 file changed, 32 insertions(+), 7 deletions(-)

diff --git a/roughage/templates/roughage/nutrition.html b/roughage/templates/roughage/nutrition.html
index cc1806b0..e8893998 100755
--- a/roughage/templates/roughage/nutrition.html
+++ b/roughage/templates/roughage/nutrition.html
@@ -174,13 +174,13 @@
 	    {% for i in 4|get_range %}
 	    <tr>
 	    	<input type="hidden" name="optimizationInfo" value="" id="optimizationInfo_{{i}}"/>
-           <td><input type="date" class="form-control" name="observationDate_{{i}}" size="10" value=""></td>
-           <td><input type="number" class="form-control" name="observationHeight_{{i}}" size="10" value=""></td>
-           <td><input type="number" class="form-control" name="observationMSC_{{i}}" size="10" value=""></td>
-           <td><input type="number" class="form-control" name="observationFEm_{{i}}" size="10" value=""></td>
-           <td><input type="number" class="form-control" name="observationNDF_{{i}}" size="10" value=""></td>
-           <td><input type="number" class="form-control" name="observationINDF_{{i}}" size="10" value=""></td>
-           <td><input type="number" class="form-control" name="observationRawProtein_{{i}}" size="10" value=""></td>
+           <td><input type="date" class="form-control" name="observationDate_{{i}}" size="10" value="" onchange="storeLocalSettings({'observationDate_{{i}}':this.value});"></td>
+           <td><input type="number" class="form-control" name="observationHeight_{{i}}" size="10" value="" onchange="storeLocalSettings({'observationHeight_{{i}}':this.value});"></td>
+           <td><input type="number" class="form-control" name="observationMSC_{{i}}" size="10" value="" onchange="storeLocalSettings({'observationMSC_{{i}}':this.value});"></td>
+           <td><input type="number" class="form-control" name="observationFEm_{{i}}" size="10" value="" onchange="storeLocalSettings({'observationFEm_{{i}}':this.value});"></td>
+           <td><input type="number" class="form-control" name="observationNDF_{{i}}" size="10" value="" onchange="storeLocalSettings({'observationNDF_{{i}}':this.value});"></td>
+           <td><input type="number" class="form-control" name="observationINDF_{{i}}" size="10" value="" onchange="storeLocalSettings({'observationINDF_{{i}}':this.value});"></td>
+           <td><input type="number" class="form-control" name="observationRawProtein_{{i}}" size="10" value="" onchange="storeLocalSettings({'observationRawProtein_{{i}}':this.value});"></td>
         </tr>
         {% endfor %}
 
@@ -395,6 +395,31 @@
 		// Init form validation
 		loadFormDefinition("{{ form_id }}","/static/roughage/formdefinitions/");
 		loadFormDefinition("grassDrying","/static/roughage/formdefinitions/");
+		
+		// Load stored values for the calibration values
+		var calibrationFieldNames = [];
+		var s = "observation";
+		for(var i=0;i<4;i++)
+		{
+			var row = [
+				s + "Date_" + i, 
+				s + "Height_" + i, 
+				s + "MSC_" + i,
+				s + "FEm_" + i,
+				s + "NDF_" + i,
+				s + "INDF_" + i,
+				s + "RawProtein_" + i,
+				];	
+			calibrationFieldNames = calibrationFieldNames.concat(row);
+		}
+
+		var storedCalibrationValues = getLocalSettings(calibrationFieldNames, false);
+		var theForm = document.getElementById("{{form_id}}");
+		for(var key in storedCalibrationValues)
+		{
+			theForm[key].value = storedCalibrationValues[key];
+		}
+		//console.info(storedCalibrationValues);
 	});
 	
 	
-- 
GitLab