diff --git a/catatan_rilis.md b/catatan_rilis.md index dfe9091c..4105748d 100644 --- a/catatan_rilis.md +++ b/catatan_rilis.md @@ -9,14 +9,15 @@ Di rilis ini, versi 2605.0.1 berisi penambahan dan perbaikan yang diminta penggu 5. [#1001](https://github.com/OpenSID/OpenKab/issues/1001) Buat Halaman Detail Ketenagakerjaan di Statistik Presisi 6. [#1000](https://github.com/OpenSID/OpenKab/issues/1000) Buat Halaman Detail Keagamaan di Statistik Presisi 7. [#1021](https://github.com/OpenSID/OpenKab/issues/1021) Ubah field isi artikel menjadi rich editor +8. [#1025](https://github.com/OpenSID/OpenKab/issues/1025) Arahkan/Infokan pembuatan kategori artikel ketika kategori kosong saat membuat artikel opensid +9. [#1031](https://github.com/OpenSID/OpenKab/issues/1031) Arahkan/Infokan pembuatan kategori artikel ketika kategori kosong saat membuat artikel di pengaturan web -> artikel #### Perbaikan BUG 1. [#1023](https://github.com/OpenSID/OpenKab/issues/1023) Percobaan login gagal terkadang error 500 -2. [#1025](https://github.com/OpenSID/OpenKab/issues/1025) Arahkan/Infokan pembuatan kategori artikel ketika kategori kosong saat membuat artikel opensid -3. [#1026](https://github.com/OpenSID/OpenKab/issues/1026) Perbaikan fungsi insert media dan gambar pada tinymce artikel -4. [#1032](https://github.com/OpenSID/OpenKab/issues/1032) Perbaikan Tombol enter refresh halaman di kategori artikel opensid +2. [#1026](https://github.com/OpenSID/OpenKab/issues/1026) Perbaikan fungsi insert media dan gambar pada tinymce artikel +3. [#1032](https://github.com/OpenSID/OpenKab/issues/1032) Perbaikan Tombol enter refresh halaman di kategori artikel opensid #### Perubahan Teknis diff --git a/resources/views/articles/create.blade.php b/resources/views/articles/create.blade.php index 532d495b..1eb10d3b 100644 --- a/resources/views/articles/create.blade.php +++ b/resources/views/articles/create.blade.php @@ -30,3 +30,29 @@ class="fas fa-arrow-circle-left"> Kembali ke Daftar Artikel @endsection + +@push('js') + @if(count($categories) == 0) + + @endif +@endpush diff --git a/resources/views/articles/fields.blade.php b/resources/views/articles/fields.blade.php index c30e7734..ff1b2d50 100644 --- a/resources/views/articles/fields.blade.php +++ b/resources/views/articles/fields.blade.php @@ -1,4 +1,5 @@
+
@@ -22,7 +23,14 @@
{!! Html::label('Kategori', 'category_id') !!} - {!! Html::select('category_id', $categories)->class('form-control select2')->required()->value(old('category_id', $article->category_id ?? null)) !!} + @if(count($categories) == 0) + {!! Html::select('category_id', $categories)->class('form-control select2')->required()->value(old('category_id', $article->category_id ?? null))->attribute('disabled', 'disabled') !!} + + Kategori artikel belum tersedia. Buat kategori artikel sekarang. + + @else + {!! Html::select('category_id', $categories)->class('form-control select2')->required()->value(old('category_id', $article->category_id ?? null)) !!} + @endif
diff --git a/tests/Feature/ArticleControllerCmsTest.php b/tests/Feature/ArticleControllerCmsTest.php index b0ea536c..e7243f7e 100644 --- a/tests/Feature/ArticleControllerCmsTest.php +++ b/tests/Feature/ArticleControllerCmsTest.php @@ -111,4 +111,54 @@ public function test_destroy_ajax_menghapus_artikel_dengan_json() $response->assertJson(['success' => true]); $this->assertSoftDeleted('articles', ['id' => $article->id]); } + + // ========================================================= + // Test Pengecekan Kategori + // ========================================================= + + /** + * Halaman create harus mengirimkan variabel $categories ke view. + */ + public function test_create_mengirim_variabel_categories_ke_view() + { + Category::factory()->create(); // pastikan ada minimal 1 kategori + + $response = $this->get(route('articles.create')); + + $response->assertStatus(200) + ->assertViewHas('categories'); + } + + /** + * Ketika tidak ada kategori, halaman create harus menampilkan + * script peringatan SweetAlert agar pengguna diarahkan membuat kategori. + */ + public function test_create_menampilkan_peringatan_ketika_kategori_kosong() + { + // Hapus semua kategori agar kondisi kosong tercapai + Category::query()->forceDelete(); + + $response = $this->get(route('articles.create')); + + $response->assertStatus(200) + ->assertSee('Kategori Belum Tersedia'); + } + + /** + * Store harus gagal validasi jika category_id tidak dikirim. + */ + public function test_store_gagal_validasi_tanpa_category_id() + { + $response = $this->post(route('articles.store'), [ + 'title' => 'Artikel Tanpa Kategori', + 'slug' => 'artikel-tanpa-kategori', + 'content' => 'Isi konten artikel.', + 'published_at' => now()->format('d/m/Y'), + 'state' => 1, + // 'category_id' sengaja tidak dikirim + ]); + + $response->assertSessionHasErrors('category_id'); + $this->assertDatabaseMissing('articles', ['title' => 'Artikel Tanpa Kategori']); + } }