From 652bcb102dd9f7c59e04d1783c028681d44ec267 Mon Sep 17 00:00:00 2001 From: GuavaPopper Date: Fri, 5 Jun 2026 04:58:39 +0700 Subject: [PATCH] feat: add anggota and bantuan buttons to miskin popup on map Co-Authored-By: Claude Sonnet 4.6 --- resources/views/map.blade.php | 74 ++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/resources/views/map.blade.php b/resources/views/map.blade.php index d0cd68f..592a436 100644 --- a/resources/views/map.blade.php +++ b/resources/views/map.blade.php @@ -475,6 +475,42 @@ + + + + + + + + + + + +
@@ -837,7 +873,9 @@
KK/Jiwa:
${item.jumlah_kk}/${item.jumlah_orang}
Kondisi:
${item.kondisi_rumah || '-'}
-
+
+ + ${canEditMiskin ? `` : ''} ${canEditMiskin ? `` : ''}
@@ -1054,6 +1092,40 @@ } } + // ── ANGGOTA & BANTUAN dari popup peta ────────────────────────────────── + async function openMapAnggotaModal(idRumah) { + const item = miskinData?.find(m => m.id_rumah === idRumah); + document.getElementById('map_anggota_label').textContent = `ID: ${idRumah} — ${item?.nama_kk || '-'}`; + document.getElementById('mapmodal_anggota').showModal(); + const res = await fetch(`{{ url('/api/miskin') }}/${encodeURIComponent(idRumah)}/anggota`, { headers: { 'X-CSRF-TOKEN': csrfToken } }); + const list = await res.json(); + document.getElementById('map_bodyAnggota').innerHTML = list.length ? list.map(a => ` + + ${esc(a.nama)} + ${esc(a.hubungan.replace(/_/g, ' '))} + ${a.umur !== null ? esc(String(a.umur)) + ' th' : '-'} + ${a.pendidikan ? esc(a.pendidikan.replace(/_/g, ' ')) : '-'} + ${esc(a.status_hidup)} + `).join('') + : 'Belum ada anggota'; + } + + async function openMapBantuanModal(idRumah) { + const item = miskinData?.find(m => m.id_rumah === idRumah); + document.getElementById('map_bantuan_label').textContent = `ID: ${idRumah} — ${item?.nama_kk || '-'}`; + document.getElementById('mapmodal_bantuan').showModal(); + const res = await fetch(`{{ url('/api/miskin') }}/${encodeURIComponent(idRumah)}/bantuan`, { headers: { 'X-CSRF-TOKEN': csrfToken } }); + const list = await res.json(); + document.getElementById('map_bodyBantuan').innerHTML = list.length ? list.map(b => ` + + ${esc(b.tanggal_bantuan)} + ${esc(b.jenis_bantuan)} + ${esc(b.ibadah_nama || '-')} + ${esc(b.pencatat_nama)} + `).join('') + : 'Belum ada riwayat bantuan'; + } + // ── NOTIFIKASI PERUBAHAN DATA ──────────────────────────────────────── (function initNotifPolling() { const POLL_MS = 30000;