diff --git a/cydiapomonella/templates/cydiapomonella/index.html b/cydiapomonella/templates/cydiapomonella/index.html
index c53a2f2df99254a288c3441e9f662079678dcb3c..c3db141f2b6d39a42d43145443b9189453d4bb97 100644
--- a/cydiapomonella/templates/cydiapomonella/index.html
+++ b/cydiapomonella/templates/cydiapomonella/index.html
@@ -55,6 +55,8 @@
{% block customJS %}
{% csrf_token %}
<script type="text/javascript">
+ var resultHeatSumDailyData=[];
+
var CONST_TIMEZONE = 'Europe/Oslo';
var dateToday = new Date();
var dateYesterday = getAdjustDate(dateToday,1);
@@ -74,11 +76,16 @@
function funDtPickerHeatSum()
{
- var varWeatherId = $('#weatherStationId').find(':selected').val();
+ var varWeatherId = $('#weatherStationId').find(':selected').val();
+ var weatherStationIdParamJSON = getJsonData(varWeatherId);
+
if(typeof varWeatherId === "undefined")
{
varWeatherId = '$(#weatherStationId)';
}
+ else{
+ varWeatherId = getJsonData(varWeatherId).id;
+ }
var startDate = new Date($('#idTxtDateInput').val());
@@ -95,7 +102,8 @@
timeZone : CONST_TIMEZONE
}
- var jsonDailyData = getAjaxDailyData (jsonParamUrlDataDaily);
+ var jsonDailyData = getAjaxDailyData (jsonParamUrlDataDaily,weatherStationIdParamJSON);
+
}
@@ -113,26 +121,63 @@
*/
$('#idTxtDateInput').change(function(){
- funDtPickerHeatSum();
- });
+ funDtPickerHeatSum();
+ });
+ /* Convert string to JSON */
+ function getJsonData(strData)
+ {
+ return JSON.parse(strData);
+ }
/* On change of drop down for weather stations */
$('#weatherStationId').change(function(){
-
+
+
+ var jsonParamUrlDataHourly = '';
+ var varStationPwd = '';
var varWeatherId = $('#weatherStationId').find(':selected').val();
+
+
+ var weatherStationIdParamJSON = getJsonData(varWeatherId);
+
if(typeof varWeatherId === "undefined")
{
varWeatherId = '$(#weatherStationId)';
}
+ else
+ {
+ varWeatherId = getJsonData(varWeatherId).id;
+ }
+
+
var radioDaysValue = $("input[name='radioDays']:checked").val();
var dateStartDate = getAdjustDate(dateToday,radioDaysValue);
var strStartDate = JSON.stringify(dateStartDate).substring(1,11);
- var jsonParamUrlDataHourly = {
+ if(
+ varWeatherId === '536' ||
+ varWeatherId === '537'
+ )
+ {
+ var dateStartDate02 = getAdjustDate(dateToday, (parseInt(radioDaysValue) + 1));
+ var strStartDate02 = JSON.stringify(dateStartDate02).substring(1,11);
+
+ jsonParamUrlDataHourly = {
+ logInterval : '1h',
+ startDate : strStartDate02,
+ startTime : '12',
+ endDate : strEndDate,
+ endTime : '11',
+ timeZone : CONST_TIMEZONE
+ }
+ }
+ else
+ {
+ jsonParamUrlDataHourly = {
weatherStationId : varWeatherId,
elementMeasurementTypes : ['TM','RR'],
logInterval : '1h',
@@ -142,10 +187,13 @@
endTime : '11',
timeZone : CONST_TIMEZONE
}
+ }
+
+
- jsonHourlyData = getAjaxHourlyData(jsonParamUrlDataHourly);
+ jsonHourlyData = getAjaxHourlyData(jsonParamUrlDataHourly,weatherStationIdParamJSON);
//$('#idTxtDateInput').datepicker("setDate",dateStartDate);
@@ -165,68 +213,79 @@
/* Convert hourly data to daily data */
function setConvertHourlyData(data)
{
+ //resultHeatSumDailyData=[];
+ var tmElementMeasurementType='';
+ var tmSUM = 0.0;
+ var strDate01_heatSum = '';
+
var resultConvertData=[];
- var strDate01 = '';
- var strDate02 = '';
- var date01 = null;
- var data02 = null;
- var time19 = '';
- var time20 = '';
- var time21 = '';
- var time22 = '';
- var time23 = '';
- var rainFall = 0.0;
-
- var hourCount = 0;
- var tempval = '';
-
- strDate01 = JSON.stringify(getStrConvertedDate(data[0].timeMeasured)).substring(1,11);
-
+ var strDate01 = '';
+ var strDate02 = '';
+ var date01 = null;
+ var data02 = null;
+ var time19 = '';
+ var time20 = '';
+ var time21 = '';
+ var time22 = '';
+ var time23 = '';
+ var rainFall = 0.0;
+
+ var hourCount = 0;
+ var tempval = '';
+
+ strDate01 = JSON.stringify(getStrConvertedDate(data[0].timeMeasured)).substring(1,11);
+
+
date01 = new Date(strDate01);
date02 = new Date(strDate01);
-
for (var i=0; i<data.length; i++)
{
-
+
+ var radioDaysValue = $("input[name='radioDays']:checked").val();
+ var varDtData = new Date(getStrConvertedDate(data[i].timeMeasured).substring(0,11));
+ var varDtStartDate = new Date(getStrConvertedDate(getAdjustDate(new Date(),radioDaysValue)).substring(0,11));
- strDate02 = JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(1,11);
+ if (varDtData.getTime() >= varDtStartDate.getTime())
+ {
+ strDate02 = JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(1,11);
switch (JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(12,14)) {
case '19':
if(data[i].elementMeasurementTypeId==='TM')
{
- time19 = data[i].value;
+
+ time19 = parseFloat(data[i].value).toFixed(1);
tempval = data[i].elementMeasurementTypeId;
}
break;
case '20':
if(data[i].elementMeasurementTypeId==='TM')
{
- time20 = data[i].value;
+ time20 = parseFloat(data[i].value).toFixed(1);
tempval = data[i].elementMeasurementTypeId;
}
break;
case '21':
if(data[i].elementMeasurementTypeId==='TM')
{
- time21 = data[i].value;
+ time21 = parseFloat(data[i].value).toFixed(1);
tempval = data[i].elementMeasurementTypeId;
}
break;
case '22':
if(data[i].elementMeasurementTypeId==='TM')
{
- time22 = data[i].value;
+ time22 = parseFloat(data[i].value).toFixed(1);
tempval = data[i].elementMeasurementTypeId;
}
break;
case '23':
if(data[i].elementMeasurementTypeId==='TM')
{
- time23 = data[i].value;
+ time23 = parseFloat(data[i].value).toFixed(1);
tempval = data[i].elementMeasurementTypeId;
}
break;
@@ -236,28 +295,41 @@
}
-
if(strDate01.localeCompare(strDate02) !== 0)
{
-
-
+ if($.trim(strDate01_heatSum))
+ {
+ resultHeatSumDailyData.push({
+ 'elementMeasurementTypeId' : tmElementMeasurementType,
+ 'value' : (tmSUM/24),
+ 'timeMeasured' : strDate01_heatSum
+ });
+ }
var decimalPlace = 2;
- resultConvertData.push({
+ /* Avoiding empty data */
+ if($.trim(time19))
+ {
+ /* Creating JSON list for data table */
+ resultConvertData.push({
resultDate: strDate01,
- 'time19' : time19.toFixed(1),
- 'time20' : time20.toFixed(1), // getDecimalPlace(time20, decimalPlace),
- 'time21' : time21.toFixed(1),
- 'time22' : time22.toFixed(1),
- 'time23' : time23.toFixed(1),
+ 'time19' : time19,
+ 'time20' : time20, // getDecimalPlace(time20, decimalPlace),
+ 'time21' : time21,
+ 'time22' : time22,
+ 'time23' : time23,
'rainFall': rainFall.toFixed(1) //getDecimalPlace(rainFall,2)
});
+ }
+
strDate01 = JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(1,11);
rainFall = 0.0;
-
+ tmSUM = 0.0;
+ tmElementMeasurementType = '';
+ strDate01_heatSum = data[i].timeMeasured;
}
@@ -266,8 +338,20 @@
rainFall = rainFall + data[i].value;
}
+
+
+ /* HEAT SUM -- Daily TM */
+ if(data[i].elementMeasurementTypeId==='TM')
+ {
+ tmElementMeasurementType = data[i].elementMeasurementTypeId;
+ tmSUM = tmSUM + data[i].value;
+ }
+
+ } //---------------------------------
+
}
+
getWeatherDataTable(resultConvertData);
@@ -285,6 +369,7 @@
/* Calculate the daily TM value for HeatSum */
function getHeatSumValue(data)
{
+
var TM_BASE = 10;
var TM_Daily = 0.0;
var TM_SUM = 0.0;
@@ -292,35 +377,53 @@
var TM_NON_NEGATIVE = 0;
var counter = undefined;
-
- for (var i=0; i<data.length; i++)
+ console.log('I hv data');
+ if($.trim(data))
{
- var strStartDateDtPicker = JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(1,11);
-
- if(strStartDateDtPicker===$('#idTxtDateInput').val())
- {
- counter = 0;
- }
- if(typeof counter === "undefined")
- {
- break;
- }
- else
+
+ for (var i=0; i<data.length; i++)
{
- TM_Daily = data[counter].value;
- TM_Calc = TM_Daily - TM_BASE;
- TM_NON_NEGATIVE = TM_NON_NEGATIVE + ((TM_Calc<0) ? 0 : TM_Calc);
- var temp = ((TM_Calc<0) ? 0 : TM_Calc)
- ++counter;
+ var strStartDateDtPicker = JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(1,11);
+
+ if(strStartDateDtPicker===$('#idTxtDateInput').val())
+ {
+ counter = 0;
+ TM_NON_NEGATIVE = 0;
+ }
+ if(typeof counter === "undefined")
+ {
+
+ break;
+ }
+ else
+ {
+ TM_Daily = data[counter].value;
+ TM_Calc = TM_Daily - TM_BASE;
+ TM_NON_NEGATIVE = TM_NON_NEGATIVE + ((TM_Calc<0) ? 0 : TM_Calc);
+ //var temp = ((TM_Calc<0) ? 0 : TM_Calc)
+ ++counter;
+ }
+
}
- }
- $('#idSpanWeatherStationName').html($('#weatherStationId').find(':selected').text());
- $('#idSpanStartDate').html($('#idTxtDateInput').val());
- $('#idSpanEndDate').html(JSON.stringify(dateYesterday).substring(1,11));
- $('#idDivResultNonNegative').html(Math.round(TM_NON_NEGATIVE));
- $('#idSpanDateDifference').html(dateDifferenceInDays(new Date($('#idTxtDateInput').val()), new Date()));
-
+ $('#idSpanWeatherStationName').html($('#weatherStationId').find(':selected').text());
+ $('#idSpanStartDate').html($('#idTxtDateInput').val());
+ $('#idSpanEndDate').html(JSON.stringify(dateYesterday).substring(1,11));
+ $('#idDivResultNonNegative').html(Math.round(TM_NON_NEGATIVE));
+ $('#idSpanDateDifference').html(dateDifferenceInDays(new Date($('#idTxtDateInput').val()), new Date()));
+
+
+
+ }
+ else
+ {
+
+ $('#idSpanWeatherStationName').html('');
+ $('#idSpanStartDate').html('');
+ $('#idSpanEndDate').html('');
+ $('#idDivResultNonNegative').html('');
+ $('#idSpanDateDifference').html('');
+ }
}
@@ -405,12 +508,20 @@
/* Fetch hourly data through ajax call */
- function getAjaxHourlyData(jsonParamUrlDataHourly)
+ function getAjaxHourlyData(jsonParamUrlDataHourly,idJsonParam)
{
- var resultData = "";
-
+ var resultData = "";
+ var strUrl = "";
+ if($.trim(idJsonParam.pas))
+ {
+ strUrl = "https://weather.vips.nibio.no/rest/fruitwebdavis/id="+idJsonParam.id+"&pw="+idJsonParam.pas;
+ }
+ else
+ {
+ strUrl = "https://lmt.nibio.no/services/rest/vips/getdata/forecastfallback";
+ }
$.ajax({
- url : "https://lmt.nibio.no/services/rest/vips/getdata/forecastfallback",
+ url : strUrl,
type : 'GET',
cache : false,
data : jsonParamUrlDataHourly,
@@ -422,6 +533,11 @@
resultData = data;
setConvertHourlyData(resultData);
+ if($.trim(idJsonParam.pas))
+ {
+ getHeatSumValue(resultHeatSumDailyData);
+ }
+
}
else{
$('#idDivHeatSum').hide();
@@ -443,35 +559,29 @@
/* Fetch Daily data through ajax call */
- function getAjaxDailyData(jsonParamUrlDataHourly)
+ function getAjaxDailyData(jsonParamUrlDataHourly,idJsonParam)
{
var resultData = "";
-
- $.ajax({
- url : "https://lmt.nibio.no/services/rest/vips/getdata/forecastfallback",
- type : 'GET',
- cache : false,
- data : jsonParamUrlDataHourly,
- //async : false,
- success : function (data) {
- if($.trim(data))
+ $.ajax({
+ url : "https://lmt.nibio.no/services/rest/vips/getdata/forecastfallback",
+ type : 'GET',
+ cache : false,
+ data : jsonParamUrlDataHourly,
+ //async : false,
+ success : function (data) {
+ if($.trim(data))
+ {
+ resultData = data;
+ getHeatSumValue(resultData);
+ }
+ },
+ error : function(xhr, status, error)
{
-
- resultData = data;
- getHeatSumValue(resultData);
+ //TODO
}
- else{
- //TODO
- }
- },
- error : function(xhr, status, error)
- {
- //TODO
- }
- });
-
+ });
+
return resultData;
-
}
@@ -516,27 +626,29 @@
<div class="col-sm-4">
<select name="weatherStationName" id="weatherStationId" class="form-control">
<option value="-1">-- {% trans "Select weather station" %} --</option>
- <option value="11">Apelsvoll</option>
- <option value="12">Balestrand</option>
- <option value="13">Bø</option>
- <option value="86">Darbu</option>
- <option value="19">Gjerpen</option>
- <option value="21">Gvarv</option>
- <option value="22">Hjelmeland</option>
- <option value="25">Hønefoss</option>
- <option value="27">Kise</option>
- <option value="29">Landvik</option>
- <option value="30">Lier</option>
- <option value="65">Ljøsne</option>
- <option value="32">Lyngdal</option>
- <option value="35">Njøs</option>
- <option value="41">Rygge</option>
- <option value="42">Sande</option>
- <option value="131">Sandefjord</option>
- <option value="64">Slinde</option>
- <option value="47">Svelvik</option>
- <option value="91">Søve</option>
- <option value="61">Åsbakken</option>
+ <option value='{"id":"11","pas":""}'>Apelsvoll</option>
+ <option value='{"id":"12","pas":""}'>Balestrand</option>
+ <option value='{"id":"13","pas":""}'>Bø</option>
+ <option value='{"id":"86","pas":""}'>Darbu</option>
+ <option value='{"id":"19","pas":""}'>Gjerpen</option>
+ <option value='{"id":"21","pas":""}'>Gvarv</option>
+ <option value='{"id":"22","pas":""}'>Hjelmeland</option>
+ <option value='{"id":"25","pas":""}'>Hønefoss</option>
+ <option value='{"id":"27","pas":""}'>Kise</option>
+ <option value='{"id":"29","pas":""}'>Landvik</option>
+ <option value='{"id":"30","pas":""}'>Lier</option>
+ <option value='{"id":"65","pas":""}'>Ljøsne</option>
+ <option value='{"id":"32","pas":""}'>Lyngdal</option>
+ <option value='{"id":"35","pas":""}'>Njøs</option>
+ <option value='{"id":"41","pas":""}'>Rygge</option>
+ <option value='{"id":"42","pas":""}'>Sande</option>
+ <option value='{"id":"131","pas":""}'>Sandefjord</option>
+ <option value='{"id":"64","pas":""}'>Slinde</option>
+ <option value='{"id":"47","pas":""}'>Svelvik</option>
+ <option value='{"id":"91","pas":""}'>Søve</option>
+ <option value='{"id":"61","pas":""}'>Åsbakken</option>
+ <option value='{"id":"536","pas":"GF90esoleo"}'>Helgøy</option>
+ <option value='{"id":"537","pas":"Kgsf72k388"}'>Skiftun</option>
</select>
</div>
<div class="col-sm-6">