diff --git a/portal/setup-wizard.html b/portal/setup-wizard.html index 796c861..aabab50 100644 --- a/portal/setup-wizard.html +++ b/portal/setup-wizard.html @@ -917,19 +917,28 @@

Menu Summary

-
- Menu Name - -
-
- Menu Hours -
- - to - +
+
+ Menu Name + +
+
+ Menu Hours +
+ + to + +
+ Leave empty for all-day availability. You can create additional menus later in the Menu Builder. +
+
+
Categories @@ -3100,11 +3109,28 @@ } // In add-menu mode, hide menu name/hours/community meal (already set during menu creation) + const detectedMenus = config.extractedData.menus || []; if (config.menuId) { - document.getElementById('menuNameInput').parentElement.style.display = 'none'; - document.getElementById('menuStartTime').closest('.summary-stat').style.display = 'none'; + document.getElementById('singleMenuSection').style.display = 'none'; + document.getElementById('multiMenuSection').style.display = 'none'; document.getElementById('communityMealCard').style.display = 'none'; + } else if (detectedMenus.length > 1) { + // Multiple menus detected — show multi-menu UI + document.getElementById('singleMenuSection').style.display = 'none'; + document.getElementById('multiMenuSection').style.display = ''; + const menuListHtml = detectedMenus.map((m, i) => { + const menuItems = (config.extractedData.items || []).filter(item => item.menu === m.name); + return `
+ + + ${menuItems.length} items +
`; + }).join(''); + document.getElementById('multiMenuList').innerHTML = menuListHtml; } else { + // Single menu — show normal UI + document.getElementById('singleMenuSection').style.display = ''; + document.getElementById('multiMenuSection').style.display = 'none'; // Set default menu hours based on business hours (earliest open, latest close) const hoursSchedule = business.hoursSchedule || []; if (hoursSchedule.length > 0) { @@ -3145,31 +3171,47 @@ // In add-menu mode, skip menu name/hours/community meal — already set if (!config.menuId) { - const menuName = document.getElementById('menuNameInput').value.trim() || 'Main Menu'; - const menuStartTime = document.getElementById('menuStartTime')?.value || ''; - const menuEndTime = document.getElementById('menuEndTime')?.value || ''; + const detectedMenus = config.extractedData.menus || []; + if (detectedMenus.length > 1) { + // Multi-menu mode — collect selected menus + const selectedMenus = []; + detectedMenus.forEach((m, i) => { + const cb = document.getElementById(`menu_${i}`); + if (cb && cb.checked) selectedMenus.push(m.name); + }); + if (selectedMenus.length === 0) { + showToast('Please select at least one menu', 'error'); + return; + } + config.extractedData.selectedMenus = selectedMenus; + config.extractedData.menuName = selectedMenus[0]; // fallback + } else { + const menuName = document.getElementById('menuNameInput').value.trim() || 'Main Menu'; + const menuStartTime = document.getElementById('menuStartTime')?.value || ''; + const menuEndTime = document.getElementById('menuEndTime')?.value || ''; - // Validate menu hours fall within business operating hours - if (menuStartTime && menuEndTime) { - const hoursSchedule = config.extractedData.business.hoursSchedule || []; - if (hoursSchedule.length > 0) { - let earliestOpen = '23:59'; - let latestClose = '00:00'; - hoursSchedule.forEach(day => { - if (day.open && day.open < earliestOpen) earliestOpen = day.open; - if (day.close && day.close > latestClose) latestClose = day.close; - }); + // Validate menu hours fall within business operating hours + if (menuStartTime && menuEndTime) { + const hoursSchedule = config.extractedData.business.hoursSchedule || []; + if (hoursSchedule.length > 0) { + let earliestOpen = '23:59'; + let latestClose = '00:00'; + hoursSchedule.forEach(day => { + if (day.open && day.open < earliestOpen) earliestOpen = day.open; + if (day.close && day.close > latestClose) latestClose = day.close; + }); - if (menuStartTime < earliestOpen || menuEndTime > latestClose) { - showToast(`Menu hours must be within business operating hours (${earliestOpen} - ${latestClose})`, 'error'); - return; + if (menuStartTime < earliestOpen || menuEndTime > latestClose) { + showToast(`Menu hours must be within business operating hours (${earliestOpen} - ${latestClose})`, 'error'); + return; + } } } - } - config.extractedData.menuName = menuName; - config.extractedData.menuStartTime = menuStartTime; - config.extractedData.menuEndTime = menuEndTime; + config.extractedData.menuName = menuName; + config.extractedData.menuStartTime = menuStartTime; + config.extractedData.menuEndTime = menuEndTime; + } // Community meal participation type (1=provide meals, 2=food bank) const communityMealRadio = document.querySelector('input[name="communityMealType"]:checked');