Files
sidak/index.php
wartana 80951b57a0 feat: Modern Theme and Dashboard Enhancements
- Implemented Modern Theme (Inter font, Rounded UI, Indigo/White palette)
- Updated Login Page with gradient background and modern card
- Added Age Demographics to Dashboard (Stats count)
- Integrated Chart.js for Population Donut Chart
- Made Dashboard Info Boxes clickable with Age Category filtering
- Updated Resident Data table to support age filtering
2026-01-18 22:02:48 +08:00

857 lines
25 KiB
PHP

<?php
//Mulai Sesion
session_start();
if (isset($_SESSION["ses_username"])==""){
header("location: login.php");
}else{
$data_id = $_SESSION["ses_id"];
$data_nama = $_SESSION["ses_nama"];
$data_user = $_SESSION["ses_username"];
$data_level = $_SESSION["ses_level"];
}
//KONEKSI DB
include "inc/koneksi.php";
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>SIDAK</title>
<link rel="icon" href="dist/img/izin.png">
<!-- Tell the browser to be responsive to screen width -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Font Awesome -->
<link rel="stylesheet" href="plugins/fontawesome-free/css/all.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
<!-- DataTables -->
<link rel="stylesheet" href="plugins/datatables-bs4/css/dataTables.bootstrap4.css">
<!-- overlayScrollbars -->
<link rel="stylesheet" href="dist/css/adminlte.min.css">
<!-- Select2 -->
<link rel="stylesheet" href="plugins/select2/css/select2.min.css">
<link rel="stylesheet" href="plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css">
<!-- Cropper.js -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.13/cropper.min.css" rel="stylesheet">
<!-- Google Font: Source Sans Pro -->
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700" rel="stylesheet">
<!-- Modern CSS -->
<link rel="stylesheet" href="dist/css/modern.css">
<!-- Alert -->
<script src="plugins/alert.js"></script>
</head>
<body class="hold-transition sidebar-mini">
<!-- Site wrapper -->
<div class="wrapper">
<!-- Navbar -->
<nav class="main-header navbar navbar-expand navbar-white navbar-light">
<!-- Left navbar links -->
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" data-widget="pushmenu" href="#">
<i class="fas fa-bars text-secondary"></i>
</a>
</li>
</ul>
<!-- SEARCH FORM -->
<ul class="navbar-nav ml-auto">
<li class="nav-item d-none d-sm-inline-block">
<a href="index.php" class="nav-link">
<font color="black">
<b>SISTEM INFORMASI DATA KEPENDUDUKAN</b>
</font>
</a>
</li>
</ul>
</nav>
<!-- /.navbar -->
<!-- Main Sidebar Container -->
<aside class="main-sidebar sidebar-dark-indigo elevation-4">
<!-- Brand Logo -->
<a href="index.php" class="brand-link">
<img src="dist/img/izin.png" alt="AdminLTE Logo" class="brand-image" style="opacity: .8">
<span class="brand-text font-weight-bold"> SIDAK WEB V2</span>
</a>
<!-- Sidebar -->
<div class="sidebar">
<!-- Sidebar user (optional) -->
<div class="user-panel mt-2 pb-2 mb-2 d-flex">
<div class="image">
<img src="dist/img/admin.ico">
</div>
<div class="info">
<a href="index.php" class="d-block">
<?php echo $data_nama; ?>
</a>
<span class="badge badge-success">
<?php echo $data_level; ?>
</span>
</div>
</div>
<!-- Sidebar Menu -->
<nav class="mt-2">
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
<!-- Level -->
<?php
if ($data_level=="Administrator"){
?>
<li class="nav-item">
<a href="index.php" class="nav-link">
<i class="nav-icon fas fa-tachometer-alt"></i>
<p>
Dashboard
</p>
</a>
</li>
<li class="nav-item has-treeview">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-table"></i>
<p>
Kelola Data
<i class="fas fa-angle-left right"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="?page=data-pend" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Penduduk</p>
</a>
</li>
<li class="nav-item">
<a href="?page=data-kartu" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Kartu Keluarga</p>
</a>
</li>
</ul>
</li>
<li class="nav-item has-treeview">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-cogs"></i>
<p>
Sirkulasi Penduduk
<i class="fas fa-angle-left right"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="?page=data-lahir" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Lahir</p>
</a>
</li>
<li class="nav-item">
<a href="?page=data-mendu" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Meninggal</p>
</a>
</li>
<li class="nav-item">
<a href="?page=data-datang" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Pendatang</p>
</a>
</li>
<li class="nav-item">
<a href="?page=data-pindah" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Pindah</p>
</a>
</li>
</ul>
</li>
<li class="nav-item has-treeview">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-file"></i>
<p>
Kelola Surat
<i class="fas fa-angle-left right"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="?page=suket-domisili" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Domisili</p>
</a>
</li>
<li class="nav-item">
<a href="?page=suket-lahir" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Kelahiran</p>
</a>
</li>
<li class="nav-item">
<a href="?page=suket-mati" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Kematian</p>
</a>
</li>
<li class="nav-item">
<a href="?page=suket-datang" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Pendatang</p>
</a>
</li>
<li class="nav-item">
<a href="?page=suket-pindah" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Pindah</p>
</a>
</li>
</ul>
</li>
<li class="nav-item has-treeview">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-print"></i>
<p>
Kelola Laporan
<i class="fas fa-angle-left right"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="./report/laporan_penduduk.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Penduduk</p>
</a>
</li>
<li class="nav-item">
<a href="./report/laporan_kk.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Kartu Keluarga</p>
</a>
</li>
<li class="nav-item">
<a href="./report/laporan_lahir.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Lahir</p>
</a>
</li>
<li class="nav-item">
<a href="./report/laporan_mendu.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Meninggal</p>
</a>
</li>
<li class="nav-item">
<a href="./report/laporan_datang.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Pendatang</p>
</a>
</li>
<li class="nav-item">
<a href="./report/laporan_pindah.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Pindah</p>
</a>
</li>
<li class="nav-item">
<a href="?page=laporan-klasifikasi" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Klasifikasi Umur</p>
</a>
</li>
</ul>
</li>
<li class="nav-header">Setting</li>
<li class="nav-item">
<a href="?page=data-pengguna" class="nav-link">
<i class="nav-icon fas fa-user"></i>
<p>
Pengguna Sistem
</p>
</a>
</li>
<li class="nav-item">
<a href="?page=data-profil" class="nav-link">
<i class="nav-icon fas fa-cogs"></i>
<p>
Profil Desa
</p>
</a>
</li>
<?php
} elseif($data_level=="Kaur Pemerintah"){
?>
<li class="nav-item">
<a href="index.php" class="nav-link">
<i class="nav-icon fas fa-tachometer-alt"></i>
<p>
Dashboard
</p>
</a>
</li>
<li class="nav-item has-treeview">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-table"></i>
<p>
Kelola Data
<i class="fas fa-angle-left right"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="?page=data-pend" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Penduduk</p>
</a>
</li>
<li class="nav-item">
<a href="?page=data-kartu" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Kartu Keluarga</p>
</a>
</li>
</ul>
</li>
<li class="nav-item has-treeview">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-cogs"></i>
<p>
Sirkulasi Penduduk
<i class="fas fa-angle-left right"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="?page=data-lahir" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Lahir</p>
</a>
</li>
<li class="nav-item">
<a href="?page=data-mendu" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Meninggal</p>
</a>
</li>
<li class="nav-item">
<a href="?page=data-datang" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Pendatang</p>
</a>
</li>
<li class="nav-item">
<a href="?page=data-pindah" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Pindah</p>
</a>
</li>
</ul>
</li>
<li class="nav-item has-treeview">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-file"></i>
<p>
Kelola Surat
<i class="fas fa-angle-left right"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="#" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Domisili</p>
</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Kelahiran</p>
</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Kematian</p>
</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Pendatang</p>
</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Pindah</p>
</a>
</li>
</ul>
</li>
<li class="nav-item has-treeview">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-print"></i>
<p>
Kelola Laporan
<i class="fas fa-angle-left right"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="./report/laporan_penduduk.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Penduduk</p>
</a>
</li>
<li class="nav-item">
<a href="./report/laporan_kk.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Kartu Keluarga</p>
</a>
</li>
<li class="nav-item">
<a href="./report/laporan_lahir.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Lahir</p>
</a>
</li>
<li class="nav-item">
<a href="./report/laporan_mendu.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Meninggal</p>
</a>
</li>
<li class="nav-item">
<a href="./report/laporan_datang.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Pendatang</p>
</a>
</li>
<li class="nav-item">
<a href="./report/laporan_pindah.php" target="_blank" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Pindah</p>
</a>
</li>
<li class="nav-item">
<a href="?page=laporan-klasifikasi" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Data Klasifikasi Umur</p>
</a>
</li>
</ul>
</li>
<li class="nav-header">Setting</li>
<?php
}
?>
<li class="nav-item">
<a onclick="return confirm('Apakah anda yakin akan keluar ?')" href="logout.php" class="nav-link">
<i class="nav-icon fas fa-arrow-circle-right"></i>
<p>
Logout
</p>
</a>
</li>
</nav>
<!-- /.sidebar-menu -->
</div>
<!-- /.sidebar -->
</aside>
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
</section>
<!-- Main content -->
<section class="content">
<!-- /. WEB DINAMIS DISINI ############################################################################### -->
<div class="container-fluid">
<?php
if(isset($_GET['page'])){
$hal = $_GET['page'];
switch ($hal) {
//Pengguna
case 'data-pengguna':
include "admin/pengguna/data_pengguna.php";
break;
case 'add-pengguna':
include "admin/pengguna/add_pengguna.php";
break;
case 'edit-pengguna':
include "admin/pengguna/edit_pengguna.php";
break;
case 'del-pengguna':
include "admin/pengguna/del_pengguna.php";
break;
//kartu KK
case 'data-kartu':
include "admin/kartu/data_kartu.php";
break;
case 'add-kartu':
include "admin/kartu/add_kartu.php";
break;
case 'edit-kartu':
include "admin/kartu/edit_kartu.php";
break;
case 'anggota':
include "admin/kartu/anggota.php";
break;
case 'anggota-full':
include "admin/kartu/anggota_full.php";
break;
case 'data-profil':
include "admin/profil/data_profil.php";
break;
case 'del-anggota':
include "admin/kartu/del_anggota.php";
break;
case 'del-kartu':
include "admin/kartu/del_kartu.php";
break;
//penduduk
case 'data-pend':
include "admin/pend/data_pend.php";
break;
case 'add-pend':
include "admin/pend/add_pend.php";
break;
case 'edit-pend':
include "admin/pend/edit_pend.php";
break;
case 'del-pend':
include "admin/pend/del_pend.php";
break;
case 'view-pend':
include "admin/pend/view_pend.php";
break;
//lahir
case 'data-lahir':
include "admin/lahir/data_lahir.php";
break;
case 'add-lahir':
include "admin/lahir/add_lahir.php";
break;
case 'edit-lahir':
include "admin/lahir/edit_lahir.php";
break;
case 'del-lahir':
include "admin/lahir/del_lahir.php";
break;
//mendu
case 'data-mendu':
include "admin/mendu/data_mendu.php";
break;
case 'add-mendu':
include "admin/mendu/add_mendu.php";
break;
case 'edit-mendu':
include "admin/mendu/edit_mendu.php";
break;
case 'del-mendu':
include "admin/mendu/del_mendu.php";
break;
case 'view-mendu':
include "admin/mendu/view_mendu.php";
break;
//pindah
case 'data-pindah':
include "admin/pindah/data_pindah.php";
break;
case 'add-pindah':
include "admin/pindah/add_pindah.php";
break;
case 'edit-pindah':
include "admin/pindah/edit_pindah.php";
break;
case 'del-pindah':
include "admin/pindah/del_pindah.php";
break;
case 'view-pindah':
include "admin/pindah/view_pindah.php";
break;
//laporan
case 'laporan-klasifikasi':
include "admin/laporan/laporan_klasifikasi.php";
break;
//datang
case 'data-datang':
include "admin/datang/data_datang.php";
break;
case 'add-datang':
include "admin/datang/add_datang.php";
break;
case 'edit-datang':
include "admin/datang/edit_datang.php";
break;
case 'del-datang':
include "admin/datang/del_datang.php";
break;
//suket
case 'suket-domisili':
include "surat/suket_domisili.php";
break;
case 'suket-lahir':
include "surat/suket_lahir.php";
break;
case 'suket-mati':
include "surat/suket_mati.php";
break;
case 'suket-datang':
include "surat/suket_datang.php";
break;
case 'suket-pindah':
include "surat/suket_pindah.php";
break;
//default
default:
echo "<center><h1> ERROR !</h1></center>";
break;
}
}else{
// Auto Halaman Home Pengguna
if($data_level=="Administrator"){
include "home/admin.php";
}
elseif($data_level=="Kaur Pemerintah"){
include "home/kaur.php";
}
}
?>
</div>
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
<footer class="main-footer">
<div class="float-right d-none d-sm-block">
Copyright &copy;
<a href="#" target="_blank">
<strong> Wartana 2026</strong>
</a>
All rights reserved.
</div>
</footer>
<!-- Control Sidebar -->
<aside class="control-sidebar control-sidebar-dark">
<!-- Control sidebar content goes here -->
</aside>
<!-- /.control-sidebar -->
<!-- Modal (Image Viewer) -->
<div class="modal fade" id="imageModal" tabindex="-1" role="dialog" aria-labelledby="imageModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="imageModalLabel">Lihat Foto</h5>
<!-- Toolbar Zoom -->
<div class="ml-auto">
<button class="btn btn-primary btn-sm" onclick="zoomIn()" title="Perbesar"><i class="fa fa-search-plus"></i></button>
<button class="btn btn-warning btn-sm" onclick="zoomReset()" title="Reset"><i class="fa fa-sync"></i></button>
<button class="btn btn-danger btn-sm" onclick="zoomOut()" title="Perkecil"><i class="fa fa-search-minus"></i></button>
</div>
<button type="button" class="close ml-2" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body text-center" style="overflow: hidden; height: 85vh; position: relative; background: #333; display: flex; align-items: center; justify-content: center;">
<img id="modalImage" src="" class="img-fluid" alt="Foto Besar" style="cursor: grab; transition: transform 0.1s; transform-origin: center center; max-height: 100%; max-width: 100%;">
</div>
</div>
</div>
</div>
</div>
<!-- ./wrapper -->
<!-- jQuery -->
<script src="plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Select2 -->
<script src="plugins/select2/js/select2.full.min.js"></script>
<!-- Cropper.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.13/cropper.min.js"></script>
<!-- OpenCV.js (Required for jscanify) -->
<script src="https://docs.opencv.org/4.7.0/opencv.js" async></script>
<!-- jscanify -->
<script src="https://cdn.jsdelivr.net/gh/ColonelParrot/jscanify@master/src/jscanify.min.js"></script>
<!-- DataTables -->
<script src="plugins/datatables/jquery.dataTables.js"></script>
<script src="plugins/datatables-bs4/js/dataTables.bootstrap4.js"></script>
<!-- AdminLTE App -->
<script src="dist/js/adminlte.min.js"></script>
<!-- AdminLTE for demo purposes -->
<script src="dist/js/demo.js"></script>
<!-- page script -->
<script src="plugins/jquery-datatable/extensions/export/dataTables.buttons.min.js"></script>
<script src="plugins/jquery-datatable/extensions/export/buttons.flash.min.js"></script>
<script src="plugins/jquery-datatable/extensions/export/jszip.min.js"></script>
<script src="plugins/jquery-datatable/extensions/export/pdfmake.min.js"></script>
<script src="plugins/jquery-datatable/extensions/export/vfs_fonts.js"></script>
<script src="plugins/jquery-datatable/extensions/export/buttons.html5.min.js"></script>
<script src="plugins/jquery-datatable/extensions/export/buttons.print.min.js"></script>
<script>
$(function() {
$("#example1").DataTable();
$('#example2').DataTable({
"paging": true,
"lengthChange": false,
"searching": false,
"ordering": true,
"info": true,
"autoWidth": false,
});
});
</script>
<script>
$(function() {
//Initialize Select2 Elements
$('.select2').select2()
//Initialize Select2 Elements
$('.select2bs4').select2({
theme: 'bootstrap4'
})
})
</script>
<script>
var scale = 1;
var panning = false;
var pointX = 0;
var pointY = 0;
var startX = 0;
var startY = 0;
var img = document.getElementById('modalImage');
function setTransform() {
img.style.transform = "translate(" + pointX + "px, " + pointY + "px) scale(" + scale + ")";
}
function showImage(src) {
scale = 1;
pointX = 0;
pointY = 0;
img = document.getElementById('modalImage'); // Re-select to be sure
img.src = src;
setTransform();
$('#imageModal').modal('show');
}
function zoomIn() {
scale += 0.2;
setTransform();
}
function zoomOut() {
if (scale > 0.4) {
scale -= 0.2;
setTransform();
}
}
function zoomReset() {
scale = 1;
pointX = 0;
pointY = 0;
setTransform();
}
// Mouse Events for Dragging
// Check if img exists to avoid errors on pages without the modal
if(img) {
img.onmousedown = function (e) {
e.preventDefault();
startX = e.clientX - pointX;
startY = e.clientY - pointY;
panning = true;
img.style.cursor = "grabbing";
}
img.onmouseup = function (e) {
panning = false;
img.style.cursor = "grab";
}
img.onmouseleave = function (e) {
panning = false;
img.style.cursor = "grab";
}
img.onmousemove = function (e) {
e.preventDefault();
if (!panning) return;
pointX = (e.clientX - startX);
pointY = (e.clientY - startY);
setTransform();
}
// Optional: Wheel Zoom
img.onwheel = function (e) {
e.preventDefault();
var delta = (e.wheelDelta ? e.wheelDelta : -e.deltaY);
(delta > 0) ? zoomIn() : zoomOut();
}
}
</script>
<!-- ChartJS -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</body>
</html>