Conversation
Contributor
|
🔄 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.
issue # #1767
🎯 Deskripsi
Pull request ini memperbaiki permasalahan pada menu Potensi di halaman publik OpenDK yang sebelumnya tidak berfungsi dan tidak mengarah ke halaman mana pun ketika diklik.
Penyebab utamanya adalah:
nav_menus(yang menyuplai struktur navbar publik melalui API/api/frontend/v1/website), menu Potensi tersimpan dengan dataurl => '#'tanpa memiliki submenu (children kosong). Akibatnya, elemen menu dirender sebagai<a href="#">tanpa dropdown toggle, sehingga tidak bereaksi saat diklik.routes/web.php, URL/potensidiarahkan kembali ke beranda denganRoute::permanentRedirect('/', '/'), serta belum ada route dan action controller untuk menampilkan katalog seluruh potensi.pages.potensi.index) sebelumnya hanya dirancang untuk kategori spesifik (/potensi/{slug}) dan memicu error JavaScript (TypeError) saat data potensi kosong. Pada tema Buen, kategori potensi di-hardcode dalam array$slugMap.Dengan perbaikan ini, pengguna publik dapat mengklik menu Potensi untuk membuka halaman katalog potensi (
/potensi), memfilter potensi berdasarkan kategori dengan tombol/tab dinamis, dan admin dapat mengelola menu potensi dengan fleksibel dari dashboard.🛠️ Perubahan yang Dilakukan
1.
routes/web.phpRoute::permanentRedirect('/', '/')pada grup prefixpotensi.potensi.indexpada URL/potensi:Route::group(['prefix' => 'potensi'], function () { - Route::permanentRedirect('/', '/'); + Route::get('/', 'PageController@PotensiIndex')->name('potensi.index'); Route::get('{slug}', 'PageController@PotensiByKategory')->name('potensi.kategori'); Route::get('{kategori}/{id}', 'PageController@PotensiShow')->name('potensi.kategori.show'); });2.
app/Http/Controllers/FrontEnd/PageController.phpApp\Models\TipePotensi.PotensiIndex(): Viewuntuk menampilkan seluruh potensi beserta daftar kategori:PotensiByKategory(string $slug): Viewagar menyertakan$kategori_potensiuntuk navigasi tab filter kategori di view.3. Tema Publik (Default & Buen)
themes/opendk/default/resources/views/pages/potensi/index.blade.php:$slugkosong memanggil/api/frontend/v1/potensi?include=tipe, jika ada$slugmenambahkan parameter&filter[tipe.slug]=slug.TypeErrorsaatitems.length === 0.themes/opendk/buen/resources/views/pages/potensi/index.blade.php:$slugMap.show.blade.php(Default & Buen):route('potensi.index').4. Database Migration & Seeders
database/migrations/2026_09_30_080000_fix_potensi_nav_menu.php:Potensipada tabelnav_menusdari'url' => '#'menjadi'url' => '/potensi'.website:api).database/seeders/DasNavigationTableSeeder.php:'#'menjadi'potensi'.5. Admin Menu Management (
Pengaturan > Menu)app/Http/Controllers/Setting/NavMenuController.php:'Potensi'pada$sourceItem:'/potensi'=>'Semua Potensi''/potensi/' . $item->slug=>$item->nama_kategori(dinamis dari modelTipePotensi).typepadaloopTreeagar tersimpan aman sesuai ENUM tabel.resources/views/setting/nav_menu/field.blade.php&index.blade.php:Potensidan menangani event change javascript untuk memilih kategori potensi.resources/views/setting/navigation/form.blade.php:MenuTipe::POTENSI(value="4").6. Automated Testing (Pest)
tests/Feature/Frontend/PotensiPublicTest.php:/potensi(Semua Potensi) mengembalikan status 200 dan viewpages.potensi.index./potensi/{slug}(Kategori Potensi) mengembalikan status 200./potensi/{kategori}/{id}(Detail Potensi) mengembalikan status 200 dan viewpages.potensi.show.nav_menusmemiliki URL/potensi./api/frontend/v1/websitememastikan menu Potensi memiliki atributurl: "/potensi".✅ Test Cases yang Diimplementasikan
/potensiberhasil menampilkan katalog seluruh potensi kecamatan beserta tab filter kategori (HTTP 200)./potensi/{slug}berhasil memfilter daftar potensi berdasarkan slug kategori yang dipilih./potensi/{kategori}/{id}berhasil menampilkan detail potensi lengkap dengan tombol kembali./potensi(tidak lagi#).tests/Feature/Frontend/PotensiPublicTest.phplulus (5 passed, 17 assertions).pint --test passed).📸 Cara Menjalankan Uji Coba Manual
/)./potensidan menampilkan data potensi yang telah diinput dari admin.📸 Screenshot atau Video