updated admin page with more functionality, simplified burger menu and added many-to-many parent-child relationship
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
/**
|
||||
* Initializes the burger menu navigation
|
||||
* @param {Object} options - Configuration options
|
||||
* @param {boolean} options.includeHome - Whether to include Home menu item
|
||||
* @param {boolean} options.includeFeedings - Whether to include Feedings menu item
|
||||
* @param {boolean} options.includeDiapers - Whether to include Diapers menu item
|
||||
* @param {boolean} options.includeSleep - Whether to include Sleep menu item
|
||||
*/
|
||||
function initBurgerMenu(options = {}) {
|
||||
const {
|
||||
includeHome = true,
|
||||
includeFeedings = true,
|
||||
includeDiapers = true,
|
||||
includeSleep = true,
|
||||
} = options;
|
||||
|
||||
// Create burger menu HTML
|
||||
const burgerMenuHTML = `
|
||||
<div class="burger-menu" id="burgerMenu">
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
<div class="menu-backdrop" id="menuBackdrop"></div>
|
||||
|
||||
<div class="menu-overlay" id="menuOverlay">
|
||||
${includeHome ? '<div class="menu-item" id="menuHome">🏠 Home</div>' : ""}
|
||||
${includeDiapers ? '<div class="menu-item" id="menuDiapers">🧷 Diapers</div>' : ""}
|
||||
${includeFeedings ? '<div class="menu-item" id="menuFeedings">🍼 Feedings</div>' : ""}
|
||||
${includeSleep ? '<div class="menu-item" id="menuSleep">😴 Sleep</div>' : ""}
|
||||
<div class="menu-item" id="menuAddChild">👶 Add Child</div>
|
||||
<div class="menu-item logout" id="menuLogout">🚪 Logout</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
// Insert menu at the beginning of body
|
||||
document.body.insertAdjacentHTML("afterbegin", burgerMenuHTML);
|
||||
|
||||
// Get elements
|
||||
const burgerMenu = document.getElementById("burgerMenu");
|
||||
const menuOverlay = document.getElementById("menuOverlay");
|
||||
const menuBackdrop = document.getElementById("menuBackdrop");
|
||||
|
||||
// Toggle menu function
|
||||
function toggleMenu() {
|
||||
menuOverlay.classList.toggle("open");
|
||||
menuBackdrop.classList.toggle("open");
|
||||
}
|
||||
|
||||
// Close menu function
|
||||
function closeMenu() {
|
||||
menuOverlay.classList.remove("open");
|
||||
menuBackdrop.classList.remove("open");
|
||||
}
|
||||
|
||||
// Event listeners for menu toggle
|
||||
burgerMenu.addEventListener("click", toggleMenu);
|
||||
menuBackdrop.addEventListener("click", closeMenu);
|
||||
|
||||
// Navigation event listeners
|
||||
if (includeHome) {
|
||||
document.getElementById("menuHome")?.addEventListener("click", () => {
|
||||
window.location.href = "/";
|
||||
});
|
||||
}
|
||||
|
||||
document.getElementById("menuAddChild").addEventListener("click", () => {
|
||||
window.location.href = "/add-child.html";
|
||||
});
|
||||
|
||||
if (includeFeedings) {
|
||||
document.getElementById("menuFeedings")?.addEventListener("click", () => {
|
||||
window.location.href = "/feedings.html";
|
||||
});
|
||||
}
|
||||
|
||||
if (includeDiapers) {
|
||||
document.getElementById("menuDiapers")?.addEventListener("click", () => {
|
||||
window.location.href = "/diapers.html";
|
||||
});
|
||||
}
|
||||
|
||||
if (includeSleep) {
|
||||
document.getElementById("menuSleep")?.addEventListener("click", () => {
|
||||
window.location.href = "/sleep.html";
|
||||
});
|
||||
}
|
||||
|
||||
document.getElementById("menuLogout").addEventListener("click", () => {
|
||||
closeMenu();
|
||||
// Call the page's logout function if it exists, otherwise use default
|
||||
if (typeof logout === "function") {
|
||||
logout();
|
||||
} else {
|
||||
defaultLogout();
|
||||
}
|
||||
});
|
||||
|
||||
// Default logout function
|
||||
function defaultLogout() {
|
||||
localStorage.removeItem("access_token");
|
||||
localStorage.removeItem("username");
|
||||
window.location.href = "/login.html";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user