From 0f96224f566d9340d5faf9e6ef5c4f8169d3ff86 Mon Sep 17 00:00:00 2001 From: "Satrya.IY29" Date: Wed, 10 Jun 2026 12:25:43 +0000 Subject: [PATCH] Update radius.php --- radius.php | 217 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 212 insertions(+), 5 deletions(-) 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;