Update radius.php
This commit is contained in:
+212
-5
@@ -333,11 +333,40 @@ function renderIbadah() {
|
|||||||
// Tombol ubah radius: hanya admin_ibadah (pemilik)
|
// Tombol ubah radius: hanya admin_ibadah (pemilik)
|
||||||
const canEditRadius = (!IS_ADMIN && USER_IBADAH_ID === d.id);
|
const canEditRadius = (!IS_ADMIN && USER_IBADAH_ID === d.id);
|
||||||
const radiusBtn = canEditRadius ? `
|
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">
|
<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>
|
<input
|
||||||
</div>` : '';
|
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
|
// Tombol hapus: hanya admin_ibadah (pemilik) yang bisa menghapus
|
||||||
const hapusBtn = (!IS_ADMIN && USER_IBADAH_ID === d.id) ? `
|
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 =====
|
// ===== RENDER PENDUDUK =====
|
||||||
function renderPenduduk() {
|
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();
|
layerPenduduk.clearLayers();
|
||||||
allPenduduk.forEach(d => {
|
allPenduduk.forEach(d => {
|
||||||
const color = d.status_warna === 'Hijau' ? 'green' : 'red';
|
const color = d.status_warna === 'Hijau' ? 'green' : 'red';
|
||||||
@@ -395,7 +478,6 @@ function renderPenduduk() {
|
|||||||
layerPenduduk.addLayer(marker);
|
layerPenduduk.addLayer(marker);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===== CEK RADIUS (Proximity Analysis dengan Turf.js) =====
|
// ===== CEK RADIUS (Proximity Analysis dengan Turf.js) =====
|
||||||
async function cekRadius() {
|
async function cekRadius() {
|
||||||
if (allIbadah.length === 0 || allPenduduk.length === 0) return;
|
if (allIbadah.length === 0 || allPenduduk.length === 0) return;
|
||||||
@@ -426,6 +508,94 @@ async function cekRadius() {
|
|||||||
updateStats();
|
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 =====
|
// ===== UPDATE STATUS WARNA KE SERVER =====
|
||||||
async function updateWarnaPenduduk(id, warna) {
|
async function updateWarnaPenduduk(id, warna) {
|
||||||
try {
|
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 =====
|
// ===== KONFIRMASI BANTUAN =====
|
||||||
async function konfirmasiBantuan(id) {
|
async function konfirmasiBantuan(id) {
|
||||||
if(!confirm("Konfirmasi bahwa bantuan telah disalurkan?")) return;
|
if(!confirm("Konfirmasi bahwa bantuan telah disalurkan?")) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user