diff --git a/firmware/html/bottom.js b/firmware/html/bottom.js index af046d3..3eb1997 100644 --- a/firmware/html/bottom.js +++ b/firmware/html/bottom.js @@ -557,26 +557,51 @@ function fillTableFromJson() { function createJsonFromTable() { var tableRows = document.querySelectorAll("table tr"); var tcdata = []; + + // Speichert die Zeitangaben (hour, minute) in einem Array + var timeArr = []; for (var i = 1; i <= 10; i++) { - - var row = document.getElementById("hour" + i).parentNode; - var hour = parseInt(row.cells[0].childNodes[0].value); - var min = parseInt(row.cells[1].childNodes[0].value); - var ch1 = Math.round(parseInt(row.cells[2].childNodes[0].value) * 2.55); - var ch2 = Math.round(parseInt(row.cells[3].childNodes[0].value) * 2.55); - var ch3 = Math.round(parseInt(row.cells[4].childNodes[0].value) * 2.55); - var ch4 = Math.round(parseInt(row.cells[5].childNodes[0].value) * 2.55); - - tcdata.push({hour: hour, min: min, ch1: ch1, ch2: ch2, ch3: ch3, ch4: ch4}); + var row = document.getElementById("hour" + i).parentNode; + var hour = parseInt(row.cells[0].childNodes[0].value); + var min = parseInt(row.cells[1].childNodes[0].value); + timeArr.push(hour * 60 + min); // Speichert die Zeitangaben als Minuten seit Mitternacht + var ch1 = Math.round(parseInt(row.cells[2].childNodes[0].value) * 2.55); + var ch2 = Math.round(parseInt(row.cells[3].childNodes[0].value) * 2.55); + var ch3 = Math.round(parseInt(row.cells[4].childNodes[0].value) * 2.55); + var ch4 = Math.round(parseInt(row.cells[5].childNodes[0].value) * 2.55); + tcdata.push({hour: hour, min: min, ch1: ch1, ch2: ch2, ch3: ch3, ch4: ch4}); } + + // Überprüft, ob die Zeitangaben von datensatz i=0 bis i=9 aufsteigend sind + for (var i = 0; i < timeArr.length - 1; i++) { + if (timeArr[i] >= timeArr[i + 1]) { + console.log("Fehler: Zeitangaben sind nicht aufsteigend."); + return null; + } + } + var currentTime = {hour: new Date().getHours(), min: new Date().getMinutes()}; var jsonData = {tcdata: tcdata, currenttime: currentTime}; //console.log("jsonData = " + JSON.stringify(jsonData)); return JSON.stringify(jsonData); -} + } function sendDataToServer() { var jsonData = createJsonFromTable(); + + if (!jsonData) { + button.classList.remove("pure-button-primary"); + button.classList.add("error"); + button.innerHTML = "Error!"; + setTimeout(function () { + button.classList.remove("error"); + button.classList.add("pure-button-primary"); + button.innerHTML = "save"; + }, 2000); + console.log('Error while sending data to server.'); + return; + } + var urlEncodedData = encodeURIComponent(jsonData); var url = 'http://{{IP_ADDRESS}}/tc_data_blocks_store?data=' + urlEncodedData; var xhr = new XMLHttpRequest();