Skip to content

Fix: perbaikan menu artikel hilang#1091

Open
pandigresik wants to merge 3 commits into
rilis-devfrom
fix/perbaikan_menu_artikel_hilang
Open

Fix: perbaikan menu artikel hilang#1091
pandigresik wants to merge 3 commits into
rilis-devfrom
fix/perbaikan_menu_artikel_hilang

Conversation

@pandigresik

Copy link
Copy Markdown
Contributor

Pull Request: Fix Submenu Artikel OpenSID yang Hilang

Deskripsi

Memperbaiki submenu "Artikel" pada menu "Pengaturan OpenSID" yang tidak tampil lagi, padahal submenu tersebut pernah ditampilkan pada PR #877. Submenu ini mengarah ke halaman manajemen artikel OpenSID (/master/artikel) yang route-nya sudah tersedia. Fix ini menambahkan kembali definisi submenu pada Modul enum dan menjalankan migration yang memanggil command admin:menu-update untuk memperbarui menu administrator beserta permission-nya.

Perubahan yang dilakukan:

  1. [Bug Fix]: Menambahkan submenu "Artikel" pada app/Enums/Modul.php di bawah parent menu "Pengaturan OpenSID", ditempatkan setelah "Kategori Artikel" dengan URL master/artikel dan permission master-data-artikel.
  2. [Migration]: Membuat database/migrations/2026_07_08_063209_update_menu_admin.php yang memanggil Artisan command admin:menu-update untuk menyinkronkan menu administrator dengan definisi terbaru dari Modul enum.
  3. [Permission Sync]: Melalui command admin:menu-update, seluruh permission CRUD (master-data-artikel-read/write/edit/delete) otomatis dibuatkan (jika belum ada) dan disinkronisasi ke role "administrator".

Alasan perubahan:

  • Poin 1: Submenu "Artikel" yang diperkenalkan di PR Penambahan Modul Artikel OpenSID #877 tidak lagi tampil, sehingga pengguna tidak bisa mengakses halaman manajemen artikel OpenSID melalui navigasi menu.
  • Poin 2: Route /master/artikel dan controller ArtikelKabupatenController beserta permission master-data-artikel sebenarnya sudah ada, yang hilang hanya definisi menu-nya pada Modul enum dan data menu team administrator yang tersimpan.
  • Poin 3: Mengikuti konvensi yang sudah ada di codebase — 17 migration sebelumnya menggunakan pola Artisan::call('admin:menu-update') untuk memperbarui menu administrator setelah ada perubahan di Modul enum.

Dampak perubahan:

Fungsionalitas: Submenu "Artikel" kembali tampil pada menu "Pengaturan OpenSID" untuk administrator.
Aksesibilitas: Administrator dapat mengakses halaman manajemen artikel OpenSID melalui navigasi menu.
Permission: Permission master-data-artikel CRUD otomatis tersinkronisasi ke role administrator.
Konsistensi: Mengikuti pola migration yang sudah established di codebase.
No Regression: Tidak mengubah route, controller, atau logic aplikasi yang sudah ada — hanya menambahkan entri menu.

Masalah Terkait (Related Issue)

  • Solusi untuk issue #1090

Langkah untuk mereproduksi (Steps to Reproduce)

Sebelum fix (masalah):

  1. Login sebagai administrator.
  2. Buka sidebar menu → "Pengaturan OpenSID".
  3. Perhatikan daftar submenu yang tampil (Program Bantuan, Data Suplemen, Kategori Artikel).
  4. Submenu "Artikel" tidak ada di daftar.
  5. ❌ Tidak bisa mengakses halaman manajemen artikel OpenSID melalui navigasi menu.

Setelah fix (solusi):

  1. Login sebagai administrator.
  2. Buka sidebar menu → "Pengaturan OpenSID".
  3. Perhatikan daftar submenu yang tampil — submenu "Artikel" muncul setelah "Kategori Artikel".
  4. Klik submenu "Artikel".
  5. ✅ Halaman manajemen artikel OpenSID (/master/artikel) terbuka dengan normal.

