I'm trying to create a simple webapp to track daily foods I consume and fail to deliver the simple task of displaying the items from the google spreadsheet on the webapp.
On the code.js server-side everything's seem to work well and the return statement variable is includes the required array data.
On the index.html client side, on the other hand, a null value to passed for a reason I can't find.
function doGet() {
return HtmlService.createHtmlOutputFromFile('Index')
.setTitle('Food Tracker') // Optional: Set a title for your web app page
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
function addEntry(foodItem, quantity) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DailyTrack");
sheet.appendRow([foodItem, new Date(), quantity]);
}
function submitEntry() {
var foodItem = document.getElementsByName("foodItem")[0].value;
var quantity = document.getElementsByName("quantity")[0].value;
google.script.run
.withSuccessHandler(function() {
displaySuccessMessage(foodItem,quantity);
})
.addEntry(foodItem, quantity);
}
// Function to display success message
function displaySuccessMessage(foodItem, quantity) {
var messageContainer = document.getElementById('messageContainer');
// Create a new div for the message
var messageDiv = document.createElement('div');
messageDiv.textContent = 'You have consumed ' + quantity + ' ' + foodItem;
messageDiv.style.color = 'red'; // You can add more styling as needed
// Append the new message div to the container
messageContainer.appendChild(messageDiv);
}
function getEntries() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DailyTrack");
return sheet.getDataRange().getValues();
}
function getFoodItems() {
var sheet = SpreadsheetApp.openById('1a04dsi8NSHP6QQY4ieidGlMoNQqINdBP6y_kPL-UGb8').getSheetByName('DataSets');
var data = sheet.getDataRange().getValues();
return data.map(function(row) { return row[0]; }); // Assuming items are in the first column
}
function getTodaysEntries() {
try {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DailyTrack");
const today = new Date();
today.setHours(0, 0, 0, 0); // Set to start of the day
Logger.log("Today's Date (Start of Day): " + today);
const data = sheet.getDataRange().getValues();
Logger.log("Data from Spreadsheet: ");
Logger.log(data);
const filteredData = data.filter(row => {
const entryDate = new Date(row[1]); // Assuming date is in the second column
entryDate.setHours(0, 0, 0, 0);
Logger.log("Entry Date: " + entryDate + ", Today: " + today + ", Comparison Result: " + (entryDate.getTime() === today.getTime()));
return entryDate.getTime() === today.getTime();
});
Logger.log("Filtered Data (Today's Entries): ");
Logger.log(filteredData);
return filteredData;
} catch (error) {
Logger.log('Error in getTodaysEntries: ' + error.toString());
throw new Error('Error fetching entries.');
}
}