fix: add missing JS files and logic
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
const foodDatabase = {
|
export const foodDatabase = {
|
||||||
// Fruits
|
// Fruits
|
||||||
'Frutas - Abacate': { calories: 96, protein: 1.2, fat: 8.4, carbs: 6, fiber: 6.3 },
|
'Frutas - Abacate': { calories: 96, protein: 1.2, fat: 8.4, carbs: 6, fiber: 6.3 },
|
||||||
'Frutas - Abacaxi': { calories: 48, protein: 0.9, fat: 0.1, carbs: 12.3, fiber: 1 },
|
'Frutas - Abacaxi': { calories: 48, protein: 0.9, fat: 0.1, carbs: 12.3, fiber: 1 },
|
||||||
|
|||||||
+5
-5
@@ -49,7 +49,7 @@
|
|||||||
<label for="gramAmount">Amount (grams)</label>
|
<label for="gramAmount">Amount (grams)</label>
|
||||||
<input type="number" id="gramAmount" min="1" step="1" value="100">
|
<input type="number" id="gramAmount" min="1" step="1" value="100">
|
||||||
</div>
|
</div>
|
||||||
<button class="add-btn" onclick="addFood()">Add Food</button>
|
<button class="add-btn" id="add-food-btn">Add Food</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="food-preview" class="add-food-form-item display-none">
|
<div id="food-preview" class="add-food-form-item display-none">
|
||||||
<p>Calories: 0 - Protein: 0 - Fat: 0 - Carbohydrates: 0</p>
|
<p>Calories: 0 - Protein: 0 - Fat: 0 - Carbohydrates: 0</p>
|
||||||
@@ -62,6 +62,7 @@
|
|||||||
<table class="food-table">
|
<table class="food-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
<th class="hidden-column">ID</th>
|
||||||
<th>Time</th>
|
<th>Time</th>
|
||||||
<th>Food</th>
|
<th>Food</th>
|
||||||
<th>Grams</th>
|
<th>Grams</th>
|
||||||
@@ -82,9 +83,9 @@
|
|||||||
|
|
||||||
<div class="calendar-section">
|
<div class="calendar-section">
|
||||||
<div class="calendar-header">
|
<div class="calendar-header">
|
||||||
<button class="calendar-nav" onclick="previousMonth()">‹</button>
|
<button class="calendar-nav" id="previous-month-btn">‹</button>
|
||||||
<div class="calendar-title" id="calendarTitle">Month Year</div>
|
<div class="calendar-title" id="calendarTitle">Month Year</div>
|
||||||
<button class="calendar-nav" onclick="nextMonth()">›</button>
|
<button class="calendar-nav" id="next-month-btn">›</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="calendar-grid" id="calendarGrid">
|
<div class="calendar-grid" id="calendarGrid">
|
||||||
<!-- Calendar will be generated here -->
|
<!-- Calendar will be generated here -->
|
||||||
@@ -92,7 +93,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="foodDatabase.js"></script>
|
<script type="module" src="index.js"></script>
|
||||||
<script src="index.js"></script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import { foodDatabase } from './foodDatabase.js';
|
||||||
|
|
||||||
// App state
|
// App state
|
||||||
let selectedDate = new Date().toISOString().split('T')[0];
|
let selectedDate = new Date().toISOString().split('T')[0];
|
||||||
let currentViewDate = new Date();
|
let currentViewDate = new Date();
|
||||||
@@ -60,6 +62,29 @@ function addEvents() {
|
|||||||
document.getElementById('gramAmount').addEventListener('change', () => {
|
document.getElementById('gramAmount').addEventListener('change', () => {
|
||||||
previewCalories();
|
previewCalories();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
document.getElementById('add-food-btn').addEventListener('click', () => {
|
||||||
|
addFood();
|
||||||
|
});
|
||||||
|
|
||||||
|
document.getElementById('next-month-btn').addEventListener('click', () => {
|
||||||
|
nextMonth();
|
||||||
|
});
|
||||||
|
|
||||||
|
document.getElementById('previous-month-btn').addEventListener('click', () => {
|
||||||
|
previousMonth();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function addDeleteEvents() {
|
||||||
|
const elements = document.getElementsByClassName('delete-food-entry');
|
||||||
|
Array.from(elements).forEach(el => {
|
||||||
|
el.addEventListener('click', (e) => {
|
||||||
|
const row = e.target.closest('tr');
|
||||||
|
const entryId = row.querySelector('.hidden-column').textContent;
|
||||||
|
deleteEntry(selectedDate, entryId);
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Populate food select dropdown
|
// Populate food select dropdown
|
||||||
@@ -180,25 +205,27 @@ function loadDayData(date) {
|
|||||||
dayData.forEach(entry => {
|
dayData.forEach(entry => {
|
||||||
const row = document.createElement('tr');
|
const row = document.createElement('tr');
|
||||||
row.innerHTML = `
|
row.innerHTML = `
|
||||||
|
<td class="hidden-column">${entry.id}</td>
|
||||||
<td>${entry.time}</td>
|
<td>${entry.time}</td>
|
||||||
<td>${entry.name.charAt(0).toUpperCase() + entry.name.slice(1)}</td>
|
<td>${entry.name}</td>
|
||||||
<td>${entry.grams}</td>
|
<td>${entry.grams}</td>
|
||||||
<td>${entry.calories}</td>
|
<td>${entry.calories}</td>
|
||||||
<td>${entry.protein}</td>
|
<td>${entry.protein}</td>
|
||||||
<td>${entry.fat}</td>
|
<td>${entry.fat}</td>
|
||||||
<td>${entry.carbs}</td>
|
<td>${entry.carbs}</td>
|
||||||
<td>${entry.fiber}</td>
|
<td>${entry.fiber}</td>
|
||||||
<td><button class="delete-btn" onclick="deleteEntry('${date}', ${entry.id})">Delete</button></td>
|
<td><button class="delete-btn delete-food-entry">Delete</button></td>
|
||||||
`;
|
`;
|
||||||
tbody.appendChild(row);
|
tbody.appendChild(row);
|
||||||
});
|
});
|
||||||
|
addDeleteEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete an entry
|
// Delete an entry
|
||||||
function deleteEntry(date, entryId) {
|
function deleteEntry(date, entryId) {
|
||||||
if (confirm('Are you sure you want to delete this entry?')) {
|
if (confirm('Are you sure you want to delete this entry?')) {
|
||||||
let dayData = getDayData(date);
|
let dayData = getDayData(date);
|
||||||
dayData = dayData.filter(entry => entry.id !== entryId);
|
dayData = dayData.filter(entry => entry.id !== parseInt(entryId));
|
||||||
saveDayData(date, dayData);
|
saveDayData(date, dayData);
|
||||||
loadDayData(selectedDate);
|
loadDayData(selectedDate);
|
||||||
renderCalendar();
|
renderCalendar();
|
||||||
|
|||||||
Reference in New Issue
Block a user