diff --git a/radius.php b/radius.php
index a5b1de9..cff107d 100644
--- a/radius.php
+++ b/radius.php
@@ -333,11 +333,40 @@ function renderIbadah() {
// Tombol ubah radius: hanya admin_ibadah (pemilik)
const canEditRadius = (!IS_ADMIN && USER_IBADAH_ID === d.id);
const radiusBtn = canEditRadius ? `
-
+ const radiusBtn = canEditRadius ? `
+
+
+
+
+
+
-
-
-
` : '';
+
+
+
+
+
+
+ ` : '';
// Tombol hapus: hanya admin_ibadah (pemilik) yang bisa menghapus
const hapusBtn = (!IS_ADMIN && USER_IBADAH_ID === d.id) ? `
@@ -359,8 +388,62 @@ function renderIbadah() {
});
}
+async function updatePenduduk(id) {
+
+ const nama =
+ document.getElementById(
+ 'edit-penduduk-' + id
+ ).value;
+
+ const fd = new FormData();
+
+ fd.append('action','update_penduduk');
+ fd.append('id',id);
+ fd.append('nama_penduduk',nama);
+
+ const res =
+ await fetch(
+ 'ambil.php',
+ {
+ method:'POST',
+ body:fd
+ }
+ );
+
+ const data = await res.json();
+
+ alert(data.message);
+
+ if(data.status==='success'){
+ loadData();
+ }
+}
+
// ===== RENDER PENDUDUK =====
function renderPenduduk() {
+ const editBtn = IS_ADMIN ? `
+
+
+
+
+
+
+
+
+
+ ` : '';
layerPenduduk.clearLayers();
allPenduduk.forEach(d => {
const color = d.status_warna === 'Hijau' ? 'green' : 'red';
@@ -395,7 +478,6 @@ function renderPenduduk() {
layerPenduduk.addLayer(marker);
});
}
-
// ===== CEK RADIUS (Proximity Analysis dengan Turf.js) =====
async function cekRadius() {
if (allIbadah.length === 0 || allPenduduk.length === 0) return;
@@ -426,6 +508,94 @@ async function cekRadius() {
updateStats();
}
+if (isset($_POST['action']) && $_POST['action'] === 'update_penduduk') {
+
+ if (!$isAdmin) {
+ echo json_encode([
+ "status" => "error",
+ "message" => "Tidak ada akses"
+ ]);
+ exit;
+ }
+
+ $id = (int)$_POST['id'];
+
+ $nama = mysqli_real_escape_string(
+ $conn,
+ $_POST['nama_penduduk']
+ );
+
+ $sql = "
+ UPDATE tabel_penduduk
+ SET nama_penduduk='$nama'
+ WHERE id=$id
+ ";
+
+ if (mysqli_query($conn,$sql)) {
+ echo json_encode([
+ "status"=>"success",
+ "message"=>"Penduduk berhasil diperbarui"
+ ]);
+ } else {
+ echo json_encode([
+ "status"=>"error",
+ "message"=>mysqli_error($conn)
+ ]);
+ }
+
+ exit;
+}
+
+if (isset($_POST['action']) && $_POST['action'] === 'update_ibadah') {
+
+ if ($isAdmin) {
+ echo json_encode([
+ "status"=>"error",
+ "message"=>"Tidak ada akses"
+ ]);
+ exit;
+ }
+
+ $id = (int)$_POST['id'];
+
+ if ($id !== $userIbadahId) {
+ echo json_encode([
+ "status"=>"error",
+ "message"=>"Rumah ibadah bukan milik anda"
+ ]);
+ exit;
+ }
+
+ $nama = mysqli_real_escape_string(
+ $conn,
+ $_POST['nama_ibadah']
+ );
+
+ $radius = (int)$_POST['radius'];
+
+ $sql = "
+ UPDATE tabel_ibadah
+ SET
+ nama_ibadah='$nama',
+ radius=$radius
+ WHERE id=$id
+ ";
+
+ if (mysqli_query($conn,$sql)) {
+ echo json_encode([
+ "status"=>"success",
+ "message"=>"Rumah ibadah berhasil diperbarui"
+ ]);
+ } else {
+ echo json_encode([
+ "status"=>"error",
+ "message"=>mysqli_error($conn)
+ ]);
+ }
+
+ exit;
+}
+
// ===== UPDATE STATUS WARNA KE SERVER =====
async function updateWarnaPenduduk(id, warna) {
try {
@@ -614,6 +784,43 @@ async function updateRadius(id) {
}
}
+async function updateIbadah(id) {
+
+ const nama =
+ document.getElementById(
+ 'edit-nama-' + id
+ ).value;
+
+ const radius =
+ document.getElementById(
+ 'edit-radius-' + id
+ ).value;
+
+ const fd = new FormData();
+
+ fd.append('action','update_ibadah');
+ fd.append('id',id);
+ fd.append('nama_ibadah',nama);
+ fd.append('radius',radius);
+
+ const res =
+ await fetch(
+ 'ambil.php',
+ {
+ method:'POST',
+ body:fd
+ }
+ );
+
+ const data = await res.json();
+
+ alert(data.message);
+
+ if(data.status==='success'){
+ loadData();
+ }
+}
+
// ===== KONFIRMASI BANTUAN =====
async function konfirmasiBantuan(id) {
if(!confirm("Konfirmasi bahwa bantuan telah disalurkan?")) return;