Skip to content

perbaikan bantuan mengikuti ketentuan OpenSID#1080

Merged
affandii06 merged 3 commits into
rilis-devfrom
fix/perbaikan_bantuan
Jun 26, 2026
Merged

perbaikan bantuan mengikuti ketentuan OpenSID#1080
affandii06 merged 3 commits into
rilis-devfrom
fix/perbaikan_bantuan

Conversation

@pandigresik

Copy link
Copy Markdown
Contributor

Pull Request: Fitur Input kk_level dan Publikasi pada Form Bantuan

Description

Form bantuan pada OpenKab belum memiliki inputan untuk kk_level (Hubungan Dalam KK) jika sasaran program adalah "Keluarga / KK", serta belum ada inputan untuk publikasi seperti yang ada di OpenSID. PR ini menambahkan kedua fitur tersebut pada halaman create, edit, dan index bantuan.

Depedency

https://github.com/OpenSID/API-Database-Gabungan/pull/440

Changes made:

  1. Feature: Menambahkan dropdown kk_level (multi-select) pada form bantuan create dan edit, yang muncul hanya jika sasaran = "Keluarga / KK"
  2. Feature: Menambahkan dropdown publikasi (Ya/Tidak) pada form bantuan create dan edit
  3. UI Enhancement: Menambahkan kolom "Publikasi" pada tabel index bantuan
  4. Refactor: Mengubah pendekatan data loading pada edit.blade.php dari Alpine.js x-data menjadi jQuery murni untuk menghindari konflik syntax
  5. Styling: Menambahkan CSS untuk Select2 multi-select agar tampilan item yang dipilih lebih rapi

Reason for change:

  • Fitur belum ada: Form bantuan sebelumnya tidak memiliki inputan kk_level dan publikasi, padahal fitur ini sudah tersedia di OpenSID
  • Konsistensi: Menyelaraskan fitur bantuan OpenKab dengan OpenSID
  • Data integrity: Memungkinkan pengguna menentukan hubungan dalam KK untuk penerima bantuan bersasaran keluarga

Impact of change:

✅ Pengguna dapat memilih multiple hubungan dalam KK (kk_level) untuk bantuan bersasaran keluarga
✅ Pengguna dapat mengatur publikasi bantuan (Ya/Tidak)
✅ Data kk_level dan publikasi tersimpan dan ditampilkan pada tabel index
✅ Tampilan Select2 multi-select lebih konsisten dengan tema Bootstrap

Related Issue

Closes #1079

Steps to Reproduce

Before fix (problem):

  1. Buka halaman Tambah Bantuan atau Ubah Bantuan
  2. Pilih Sasaran = "Keluarga / KK"
  3. ❌ Tidak ada inputan untuk memilih hubungan dalam KK (kk_level)
  4. ❌ Tidak ada inputan untuk publikasi

After fix (solution):

  1. Buka halaman Tambah Bantuan atau Ubah Bantuan
  2. Pilih Sasaran = "Keluarga / KK"
  3. ✅ Muncul dropdown multi-select "Penerima (Hubungan Dalam KK)"
  4. ✅ Dropdown publikasi (Ya/Tidak) tersedia
  5. ✅ Jika sasaran diubah selain "Keluarga / KK", dropdown kk_level tersembunyi

Testing on related features:

  • Form Tambah Bantuan ✅
  • Form Ubah Bantuan ✅
  • Tabel Daftar Bantuan ✅
  • Select2 multi-select ✅

Checklist

Technical Details

Technical Explanation

create.blade.php:

  • Menambahkan x-data="{ sasaran: '' }" pada <form> untuk Alpine.js reactivity
  • Dropdown kk_level menggunakan x-show="sasaran == '2'" untuk conditional display
  • Select2 multi-select diinisialisasi dengan placeholder dan allowClear
  • Data opsi kk_level diambil dari SHDKEnum::select2()

edit.blade.php:

  • Menghapus Alpine.js x-data untuk menghindari konflik syntax @include di dalam attribute
  • Menggunakan jQuery murni untuk data loading via fetch() API
  • Show/hide kk_level di-handle via jQuery event $('select[name=sasaran]').on('change', ...)
  • Parsing data kk_level dari API menggunakan JSON.parse() karena format "[\"1\",\"2\"]"
  • Konversi sasaran ke String() agar sesuai dengan option value

index.blade.php:

  • Menambahkan kolom "Publikasi" pada header dan body DataTable
  • Menampilkan nilai publikasi sebagai "Ya" atau "Tidak"

CSS Styling

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #007bff;
    border-color: #007bff;
    color: #ffffff;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    border-right: none;
    color: #FFFFFF;
}

Dependencies added

No new dependencies.

Testing

Manual Testing

  • Buka form Tambah Bantuan, pilih sasaran "Keluarga / KK", pastikan dropdown kk_level muncul
  • Pilih beberapa opsi kk_level, pastikan tersimpan dengan benar
  • Ubah sasaran ke selain "Keluarga / KK", pastikan dropdown kk_level tersembunyi
  • Isi field publikasi, pastikan tersimpan dengan benar
  • Buka form Ubah Bantuan, pastikan data kk_level dan publikasi ter-load dengan benar
  • Cek tabel index bantuan, pastikan kolom publikasi tampil
  • Regression testing: pastikan fitur bantuan lain tidak terganggu

Screenshots / Video

Before:

  • Form bantuan tidak memiliki inputan kk_level dan publikasi
  • Tabel index bantuan tidak memiliki kolom publikasi

After:

  • Form bantuan memiliki dropdown kk_level (multi-select) yang muncul saat sasaran = "Keluarga / KK"
  • Form bantuan memiliki dropdown publikasi (Ya/Tidak)
  • Tabel index bantuan memiliki kolom publikasi

Breaking Changes

None

Migration Guide

Not required

References


Additional notes:

  • Data kk_level dari API dikembalikan dalam format JSON string "[\"1\",\"2\"]", bukan comma-separated. Parsing dilakukan dengan JSON.parse().
  • Pada edit.blade.php, pendekatan jQuery murni dipilih karena @include('layouts.components.header_bearer_api_gabungan') di dalam attribute x-data Alpine.js menyebabkan syntax error.

Video

simplescreenrecorder-2026-06-25_13.03.00.mp4

@github-actions

Copy link
Copy Markdown

🔄 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 #1080

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.

2 participants