Update radius.php

This commit is contained in:
2026-06-10 12:25:43 +00:00
parent 192cf3cfa5
commit 0f96224f56
+212 -5
View File
@@ -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 ? `
<label class="f-label" style="margin-top:12px">Ubah Radius (meter)</label>
const radiusBtn = canEditRadius ? `
<label class="f-label">
Nama Rumah Ibadah
</label>
<input
id="edit-nama-${d.id}"
class="f-input"
value="${d.nama_ibadah}"
>
<label class="f-label">
Radius
</label>
<div style="display:flex;gap:8px">
<input type="number" id="edit-radius-${d.id}" class="f-input" value="${d.radius}" min="50" max="50000" style="margin-bottom:0;flex:1">
<button class="btn-submit" style="width:auto;padding:0 16px" onclick="updateRadius(${d.id})"><i class="bi bi-check-lg"></i></button>
</div>` : '';
<input
type="number"
id="edit-radius-${d.id}"
class="f-input"
value="${d.radius}"
style="margin-bottom:0;flex:1"
>
<button
class="btn-submit"
style="width:auto;padding:0 16px"
onclick="updateIbadah(${d.id})">
<i class="bi bi-check-lg"></i>
</button>
</div>
` : '';
// 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 ? `
<label class="f-label">
Edit Nama Penduduk
</label>
<div style="display:flex;gap:8px">
<input
id="edit-penduduk-${d.id}"
class="f-input"
value="${d.nama_penduduk}"
style="margin-bottom:0;flex:1"
>
<button
class="btn-submit"
style="width:auto;padding:0 16px"
onclick="updatePenduduk(${d.id})">
<i class="bi bi-check-lg"></i>
</button>
</div>
` : '';
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;