Fix filter kecamatan tampil tanpa memilih kabupaten terlebih dahulu - #1107
Merged
Conversation
|
🔄 AI PR Review sedang antri di server...
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request: Fix filter kecamatan tampil tanpa memilih kabupaten terlebih dahulu
Description
Memperbaiki bug di halaman dasbor (
/dasbor) di mana opsi filter kecamatan dapat tampil tanpa pengguna memilih kabupaten terlebih dahulu. Perbaikan dilakukan dengan memastikan default filter kabupaten mengikuti identitas kabupaten aplikasi (config('app.kodeKabupatenApi')) sehingga cascade filter kabupaten → kecamatan → desa berjalan pada urutan yang benar saat halaman dimuat, sekaligus menghapus pemanggilan inisialisasi berulang pada blok dasbor (summary, peta, dan tabel penduduk) agar setiap API hanya dipanggil satu kali.Changes made:
app/Listeners/LoginListener.php— Saat login,session('kabupaten.kode_kabupaten')kini menggunakan default identitas kabupaten aplikasi (config('app.kodeKabupatenApi')) menggantikannullketika user tidak memilikikode_kabupaten(mis. role administrator)resources/views/dasbor/tabel_penduduk.blade.php— MenambahkandeferLoading: 0(menahan request awal DataTable server-side) dan menghapustrigger('change')→draw()saat inisialisasiresources/views/dasbor/summary.blade.php— Menghapus$('#summary_block').trigger('change')saat inisialisasiresources/views/dasbor/peta.blade.php— Menghapus$('#map').trigger('change')saat inisialisasiresources/views/dasbor/index.blade.php— Menambahkan fallback polling yang memicu pemuatan data satu kali setelah daftar kabupaten termuat, hanya ketika kabupaten belum otomatis terseleksi.gitignore— Menambahkan direktori tooling lokal (specs/,.opencode/,.specify/)Reason for change:
draw()/request API berulang (summary, tabel penduduk, dan peta dipanggil lebih dari satu kali saat load)Impact of change:
✅ Urutan filter benar: Opsi kabupaten muncul terlebih dahulu, opsi kecamatan hanya setelah kabupaten dipilih
✅ Default filter mengikuti identitas: Filter kabupaten otomatis terseleksi sesuai identitas kabupaten aplikasi
✅ Performa: Setiap API (
data-website,wilayah/penduduk,get-list-coordinate) hanya dipanggil satu kali saat halaman dimuatRelated Issue
#1105
Steps to Reproduce
Sebelum (masalah):
/dasbor)Sesudah (solusi):
/dasbor)Testing pada fitur terkait:
Checklist
Technical Details
Technical Explanation
Filter wilayah dasbor bekerja dengan cascade: daftar kabupaten dimuat → jika kode kabupaten identitas (
identitas-openkab) cocok, kabupaten otomatis terseleksi → kecamatan dimuat setelahnya → desa menyusul. Sebelum perbaikan, blok dasbor memicu pemuatan datanya sendiri padaDOMContentLoaded(terlepas dari cascade), sehingga opsi kecamatan dan data API muncul tanpa menunggu kabupaten terpilih, dan request API terpanggil berulang (inisialisasi langsung + cascade auto-filter).Perbaikan:
LoginListenermenetapkan defaultsession('kabupaten.kode_kabupaten')ke identitas kabupaten agar default filter selalu tersedia dan deterministik.deferLoading: 0pada DataTable menahan request awal server-side; tabel hanya dimuat saat blok di-trigger('change').dasbor/index.blade.phpmemastikan data tetap termuat satu kali saat tidak ada kabupaten yang cocok dengan identitas:Configuration changes
Tidak ada perubahan konfigurasi aplikasi. Default kode kabupaten session memanfaatkan
config('app.kodeKabupatenApi')yang sudah di-set dari tabelidentitasdiAppServiceProvider.Dependencies added
No new dependencies
Testing
Manual Testing
/dasbor→ filter kabupaten otomatis terpilih sesuai identitas, kecamatan hanya muncul setelah kabupaten dipilihkode_kabupatenuserdata-website,wilayah/penduduk, danget-list-coordinatehanya dipanggil satu kali saat loadAutomated Testing
tests/Browser/SmokeDashboardTest.php— 4 passed (32 assertions)tests/Browser/SmokeDashboardDemografiTest.php— 5 passed (52 assertions)Status:
./vendor/bin/pest tests/Browser/SmokeDashboardTest.phpdantests/Browser/SmokeDashboardDemografiTest.php→ semua hijau.Screenshots / Video
simplescreenrecorder-2026-08-10_13.28.27.mp4
Sebelum:
Opsi kecamatan tampil tanpa memilih kabupaten terlebih dahulu (lihat lampiran issue #1105).
Sesudah:
Hanya opsi kabupaten yang tampil terlebih dahulu; opsi kecamatan muncul setelah kabupaten dipilih. Data dasbor dimuat satu kali.
Breaking Changes
None. Perubahan hanya pada perilaku inisialisasi blok dasbor dan default session; tidak ada perubahan route, tabel, atau kontrak API.
Migration Guide
Not required
References
Additional notes: Pengujian otomatis yang disebutkan dijalankan pada commit
6201c71d(perbaikan default filter kabupaten mengikuti identitas kabupaten). Screenshot "Sesudah" dapat ditambahkan setelah verifikasi di environment staging.