60 lines
2.1 KiB
JavaScript
60 lines
2.1 KiB
JavaScript
document.addEventListener('DOMContentLoaded', function() {
|
|
// Modal functions
|
|
window.openModal = function(modalId) {
|
|
const modal = document.getElementById(modalId);
|
|
if (modal) {
|
|
modal.classList.remove('hidden');
|
|
modal.classList.add('flex');
|
|
// Prevent body scrolling when modal is open
|
|
document.body.style.overflow = 'hidden';
|
|
}
|
|
};
|
|
|
|
window.closeModal = function(modalId) {
|
|
const modal = document.getElementById(modalId);
|
|
if (modal) {
|
|
modal.classList.remove('flex');
|
|
modal.classList.add('hidden');
|
|
// Restore body scrolling
|
|
document.body.style.overflow = 'auto';
|
|
}
|
|
};
|
|
|
|
// Close modal when clicking outside
|
|
const modals = document.querySelectorAll('.modal');
|
|
modals.forEach(modal => {
|
|
modal.addEventListener('click', function(event) {
|
|
if (event.target === this) {
|
|
closeModal(this.id);
|
|
}
|
|
});
|
|
});
|
|
|
|
// Handle edit modal
|
|
window.openEditModal = function(menuId) {
|
|
const menu = window.menuItems.find(m => m.id === parseInt(menuId));
|
|
if (menu) {
|
|
document.getElementById('edit_name').value = menu.name;
|
|
document.getElementById('edit_description').value = menu.description || '';
|
|
document.getElementById('edit_price').value = menu.price;
|
|
document.getElementById('edit_category_id').value = menu.category_id;
|
|
|
|
// Properly set checkbox state
|
|
const checkbox = document.getElementById('edit_is_available');
|
|
checkbox.checked = menu.is_available;
|
|
|
|
document.getElementById('editMenuForm').action = `/admin/menu/${menuId}`;
|
|
openModal('editMenuModal');
|
|
}
|
|
};
|
|
|
|
// Close modals with Escape key
|
|
document.addEventListener('keydown', function(event) {
|
|
if (event.key === 'Escape') {
|
|
const visibleModals = document.querySelectorAll('.modal.flex');
|
|
visibleModals.forEach(modal => {
|
|
closeModal(modal.id);
|
|
});
|
|
}
|
|
});
|
|
});
|