From b85b7957c60dbad87b9f04b583d15ae42f66f388 Mon Sep 17 00:00:00 2001 From: moerp Date: Thu, 4 Apr 2024 12:53:05 +0200 Subject: [PATCH] change --- src/templates/index.html | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/src/templates/index.html b/src/templates/index.html index 269cd52..032cac5 100644 --- a/src/templates/index.html +++ b/src/templates/index.html @@ -35,29 +35,39 @@ function recalculateTableBasedOnPortions() { const portions = parseInt(document.getElementById('portions').value, 10) || 1; const table = document.getElementById('nutrition-table'); - // Löschen aller Zeilen außer der Kopfzeile - while (table.rows.length > 1) { - table.deleteRow(1); - } - // Neu hinzufügen jedes Lebensmittels mit dem neuen Gewicht - let entries = JSON.parse(localStorage.getItem('nutritionEntries')) || []; - entries.forEach(entry => { - const newWeight = Math.ceil(entry.weight / portions); - fetchUpdatedNutrition(entry.food, newWeight); + Array.from(table.rows).slice(1).forEach((row, index) => { + // Wir gehen davon aus, dass die Einträge im localStorage gespeichert sind + let entries = JSON.parse(localStorage.getItem('nutritionEntries')) || []; + if (entries[index]) { + const entry = entries[index]; + const newWeight = Math.ceil(entry.weight / portions); + fetchUpdatedNutrition(entry.food, newWeight, row); + } }); } -function fetchUpdatedNutrition(food, weight) { +function fetchUpdatedNutrition(food, weight, rowToUpdate) { fetch(`/add_lm?food=${encodeURIComponent(food)}&weight=${encodeURIComponent(weight)}`) .then(response => response.json()) .then(data => { - addToTable(food, weight, data); // Angenommen, diese Funktion fügt die aktualisierten Daten in die Tabelle ein. - saveToLocalStorage(food, weight, data); // Speichert die aktualisierten Einträge zurück in den localStorage + // Direktes Aktualisieren der Zeile mit den neuen Daten + updateRowWithNewData(rowToUpdate, weight, data); updateTotalNutrition(); // Aktualisiert die Gesamtnährwerte }) .catch(error => console.error('Fehler:', error)); } +function updateRowWithNewData(row, weight, nutritionData) { + row.cells[1].innerText = weight; // Aktualisiere Gewicht + row.cells[2].innerText = nutritionData.kcal; + row.cells[3].innerText = nutritionData.ew; + row.cells[4].innerText = nutritionData.fett; + row.cells[5].innerText = nutritionData.kh; + row.cells[6].innerText = nutritionData.bst; + row.cells[7].innerText = nutritionData.ca; +} + + function restoreTableFromLocalStorage() { let entries = JSON.parse(localStorage.getItem('nutritionEntries')) || [];