// view_events.js - JavaScript for the view saved events page // Global variables let map; let markers = []; // Initialize the map when the page loads document.addEventListener('DOMContentLoaded', function() { initMap(); // Set up refresh button const refreshBtn = document.getElementById('refresh-btn'); if (refreshBtn) { refreshBtn.addEventListener('click', loadEvents); } // Set up clear button const clearBtn = document.getElementById('clear-btn'); if (clearBtn) { clearBtn.addEventListener('click', clearEvents); } }); // Initialize the map function initMap() { // Create the map map = new maplibregl.Map({ container: 'map', style: 'https://tiles.openfreemap.org/styles/liberty', center: [2.2137, 46.2276], // Default center (center of metropolitan France) zoom: 5 }); // Add navigation controls map.addControl(new maplibregl.NavigationControl()); // Add attribution control with OpenStreetMap attribution map.addControl(new maplibregl.AttributionControl({ customAttribution: '© OpenStreetMap contributors' })); // Load events when the map is loaded map.on('load', function() { loadEvents(); }); } // Function to load events from localStorage function loadEvents() { // Clear existing markers markers.forEach(marker => marker.remove()); markers = []; // Get events from localStorage const savedEvents = JSON.parse(localStorage.getItem('oedb_events') || '[]'); // Update event count document.getElementById('event-count').textContent = `${savedEvents.length} event${savedEvents.length !== 1 ? 's' : ''} found`; // Clear event list const eventList = document.getElementById('event-list'); eventList.innerHTML = ''; // If no events, show message if (savedEvents.length === 0) { eventList.innerHTML = '
Type: ${event.what || 'Unknown'}
Start: ${formatDate(event.start)}
End: ${formatDate(event.stop)}
${event.description ? `Description: ${event.description}
` : ''} `); marker.setPopup(popup); markers.push(marker); // Extend bounds to include this marker bounds.extend(coordinates); // Add to event list const eventItem = document.createElement('div'); eventItem.className = 'event-item'; eventItem.innerHTML = `Type: ${event.what || 'Unknown'}
When: ${formatDate(event.start)} to ${formatDate(event.stop)}
${event.description ? `Description: ${event.description}
` : ''}