112 lines
4.1 KiB
PHP
112 lines
4.1 KiB
PHP
<?php
|
|
$page = isset($_GET['page']) ? $_GET['page'] : 'dashboard';
|
|
$validPages = ['map', 'dashboard', 'manajemen_akun', 'daftar_pm', 'login'];
|
|
|
|
if (!in_array($page, $validPages)) {
|
|
$page = 'dashboard';
|
|
}
|
|
|
|
if ($page === 'login') {
|
|
include 'pages/login.php';
|
|
exit;
|
|
}
|
|
|
|
$pageTitles = [
|
|
'map' => 'Peta Interaktif - WebGIS Poverty Mapping',
|
|
'dashboard' => 'Dashboard - WebGIS Poverty Mapping',
|
|
'manajemen_akun' => 'Manajemen Akun RI - WebGIS Poverty Mapping',
|
|
'daftar_pm' => 'Daftar Penduduk Miskin - WebGIS Poverty Mapping'
|
|
];
|
|
$pageTitle = $pageTitles[$page];
|
|
|
|
// Tentukan CSS spesifik halaman
|
|
$pageCss = null;
|
|
if ($page === 'map') $pageCss = 'css/map.css';
|
|
if ($page === 'dashboard') $pageCss = 'css/pages/dashboard.css';
|
|
if ($page === 'manajemen_akun') $pageCss = 'css/pages/manajemen_akun.css';
|
|
if ($page === 'daftar_pm') $pageCss = 'css/pages/daftar_pm.css';
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html lang="id">
|
|
<head>
|
|
<?php include 'components/head.php'; ?>
|
|
|
|
<?php if ($page === 'map') { ?>
|
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.css" />
|
|
<?php } else if ($page === 'dashboard') { ?>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.9.1/chart.min.js"></script>
|
|
<?php } ?>
|
|
</head>
|
|
|
|
<?php
|
|
// Map page gets its own body class for full-screen layout
|
|
$bodyClass = ($page === 'map') ? 'page-map' : 'page-dashboard';
|
|
?>
|
|
<body class="<?= $bodyClass ?>">
|
|
|
|
<!-- Fixed left sidebar -->
|
|
<?php include 'components/sidebar.php'; ?>
|
|
|
|
<!-- Main content area (offset by sidebar width via CSS) -->
|
|
<div class="main-content-area">
|
|
<?php if ($page === 'map') { ?>
|
|
<?php include 'pages/map.php'; ?>
|
|
<?php } else { ?>
|
|
<div class="dashboard-wrapper">
|
|
<?php include 'pages/' . $page . '.php'; ?>
|
|
</div>
|
|
<?php } ?>
|
|
</div>
|
|
|
|
<!-- Global overlays & scripts -->
|
|
<?php include 'components/scripts.php'; ?>
|
|
|
|
<!-- Page-specific scripts -->
|
|
<?php if ($page === 'dashboard') { ?>
|
|
<script src="js/pages/dashboard.js"></script>
|
|
<?php } else if ($page === 'manajemen_akun') { ?>
|
|
<script src="js/pages/manajemen_akun.js"></script>
|
|
<?php } else if ($page === 'daftar_pm') { ?>
|
|
<script src="js/features/log-bantuan.js"></script>
|
|
<script src="js/pages/daftar_pm.js"></script>
|
|
<?php } else if ($page === 'map') { ?>
|
|
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.js"></script>
|
|
<script src="js/features/map-panels.js"></script>
|
|
<script src="js/features/map-layers.js"></script>
|
|
<script src="js/features/map-forms.js"></script>
|
|
<script src="js/features/log-bantuan.js"></script>
|
|
<script>
|
|
// Map page: init Leaflet after DOM ready, then trigger panel loading
|
|
document.addEventListener('auth-ready', function(e) {
|
|
const user = e.detail;
|
|
|
|
// Init the Leaflet map
|
|
initMap();
|
|
|
|
// Show tabs for admin
|
|
const tabsContainer = document.querySelector('.nav-tabs');
|
|
if (tabsContainer) {
|
|
if (user.role === 'admin') {
|
|
tabsContainer.style.display = 'flex';
|
|
tabsContainer.innerHTML = `
|
|
<button class="nav-tab active" onclick="switchTab('rumah_ibadah')">Rumah Ibadah</button>
|
|
<button class="nav-tab" onclick="switchTab('penduduk_miskin')">Orang Miskin</button>
|
|
`;
|
|
switchTab('rumah_ibadah');
|
|
} else {
|
|
tabsContainer.style.display = 'none';
|
|
switchTab('penduduk_miskin');
|
|
}
|
|
}
|
|
|
|
// Fix map tile rendering after sidebar layout
|
|
setTimeout(() => { if (map) map.invalidateSize(); }, 150);
|
|
});
|
|
</script>
|
|
<?php } ?>
|
|
|
|
</body>
|
|
</html>
|