Skip to content

Dasbor Indikator - #1312

Open
pandigresik wants to merge 34 commits into
rilis-devfrom
2508-dasbor-indikator
Open

pandigresik wants to merge 34 commits into
rilis-devfrom
2508-dasbor-indikator

Conversation

@pandigresik

Copy link
Copy Markdown
Contributor

PR Description - #1300: KAB-05 Dasbor Indikator

Description

Dasbor DataSpasial menggabungkan ringkasan indikator, grafik, tabel, peta, dan card pendukung dalam satu halaman sesuai acuan issue #1300. Filter (kecamatan, desa, sektor, periode, indikator) tersimpan di URL, sinkron dengan peta, dan data dimuat via AJAX setelah filter diterapkan. Dropdown sektor dan indikator dimuat dari controller dengan caching untuk mengurangi beban API Database Gabungan.

Changes

  • Backend (Controller/Service/Routes)

    • app/Http/Controllers/DataSpasial/DasborDataSpasialController.php: Halaman dasbor tanpa inisiasi result via x-dataspasial-status (data di-load AJAX), kirim sektorList dan indikatorBySektor (di-cache 30 menit) dari skema terbit, endpoint data/peta/ekspor disesuaikan, hapus petaData tidak terpakai.
    • app/Services/DasborDataSpasialService.php: Mendukung agregasi per desa/kecamatan, filter indikator fleksibel, normalisasi nilai dengan kode kecamatan/desa, grafik mengikuti filter kecamatan/desa.
    • app/Http/Controllers/DataSpasial/PetaGabunganController.php: Support filter kode_kecamatan/kode_desa, menambahkan layer kategori dari fitur, dukungan grouping layer.
    • routes/web.php: Hapus route dasbor/peta-data tidak terpakai (peta pakai dataspasial/peta/data).
    • app/Policies/CustomCspPreset.php: Penyesuaian CSP jika diperlukan.
  • Frontend (Views/JS)

    • resources/views/dataspasial/dasbor/index.blade.php: Layout baru - peta + card "Wilayah Prioritas Intervensi" dan "Verifikasi" (kanan), di bawah ada card Grafik (header mengikuti indikator), "Kepatuhan Update & Kualitas Desa", "Bantuan Pengisian Data". Hapus pembungkus x-dataspasial-status.
    • resources/views/dataspasial/dasbor/filter.blade.php: Dropdown sektor & indikator di-render dari controller, tombol Reset/Tampilkan di baris baru full-width.
    • resources/views/dataspasial/dasbor/grafik.blade.php, tabel.blade.php, kartu.blade.php, ekspor.blade.php: Penyesuaian tampilan sesuai dasbor gabungan.
    • public/js/dataspasial/dasbor.js: Load data hanya saat klik Tampilkan atau ada query string, filter indikator per sektor, grafik per kecamatan/desa, auto-load jika ada query string.
    • public/js/dataspasial/peta-gabungan.js: Penggunaan L.control.layers (show/hide overlay), grouping layer DataSpasial/Kategori/Geospasial Lama, perbaikan rendering layer.
    • resources/views/dataspasial/peta/partials/peta.blade.php: Penyesuaian partial peta.
  • Tests

    • tests/Feature/DataSpasial/DasborDataSpasialControllerTest.php, tests/Feature/DataSpasial/Fixtures.php: Penyesuaian/penambahan fixture untuk dasbor.

Reason

Menggabungkan dasbor indikator sesuai kebutuhan issue #1300 (ringkasan, grafik, tabel, peta) dalam satu halaman dengan filter yang tersinkron dan bisa dibagikan via URL.

Impact

  • Pengalaman pengguna lebih terpusat (satu dasbor)
  • Beban request ke API Database Gabungan berkurang (cache filter meta)
  • Peta bisa difilter berdasarkan kecamatan/desa/sektor dan layer bisa di-show/hide per kategori/sektor

Related Issue

Steps to Reproduce

  1. Buka halaman Dasbor DataSpasial
  2. Pilih filter (sektor/kecamatan/desa/periode/indikator) lalu klik Tampilkan
  3. Klik batang grafik untuk menerapkan filter
  4. Eksport Excel dan bandingkan dengan tabel
  5. Buka URL dengan query string - filter dan data otomatis dimuat

Testing Checklist

  • Filter sektor/kecamatan/desa/periode/indikator berfungsi
  • Dropdown sektor/indikator terisi dari controller (cached)
  • Data dimuat via AJAX hanya saat klik Tampilkan / ada query string
  • Grafik batang per kecamatan/per desa sesuai filter
  • Peta terfilter berdasarkan kode_kecamatan/kode_desa/sektor
  • Layer control show/hide berfungsi
  • Ekspor Excel sesuai hasil filter
  • URL dapat dibagikan dan memuat filter yang sama

Technical Details

  • Filter meta disimpan di cache dataspasial:dasbor:filter-meta:v1 (30 menit)
  • Peta menggunakan endpoint dataspasial/peta/data dengan query kode_kecamatan, kode_desa, sektor, periode
  • Dropdown indikator difilter per sektor di client-side dari data yang dikirim controller
  • Layer panel menggunakan Leaflet L.control.layers untuk overlay

Screenshots

image

…-dashboard)\n\n- spec.md with US1–US5, FR-001–FR-017, SC-001–SC-007 (no reload, tanpa data!=nol, clustering, popup flags)\n- plan.md + research.md + data-model.md + quickstart.md + contracts/view-contract.md\n- requirements checklist all pass
…asial sectors); no sektor picker; kecamatan-only filter
…/click popup, kecamatan-only filter, no sektor picker
@github-actions

Copy link
Copy Markdown
Contributor

🔄 AI PR Review sedang antri di server...

Proses review akan segera dimulai di background — hasil akan muncul sebagai komentar setelah selesai.
Powered by CrewAI · PR #1312

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant