Files
2026-06-11 01:50:37 +07:00

77 lines
2.6 KiB
PHP

<?php
$currentPage = isset($_GET['page']) ? $_GET['page'] : 'map';
?>
<aside class="sidebar">
<div class="sidebar-brand">
<span class="brand-icon">🗺️</span>
<div>
<h2 class="brand-title">WebGIS Poverty</h2>
<span class="brand-sub">Sistem Informasi Kemiskinan</span>
</div>
</div>
<nav class="sidebar-nav">
<a href="?page=dashboard" class="nav-item <?= $currentPage === 'dashboard' ? 'active' : '' ?>" id="nav-dashboard">
<span class="nav-icon">📊</span>
<span class="nav-text">Dashboard</span>
</a>
<a href="?page=map" class="nav-item <?= $currentPage === 'map' ? 'active' : '' ?>" id="nav-map">
<span class="nav-icon">🗺️</span>
<span class="nav-text">Peta Interaktif</span>
</a>
<a href="?page=manajemen_akun" class="nav-item <?= $currentPage === 'manajemen_akun' ? 'active' : '' ?>" id="nav-akun" style="display:none">
<span class="nav-icon">🏛️</span>
<span class="nav-text">Daftar Rumah Ibadah</span>
</a>
<a href="?page=daftar_pm" class="nav-item <?= $currentPage === 'daftar_pm' ? 'active' : '' ?>" id="nav-pm">
<span class="nav-icon">👥</span>
<span class="nav-text">Daftar Penduduk Miskin</span>
</a>
</nav>
<div class="sidebar-footer">
<div class="user-profile">
<div class="user-avatar">👤</div>
<div class="user-info">
<div class="user-name" id="user-display-name">Memuat...</div>
<div class="user-role-badge" id="user-display-role">Guest</div>
</div>
</div>
<button class="btn-logout" onclick="handleLogout()">
<span class="logout-icon">↩</span> Keluar
</button>
</div>
</aside>
<!-- Common Sidebar JS (auth info sync) -->
<script>
document.addEventListener('auth-ready', function(e) {
const user = e.detail;
document.body.classList.add('auth-loaded', 'role-' + user.role);
// Set user profile in sidebar
document.getElementById('user-display-name').textContent = user.username;
const roleMap = {
'admin': 'Admin',
'petugas_lapangan': 'Rumah Ibadah',
'guest': 'Guest'
};
document.getElementById('user-display-role').textContent = roleMap[user.role] || user.role;
// Show admin-only nav items
if (user.role === 'admin') {
const navAkun = document.getElementById('nav-akun');
if (navAkun) navAkun.style.display = 'flex';
}
});
async function handleLogout() {
if (!confirm('Apakah Anda yakin ingin keluar?')) return;
try {
const response = await fetch('api/logout.php');
const data = await response.json();
if (data.status === 'success') window.location.href = '?page=login';
} catch { alert('Gagal logout.'); }
}
</script>