Testing pada fitur lain yang terkait:

  • Submenu "Kategori Artikel" ✅ Tetap tampil (tidak terdampak)
  • Submenu "Program Bantuan" ✅ Tetap tampil
  • Submenu "Data Suplemen" ✅ Tetap tampil
  • Permission master-data-artikel ✅ Tersinkronisasi ke role administrator

Daftar Periksa (Checklist)

  • Saya telah mematuhi aturan penulisan script
  • Saya telah mengikuti proses review pull request
  • Saya telah membuat unit test/integration test untuk memverifikasi fix
  • Testing manual telah dilakukan di environment development
  • Tidak ada console error atau warning
  • Code sudah di-review oleh minimal 1 orang

Teknis Detail

Penjelasan Teknis

Menu administrator didefinisikan di app/Enums/Modul.php sebagai struktur default (Modul::Menu), lalu disimpan pada kolom menu di tabel teams untuk team "administrator". Fix dilakukan dengan:

  1. Modul enum — menambahkan submenu "Artikel" agar terbawa pada struktur menu default.
// app/Enums/Modul.php — submenu baru ditambahkan setelah "Kategori Artikel"
[
    'icon' => 'far fa-fw fa-circle',
    'text' => 'Artikel',
    'url' => 'master/artikel',
    'permission' => 'master-data-artikel',
],
  1. Migration — memanggil command admin:menu-update yang sudah ada (app/Console/Commands/updateAdminMenu.php). Command ini melakukan:
    • Clear cache
    • Mengambil team "administrator" dan mengganti menu-nya dengan Modul::Menu terbaru
    • Reset menu_order ke null (jika kolom ada)
    • Membuat seluruh permission CRUD untuk setiap menu/submenu via Permission::findOrCreate (iterasi Modul::permision: read, write, edit, delete)
    • Sync seluruh permission ke role "administrator"
// Migration sederhana mengikuti konvensi codebase
public function up(): void
{
    Artisan::call('admin:menu-update');
}

Pola ini sudah digunakan oleh 17 migration sebelumnya (mis. 2025_11_25_160801_update_menu_admin.php, 2024_11_24_220314_add_menu_suplemen.php), sehingga merupakan cara idiomatic di codebase ini untuk memperbarui menu administrator.

Konfigurasi yang berubah

Tidak ada perubahan file konfigurasi.

Dependencies yang ditambahkan

Tidak ada dependency baru.

File yang diubah

File Tipe Deskripsi
app/Enums/Modul.php Modified +submenu "Artikel" pada parent "Pengaturan OpenSID"
database/migrations/2026_07_08_063209_update_menu_admin.php New Migration pemanggil admin:menu-update untuk sync menu & permission

Testing

Manual Testing

  • Jalankan php artisan migrate dan pastikan tidak ada error
  • Login sebagai administrator → cek submenu "Artikel" tampil di "Pengaturan OpenSID"
  • Klik submenu "Artikel" → halaman /master/artikel terbuka
  • Regression: submenu lain di "Pengaturan OpenSID" tetap tampil dan berfungsi
  • Cek permission master-data-artikel-read/write/edit/delete tersimpan ke role administrator

Breaking Changes

Tidak ada. Perubahan hanya menambahkan entri menu dan menjalankan sinkronisasi permission melalui command yang sudah ada sebelumnya.

Migration Guide

Jalankan migration standar — tidak ada langkah khusus:

php artisan migrate

References

  • Issue #1090
  • PR #877 — submenu artikel yang diperkenalkan
  • Command admin:menu-update: app/Console/Commands/updateAdminMenu.php

Catatan tambahan: Route /master/artikel (ArtikelKabupatenController) dan permission master-data-artikel sudah ada sebelumnya, sehingga fix ini bersifat memulihkan tampilan menu tanpa mengubah logic aplikasi. Migration mengikuti konvensi admin:menu-update yang sudah digunakan di 17 migration sebelumnya.

Screenshot

image

@pandigresik pandigresik requested a review from vickyrolanda July 8, 2026 03:39
@github-actions

github-actions Bot commented Jul 8, 2026

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 #1091

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