Files
Webgis-Poverty/index.php
T
2026-06-11 01:50:37 +07:00

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>