// Global functions and event listeners document.addEventListener('DOMContentLoaded', function() { // Initialize tooltips const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')); tooltipTriggerList.map(function (tooltipTriggerEl) { return new bootstrap.Tooltip(tooltipTriggerEl); }); // Handle dark mode toggle if needed const darkModeToggle = document.getElementById('darkModeToggle'); if(darkModeToggle) { darkModeToggle.addEventListener('click', function() { document.documentElement.classList.toggle('dark'); }); } }); // API functions async function fetchAlarms() { try { const response = await fetch('/api/alarms'); return await response.json(); } catch (error) { console.error('Error fetching alarms:', error); return []; } } async function fetchCameras() { try { const response = await fetch('/api/cameras'); return await response.json(); } catch (error) { console.error('Error fetching cameras:', error); return []; } } // Utility functions function formatDateTime(dateString) { const options = { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' }; return new Date(dateString).toLocaleDateString('en-US', options); } function getPriorityColor(priority) { const colors = { 'critical': 'red', 'high': 'orange', 'medium': 'yellow', 'low': 'green' }; return colors[priority.toLowerCase()] || 'gray'; }