// Modal management export function openSubjectModal() { fetch('components/modals/subject-modal.php') .then(response => response.text()) .then(html => { document.getElementById('modalContainer').innerHTML = html; document.querySelector('.modal-overlay').classList.remove('hidden'); document.querySelector('.modal').classList.add('active'); }); } export function openTopicModal() { console.log('Opening topic modal...'); // Debug log fetch('components/modals/topic-modal.php') .then(response => response.text()) .then(html => { document.getElementById('modalContainer').innerHTML = html; document.querySelector('.modal-overlay').classList.remove('hidden'); document.querySelector('.modal').classList.add('active'); // Initialize topic manager after modal is loaded const event = new CustomEvent('openTopicModal'); document.dispatchEvent(event); }) .catch(error => console.error('Error loading topic modal:', error)); } export function openTopicEditorModal() { fetch('components/modals/topic-editor-modal.php') .then(response => response.text()) .then(html => { document.getElementById('modalContainer').innerHTML = html; document.querySelector('.modal-overlay').classList.remove('hidden'); document.querySelector('.modal').classList.add('active'); // Initialize topic editor const event = new CustomEvent('openTopicEditorModal'); document.dispatchEvent(event); }); } export function closeModal() { document.querySelector('.modal-overlay').classList.add('hidden'); document.querySelector('.modal').classList.remove('active'); } // Event listeners document.addEventListener('DOMContentLoaded', () => { loadRecentActivity(); }); async function loadRecentActivity() { try { const response = await fetch('api/get-recent-activity.php'); const activities = await response.json(); displayActivities(activities); } catch (error) { console.error('Error loading recent activities:', error); } } function displayActivities(activities) { const container = document.getElementById('recentActivity'); container.innerHTML = activities.map(activity => `
${activity.title}
${activity.timestamp}