diff --git a/src/templates/index.html b/src/templates/index.html
index 5d9d04a..9f8934d 100644
--- a/src/templates/index.html
+++ b/src/templates/index.html
@@ -9,6 +9,9 @@
// JavaScript-Funktion, um die Produkte beim Laden der Seite zu holen
document.addEventListener('DOMContentLoaded', function() {
+ cleanUpLocalStorage();
+ restoreTableFromLocalStorage();
+ updateTotalNutrition();
fetch('/get_products')
.then(response => response.json())
.then(data => {
@@ -30,27 +33,77 @@
});
});
+ function restoreTableFromLocalStorage() {
+ let entries = JSON.parse(localStorage.getItem('nutritionEntries')) || [];
+ let oneHourAgo = new Date().getTime() - (60 * 60 * 1000);
+
+ entries = entries.filter(entry => entry.timestamp > oneHourAgo); // Entfernen alter Einträge
+ entries.forEach(entry => {
+ addToTable(entry.food, entry.weight, entry.nutritionData);
+ });
+
+ localStorage.setItem('nutritionEntries', JSON.stringify(entries)); // Aktualisiere localStorage
+ }
+
+
+ function addToTable(food, weight, nutritionData) {
+ const table = document.getElementById('nutrition-table');
+ const row = table.insertRow();
+
+ row.insertCell(0).innerHTML = food;
+ row.insertCell(1).innerHTML = weight;
+ row.insertCell(2).innerHTML = nutritionData.kcal;
+ row.insertCell(3).innerHTML = nutritionData.ew;
+ row.insertCell(4).innerHTML = nutritionData.fett;
+ row.insertCell(5).innerHTML = nutritionData.kh;
+ row.insertCell(6).innerHTML = nutritionData.bst;
+ row.insertCell(7).innerHTML = nutritionData.ca;
+ }
+
+
+ function cleanUpLocalStorage() {
+ let entries = JSON.parse(localStorage.getItem('nutritionEntries')) || [];
+ let oneHourAgo = new Date().getTime() - (60 * 60 * 1000);
+ entries = entries.filter(entry => entry.timestamp > oneHourAgo);
+ localStorage.setItem('nutritionEntries', JSON.stringify(entries));
+ }
+
function updateRemoveButtonState() {
- const selectedRows = document.querySelectorAll('#nutrition-table .selected').length;
- document.getElementById('remove-button').disabled = selectedRows === 0;
- }
+ const selectedRows = document.querySelectorAll('#nutrition-table .selected').length;
+ document.getElementById('remove-button').disabled = selectedRows === 0;
+ }
function removeSelectedRow() {
- const table = document.getElementById('nutrition-table');
- Array.from(table.rows).forEach(row => {
- if (row.classList.contains('selected')) {
- table.deleteRow(row.rowIndex);
- }
- });
- updateRemoveButtonState();
- updateTotalNutrition();
- }
+ const table = document.getElementById('nutrition-table');
+ Array.from(table.rows).forEach(row => {
+ if (row.classList.contains('selected')) {
+ let rowData = {
+ food: row.cells[0].innerText,
+ weight: row.cells[1].innerText,
+ // Weitere Daten bei Bedarf
+ };
- function updateRemoveButtonState() {
- const selectedRows = document.querySelectorAll('#nutrition-table .selected').length;
- document.getElementById('remove-button').disabled = selectedRows === 0;
- }
+ // Entfernen des Eintrags aus dem lokalen Speicher
+ removeEntryFromLocalStorage(rowData);
+
+ table.deleteRow(row.rowIndex);
+ }
+ });
+ updateRemoveButtonState();
+ updateTotalNutrition();
+ }
+
+ function removeEntryFromLocalStorage(rowData) {
+ let entries = JSON.parse(localStorage.getItem('nutritionEntries')) || [];
+ entries = entries.filter(entry => entry.food !== rowData.food || entry.weight !== rowData.weight);
+ localStorage.setItem('nutritionEntries', JSON.stringify(entries));
+ }
+
+ function updateRemoveButtonState() {
+ const selectedRows = document.querySelectorAll('#nutrition-table .selected').length;
+ document.getElementById('remove-button').disabled = selectedRows === 0;
+ }
// JavaScript-Funktionen
function updateButtonState() {
@@ -66,30 +119,36 @@
const weight = weightInput.value;
- fetch(`/add_lm?food=${encodeURIComponent(food)}&weight=${encodeURIComponent(weight)}`)
- .then(response => response.json())
- .then(data => {
- const table = document.getElementById('nutrition-table');
- const row = table.insertRow();
- // Fügt die einzelnen Nährwerte zur neuen Zeile hinzu
- row.insertCell(0).innerHTML = food;
- row.insertCell(1).innerHTML = weight;
- row.insertCell(2).innerHTML = data.kcal;
- row.insertCell(3).innerHTML = data.ew;
- row.insertCell(4).innerHTML = data.fett;
- row.insertCell(5).innerHTML = data.kh;
- row.insertCell(6).innerHTML = data.bst;
- row.insertCell(7).innerHTML = data.ca;
+ fetch(`/add_lm?food=${encodeURIComponent(food)}&weight=${encodeURIComponent(weight)}`)
+ .then(response => response.json())
+ .then(data => {
+ const table = document.getElementById('nutrition-table');
+ const row = table.insertRow();
+ // Fügt die einzelnen Nährwerte zur neuen Zeile hinzu
+ row.insertCell(0).innerHTML = food;
+ row.insertCell(1).innerHTML = weight;
+ row.insertCell(2).innerHTML = data.kcal;
+ row.insertCell(3).innerHTML = data.ew;
+ row.insertCell(4).innerHTML = data.fett;
+ row.insertCell(5).innerHTML = data.kh;
+ row.insertCell(6).innerHTML = data.bst;
+ row.insertCell(7).innerHTML = data.ca;
- foodInput.value = ''; // Zurücksetzen des Lebensmittel-Eingabefeldes
- weightInput.value = ''; // Zurücksetzen des Gewicht-Eingabefeldes
- document.getElementById('submit-button').disabled = true; // Deaktivieren des Hinzufügen-Buttons
+ foodInput.value = ''; // Zurücksetzen des Lebensmittel-Eingabefeldes
+ weightInput.value = ''; // Zurücksetzen des Gewicht-Eingabefeldes
+ document.getElementById('submit-button').disabled = true; // Deaktivieren des Hinzufügen-Buttons
- updateTotalNutrition();
- })
- .catch(error => console.error('Fehler:', error));
+ updateTotalNutrition();
+ saveToLocalStorage(food, weight, data);
+ })
+ .catch(error => console.error('Fehler:', error));
+ }
-}
+ function saveToLocalStorage(food, weight, nutritionData) {
+ let entries = JSON.parse(localStorage.getItem('nutritionEntries')) || [];
+ entries.push({ food, weight, nutritionData, timestamp: new Date().getTime() });
+ localStorage.setItem('nutritionEntries', JSON.stringify(entries));
+ }
function updateTotalNutrition() {
let totalWeight = 0, totalKcal = 0, totalEw = 0, totalFett = 0, totalKh = 0, totalBst = 0, totalCa = 0;