feat: implement core WebGIS mapping features, sidebar UI, and API endpoints for data management

This commit is contained in:
Syariffullah
2026-05-08 20:44:23 +07:00
parent 448083d2ea
commit 08d6d30e02
14 changed files with 1326 additions and 188 deletions
+27
View File
@@ -0,0 +1,27 @@
<?php
header('Content-Type: application/json');
require_once '../db_connect.php';
$data = json_decode(file_get_contents('php://input'), true);
$miskin_id = intval($data['miskin_id'] ?? 0);
$ibadah_id = intval($data['ibadah_id'] ?? 0);
$tipe_bantuan = trim($data['tipe_bantuan'] ?? '');
$tanggal = trim($data['tanggal'] ?? '');
$keterangan = trim($data['keterangan'] ?? '');
if (!$miskin_id || !$ibadah_id || !$tipe_bantuan || !$tanggal) {
echo json_encode(['status' => 'error', 'message' => 'Data tidak lengkap']);
exit;
}
$sql = "INSERT INTO log_bantuan (miskin_id, ibadah_id, tipe_bantuan, tanggal, keterangan) VALUES (?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('iisss', $miskin_id, $ibadah_id, $tipe_bantuan, $tanggal, $keterangan);
if ($stmt->execute()) {
echo json_encode(['status' => 'success', 'id' => $stmt->insert_id]);
} else {
echo json_encode(['status' => 'error', 'message' => $conn->error]);
}
$conn->close();
+37
View File
@@ -0,0 +1,37 @@
<?php
header('Content-Type: application/json');
require_once '../db_connect.php';
$miskin_id = isset($_GET['miskin_id']) ? intval($_GET['miskin_id']) : 0;
if (!$miskin_id) {
echo json_encode(['status' => 'error', 'message' => 'miskin_id diperlukan']);
exit;
}
$sql = "
SELECT
lb.id,
lb.tipe_bantuan,
lb.tanggal,
lb.keterangan,
ri.nama AS nama_ibadah,
ri.jenis AS jenis_ibadah
FROM log_bantuan lb
JOIN rumah_ibadah ri ON ri.id = lb.ibadah_id
WHERE lb.miskin_id = ?
ORDER BY lb.tanggal DESC, lb.id DESC
";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $miskin_id);
$stmt->execute();
$result = $stmt->get_result();
$data = [];
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
echo json_encode(['status' => 'success', 'data' => $data]);
$conn->close();
+9 -7
View File
@@ -4,15 +4,17 @@ include_once '../db_connect.php';
$data = json_decode(file_get_contents("php://input"));
if(!empty($data->lat) && !empty($data->lng)) {
$nama = $conn->real_escape_string($data->nama ?? '');
$kategori = $conn->real_escape_string($data->kategori_bantuan ?? 'Makan');
$lat = (float)$data->lat;
$lng = (float)$data->lng;
if (!empty($data->lat) && !empty($data->lng)) {
$nama = $conn->real_escape_string($data->nama ?? '');
$kategori = $conn->real_escape_string($data->kategori_bantuan ?? 'Makan');
$jumlah_jiwa = (int)($data->jumlah_jiwa ?? 1);
$lat = (float)$data->lat;
$lng = (float)$data->lng;
$query = "INSERT INTO penduduk_miskin (nama, kategori_bantuan, lat, lng) VALUES ('$nama', '$kategori', $lat, $lng)";
$query = "INSERT INTO penduduk_miskin (nama, kategori_bantuan, jumlah_jiwa, lat, lng)
VALUES ('$nama', '$kategori', $jumlah_jiwa, $lat, $lng)";
if($conn->query($query)) {
if ($conn->query($query)) {
echo json_encode(["status" => "success", "id" => $conn->insert_id, "message" => "Berhasil ditambahkan."]);
} else {
echo json_encode(["status" => "error", "message" => "Gagal: " . $conn->error]);
+11 -8
View File
@@ -4,16 +4,19 @@ include_once '../db_connect.php';
$data = json_decode(file_get_contents("php://input"));
if(!empty($data->id)) {
$id = (int)$data->id;
$nama = $conn->real_escape_string($data->nama ?? '');
$kategori = $conn->real_escape_string($data->kategori_bantuan ?? 'Makan');
$lat = (float)$data->lat;
$lng = (float)$data->lng;
if (!empty($data->id)) {
$id = (int)$data->id;
$nama = $conn->real_escape_string($data->nama ?? '');
$kategori = $conn->real_escape_string($data->kategori_bantuan ?? 'Makan');
$jumlah_jiwa = (int)($data->jumlah_jiwa ?? 1);
$lat = (float)$data->lat;
$lng = (float)$data->lng;
$query = "UPDATE penduduk_miskin SET nama='$nama', kategori_bantuan='$kategori', lat=$lat, lng=$lng WHERE id=$id";
$query = "UPDATE penduduk_miskin
SET nama='$nama', kategori_bantuan='$kategori', jumlah_jiwa=$jumlah_jiwa, lat=$lat, lng=$lng
WHERE id=$id";
if($conn->query($query)) {
if ($conn->query($query)) {
echo json_encode(["status" => "success", "message" => "Update berhasil."]);
} else {
echo json_encode(["status" => "error", "message" => "Gagal update: " . $conn->error]);
+9 -7
View File
@@ -4,16 +4,18 @@ include_once '../db_connect.php';
$data = json_decode(file_get_contents("php://input"));
if(!empty($data->lat) && !empty($data->lng)) {
$nama = $conn->real_escape_string($data->nama ?? '');
if (!empty($data->lat) && !empty($data->lng)) {
$nama = $conn->real_escape_string($data->nama ?? '');
$jenis = $conn->real_escape_string($data->jenis ?? 'Masjid');
$alamat = $conn->real_escape_string($data->alamat ?? '');
$radius = (float)($data->radius ?? 100);
$lat = (float)$data->lat;
$lng = (float)$data->lng;
$radius = (float)($data->radius ?? 500);
$lat = (float)$data->lat;
$lng = (float)$data->lng;
$query = "INSERT INTO rumah_ibadah (nama, alamat, radius, lat, lng) VALUES ('$nama', '$alamat', $radius, $lat, $lng)";
$query = "INSERT INTO rumah_ibadah (nama, jenis, alamat, radius, lat, lng)
VALUES ('$nama', '$jenis', '$alamat', $radius, $lat, $lng)";
if($conn->query($query)) {
if ($conn->query($query)) {
echo json_encode(["status" => "success", "id" => $conn->insert_id, "message" => "Rumah Ibadah berhasil ditambahkan."]);
} else {
echo json_encode(["status" => "error", "message" => "Gagal menambahkan: " . $conn->error]);
+11 -8
View File
@@ -4,17 +4,20 @@ include_once '../db_connect.php';
$data = json_decode(file_get_contents("php://input"));
if(!empty($data->id)) {
$id = (int)$data->id;
$nama = $conn->real_escape_string($data->nama ?? '');
if (!empty($data->id)) {
$id = (int)$data->id;
$nama = $conn->real_escape_string($data->nama ?? '');
$jenis = $conn->real_escape_string($data->jenis ?? 'Masjid');
$alamat = $conn->real_escape_string($data->alamat ?? '');
$radius = (float)($data->radius ?? 100);
$lat = (float)$data->lat;
$lng = (float)$data->lng;
$radius = (float)($data->radius ?? 500);
$lat = (float)$data->lat;
$lng = (float)$data->lng;
$query = "UPDATE rumah_ibadah SET nama='$nama', alamat='$alamat', radius=$radius, lat=$lat, lng=$lng WHERE id=$id";
$query = "UPDATE rumah_ibadah
SET nama='$nama', jenis='$jenis', alamat='$alamat', radius=$radius, lat=$lat, lng=$lng
WHERE id=$id";
if($conn->query($query)) {
if ($conn->query($query)) {
echo json_encode(["status" => "success", "message" => "Update berhasil."]);
} else {
echo json_encode(["status" => "error", "message" => "Gagal update: " . $conn->error]);