Close

S.I.R Dashboard 2025

SIR 2025 Dashboard * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; padding: 10px; } .header { text-align: center; color: white; margin-bottom: 20px; padding: 20px; background: rgba(255, 255, 255, 0.1); border-radius: 15px; backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); } .header h1 { font-size: 2rem; margin-bottom: 10px; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); } .header p { font-size: 1rem; opacity: 0.9; } .dashboard-container { display: grid; grid-template-columns: 1fr; gap: 15px; max-width: 1200px; margin: 0 auto; } .frame-card { background: rgba(255, 255, 255, 0.95); border-radius: 15px; padding: 15px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); transition: transform 0.3s ease, box-shadow 0.3s ease; } .frame-card:hover { transform: translateY(-5px); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15); } .frame-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 2px solid #e0e0e0; } .frame-title { font-size: 1.2rem; font-weight: 600; color: #333; margin: 0; } .fullscreen-btn { background: linear-gradient(45deg, #667eea, #764ba2); color: white; border: none; padding: 8px 12px; border-radius: 8px; cursor: pointer; font-size: 0.9rem; font-weight: 500; transition: all 0.3s ease; display: flex; align-items: center; gap: 5px; } .fullscreen-btn:hover { background: linear-gradient(45deg, #764ba2, #667eea); transform: scale(1.05); } .frame-container { position: relative; width: 100%; height: 400px; border-radius: 10px; overflow: hidden; border: 2px solid #e0e0e0; } .frame-container iframe { width: 100%; height: 100%; border: none; } .loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #666; font-size: 1rem; } .fullscreen-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.95); z-index: 1000; display: none; padding: 20px; } .fullscreen-content { width: 100%; height: 100%; position: relative; border-radius: 10px; overflow: hidden; } .fullscreen-content iframe { width: 100%; height: 100%; border: none; } .close-btn { position: absolute; top: 10px; right: 10px; background: #ff4757; color: white; border: none; width: 40px; height: 40px; border-radius: 50%; cursor: pointer; font-size: 1.2rem; font-weight: bold; z-index: 1001; transition: all 0.3s ease; } .close-btn:hover { background: #ff3838; transform: scale(1.1); } .status-indicator { position: absolute; top: 10px; right: 10px; width: 12px; height: 12px; border-radius: 50%; background: #2ed573; animation: pulse 2s infinite; } @keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } @media (min-width: 768px) { .dashboard-container { grid-template-columns: 1fr 1fr; } .frame-container { height: 450px; } } @media (min-width: 1024px) { .dashboard-container { grid-template-columns: 1fr 1fr; gap: 20px; } .frame-container { height: 500px; } .header h1 { font-size: 2.5rem; } } @media (max-width: 480px) { body { padding: 5px; } .frame-card { padding: 10px; } .frame-container { height: 350px; } .header h1 { font-size: 1.5rem; } }

📊 SIR 2025 Dashboard

Real-time Data Analytics & Reporting

📈 Main Dashboard

Loading dashboard...

👥 Supervisor Report

Loading supervisor report...

📋 BLO Report

Loading BLO report...

⚠️ Inactive BLOs

Loading inactive BLOs...
function hideLoading(iframe) { const container = iframe.parentElement; const loading = container.querySelector('.loading'); if (loading) { loading.style.display = 'none'; } } function openFullscreen(frameId) { const frame = document.getElementById(frameId); const fullscreenFrame = document.getElementById('fullscreenFrame'); const overlay = document.getElementById('fullscreenOverlay'); fullscreenFrame.src = frame.src; overlay.style.display = 'block'; // Prevent body scroll document.body.style.overflow = 'hidden'; } function closeFullscreen() { const overlay = document.getElementById('fullscreenOverlay'); const fullscreenFrame = document.getElementById('fullscreenFrame'); overlay.style.display = 'none'; fullscreenFrame.src = ''; // Restore body scroll document.body.style.overflow = 'auto'; } // Close fullscreen on ESC key document.addEventListener('keydown', function(event) { if (event.key === 'Escape') { closeFullscreen(); } }); // Close fullscreen on overlay click document.getElementById('fullscreenOverlay').addEventListener('click', function(event) { if (event.target === this) { closeFullscreen(); } }); // Auto-refresh frames every 5 minutes setInterval(function() { const frames = document.querySelectorAll('iframe'); frames.forEach(frame => { if (frame.id !== 'fullscreenFrame') { const src = frame.src; frame.src = ''; frame.src = src; } }); }, 300000); // 5 minutes