fix: real-time reverse geocoding on drag, copy missing backend scripts to publik, update right sidebar card UI

This commit is contained in:
2026-06-12 10:14:09 +07:00
parent a9785feeb5
commit 0d995aee1e
18 changed files with 624 additions and 160 deletions
+4 -3
View File
@@ -13,6 +13,7 @@ header('Content-Type: application/json');
$nama = trim($_POST['nama'] ?? '');
$nik = trim($_POST['nik'] ?? '');
$keterangan = trim($_POST['keterangan'] ?? '');
$alamat = trim($_POST['alamat'] ?? '');
$latitude = trim($_POST['latitude'] ?? '');
$longitude = trim($_POST['longitude'] ?? '');
$status_jangkauan= trim($_POST['status_jangkauan']?? 'Luar Jangkauan');
@@ -62,10 +63,10 @@ $foto_kk = uploadFoto('foto_kk');
try {
$stmt = $pdo->prepare(
"INSERT INTO penduduk_miskin (nama, nik, keterangan, latitude, longitude, status_jangkauan, fasilitas_publik_id, foto_rumah, foto_kk, status_bantuan)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
"INSERT INTO penduduk_miskin (nama, nik, keterangan, alamat, latitude, longitude, status_jangkauan, fasilitas_publik_id, foto_rumah, foto_kk, status_bantuan)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
);
$stmt->execute([$nama, $nik, $keterangan, $latitude, $longitude, $status_jangkauan, $fp_id, $foto_rumah, $foto_kk, $status_bantuan]);
$stmt->execute([$nama, $nik, $keterangan, $alamat, $latitude, $longitude, $status_jangkauan, $fp_id, $foto_rumah, $foto_kk, $status_bantuan]);
$id = $pdo->lastInsertId();
$stmtSelect = $pdo->prepare("SELECT pm.*, fp.nama AS fp_nama FROM penduduk_miskin pm LEFT JOIN fasilitas_publik fp ON pm.fasilitas_publik_id = fp.id WHERE pm.id = ?");
+4 -2
View File
@@ -55,9 +55,11 @@ function uploadFoto($file_input_name) {
$foto_rumah = uploadFoto('foto_rumah');
$foto_kk = uploadFoto('foto_kk');
$alamat = trim($_POST['alamat'] ?? '');
try {
$query = "UPDATE penduduk_miskin SET nama=?, nik=?, keterangan=?, latitude=?, longitude=?, status_jangkauan=?, fasilitas_publik_id=?, status_bantuan=?";
$params = [$nama, $nik, $keterangan, $latitude, $longitude, $status_jangkauan, $fp_id, $status_bantuan];
$query = "UPDATE penduduk_miskin SET nama=?, nik=?, keterangan=?, alamat=?, latitude=?, longitude=?, status_jangkauan=?, fasilitas_publik_id=?, status_bantuan=?";
$params = [$nama, $nik, $keterangan, $alamat, $latitude, $longitude, $status_jangkauan, $fp_id, $status_bantuan];
if ($foto_rumah) {
$query .= ", foto_rumah=?";
+16 -5
View File
@@ -2,7 +2,7 @@
session_start();
include '../koneksi.php';
if (!isset($_SESSION['user_id'])) {
if (!isset($_SESSION['role']) || !in_array($_SESSION['role'], ['admin', 'petugas'])) {
echo json_encode(['status' => 'error', 'message' => 'Unauthorized']);
exit;
}
@@ -12,6 +12,7 @@ $latitude = $_POST['latitude'] ?? '';
$longitude = $_POST['longitude'] ?? '';
$status_jangkauan = $_POST['status_jangkauan'] ?? '';
$fasilitas_publik_id = $_POST['fasilitas_publik_id'] ?? null;
$alamat = $_POST['alamat'] ?? null;
if (!$id || !$latitude || !$longitude) {
echo json_encode(['status' => 'error', 'message' => 'Data tidak lengkap']);
@@ -24,11 +25,21 @@ if ($fasilitas_publik_id === '') {
try {
if ($status_jangkauan !== '') {
$stmt = $pdo->prepare("UPDATE penduduk_miskin SET latitude = ?, longitude = ?, status_jangkauan = ?, fasilitas_publik_id = ? WHERE id = ?");
$stmt->execute([$latitude, $longitude, $status_jangkauan, $fasilitas_publik_id, $id]);
if ($alamat !== null) {
$stmt = $pdo->prepare("UPDATE penduduk_miskin SET latitude = ?, longitude = ?, status_jangkauan = ?, fasilitas_publik_id = ?, alamat = ? WHERE id = ?");
$stmt->execute([$latitude, $longitude, $status_jangkauan, $fasilitas_publik_id, $alamat, $id]);
} else {
$stmt = $pdo->prepare("UPDATE penduduk_miskin SET latitude = ?, longitude = ?, status_jangkauan = ?, fasilitas_publik_id = ? WHERE id = ?");
$stmt->execute([$latitude, $longitude, $status_jangkauan, $fasilitas_publik_id, $id]);
}
} else {
$stmt = $pdo->prepare("UPDATE penduduk_miskin SET latitude = ?, longitude = ? WHERE id = ?");
$stmt->execute([$latitude, $longitude, $id]);
if ($alamat !== null) {
$stmt = $pdo->prepare("UPDATE penduduk_miskin SET latitude = ?, longitude = ?, alamat = ? WHERE id = ?");
$stmt->execute([$latitude, $longitude, $alamat, $id]);
} else {
$stmt = $pdo->prepare("UPDATE penduduk_miskin SET latitude = ?, longitude = ? WHERE id = ?");
$stmt->execute([$latitude, $longitude, $id]);
}
}
echo json_encode(['status' => 'success']);