// Personal Dashboard JavaScript // Auto-refresh every 5 minutes const AUTO_REFRESH_INTERVAL = 5 * 60 * 1000; // 5 minutes in milliseconds // Initialize auto-refresh on page load document.addEventListener('DOMContentLoaded', function() { // Set up auto-refresh setInterval(autoRefresh, AUTO_REFRESH_INTERVAL); }); // Auto-refresh function async function autoRefresh() { console.log('Auto-refreshing data...'); try { const response = await fetch('/api/refresh', { method: 'POST' }); if (response.ok) { // Reload the page to show updated data window.location.reload(); } } catch (error) { console.error('Auto-refresh failed:', error); } } // Manual refresh function async function refreshData() { const button = event.target; const originalText = button.textContent; // Show loading state button.disabled = true; button.innerHTML = 'Refreshing...'; try { const response = await fetch('/api/refresh', { method: 'POST' }); if (response.ok) { // Update last updated time const now = new Date(); const timeString = now.toLocaleTimeString('en-US', { hour: 'numeric', minute: '2-digit' }); document.getElementById('last-updated').textContent = timeString; // Reload the page to show updated data setTimeout(() => { window.location.reload(); }, 500); } else { throw new Error('Refresh failed'); } } catch (error) { console.error('Refresh failed:', error); alert('Failed to refresh data. Please try again.'); button.disabled = false; button.textContent = originalText; } } // Filter tasks by status function filterTasks(status) { // This will be implemented in Phase 2 console.log('Filter tasks:', status); } // Toggle task completion function toggleTask(taskId) { // This will be implemented in Phase 2 console.log('Toggle task:', taskId); }