feat: adapt Meal Entries Update
This commit is contained in:
parent
d1b292e1f8
commit
0e9660566e
@ -180,6 +180,15 @@ const DataManager = (() => {
|
|||||||
return results;
|
return results;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a specific meal entry by date
|
||||||
|
* @param {string} dateString - Date in YYYY-MM-DD format
|
||||||
|
* @returns {Object|undefined} - Meal entry or undefined if not found
|
||||||
|
*/
|
||||||
|
const getMealByDate = (dateString) => {
|
||||||
|
return appData.meals.find(meal => meal.date === dateString);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a meal entry
|
* Add a meal entry
|
||||||
* @param {Object} entry - Meal entry {date, breakfast, lunch, dinner, otherMeals}
|
* @param {Object} entry - Meal entry {date, breakfast, lunch, dinner, otherMeals}
|
||||||
@ -417,6 +426,7 @@ const DataManager = (() => {
|
|||||||
addMeal,
|
addMeal,
|
||||||
deleteMeal,
|
deleteMeal,
|
||||||
getMeals,
|
getMeals,
|
||||||
|
getMealByDate,
|
||||||
exportData,
|
exportData,
|
||||||
importData,
|
importData,
|
||||||
exportCSV,
|
exportCSV,
|
||||||
|
|||||||
31
js/ui.js
31
js/ui.js
@ -34,6 +34,9 @@ const UI = (() => {
|
|||||||
|
|
||||||
// Initialize form submissions
|
// Initialize form submissions
|
||||||
initForms();
|
initForms();
|
||||||
|
|
||||||
|
// Populate meal form for the initial date (today)
|
||||||
|
populateMealFormForDate(document.getElementById('meal-date').value);
|
||||||
|
|
||||||
// Initialize data import/export
|
// Initialize data import/export
|
||||||
initDataManagement();
|
initDataManagement();
|
||||||
@ -67,11 +70,28 @@ const UI = (() => {
|
|||||||
// Activate the selected tab
|
// Activate the selected tab
|
||||||
tabs[tabKey].btn.classList.add('active');
|
tabs[tabKey].btn.classList.add('active');
|
||||||
tabs[tabKey].content.classList.add('active');
|
tabs[tabKey].content.classList.add('active');
|
||||||
|
|
||||||
|
// If switching to meals tab, ensure form is populated for the current meal date
|
||||||
|
if (tabKey === 'meals') {
|
||||||
|
populateMealFormForDate(document.getElementById('meal-date').value);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize form submissions
|
* Initialize form submissions
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* Populate the meal form fields based on data for the given date.
|
||||||
|
* @param {string} dateString - The date (YYYY-MM-DD) to load data for.
|
||||||
|
*/
|
||||||
|
const populateMealFormForDate = (dateString) => {
|
||||||
|
const mealData = DataManager.getMealByDate(dateString);
|
||||||
|
document.getElementById('breakfast').value = mealData?.breakfast || '';
|
||||||
|
document.getElementById('lunch').value = mealData?.lunch || '';
|
||||||
|
document.getElementById('dinner').value = mealData?.dinner || '';
|
||||||
|
document.getElementById('other-meals').value = mealData?.otherMeals || '';
|
||||||
|
};
|
||||||
|
|
||||||
const initForms = () => {
|
const initForms = () => {
|
||||||
// Weight form submission
|
// Weight form submission
|
||||||
forms.weight.addEventListener('submit', (e) => {
|
forms.weight.addEventListener('submit', (e) => {
|
||||||
@ -112,6 +132,10 @@ const UI = (() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Meal form submission
|
// Meal form submission
|
||||||
|
document.getElementById('meal-date').addEventListener('change', (e) => {
|
||||||
|
populateMealFormForDate(e.target.value);
|
||||||
|
});
|
||||||
|
|
||||||
forms.meal.addEventListener('submit', (e) => {
|
forms.meal.addEventListener('submit', (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
@ -127,11 +151,8 @@ const UI = (() => {
|
|||||||
if (DataManager.addMeal(mealEntry)) {
|
if (DataManager.addMeal(mealEntry)) {
|
||||||
Utils.showNotification('Meal entries saved successfully', 'success');
|
Utils.showNotification('Meal entries saved successfully', 'success');
|
||||||
|
|
||||||
// Reset form except for date
|
// Refresh form with current date's data (which might have just been updated)
|
||||||
document.getElementById('breakfast').value = '';
|
populateMealFormForDate(mealEntry.date);
|
||||||
document.getElementById('lunch').value = '';
|
|
||||||
document.getElementById('dinner').value = '';
|
|
||||||
document.getElementById('other-meals').value = '';
|
|
||||||
|
|
||||||
// Refresh table
|
// Refresh table
|
||||||
renderMealTable();
|
renderMealTable();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user