Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions catatan_rilis.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
26 changes: 26 additions & 0 deletions resources/views/articles/create.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,29 @@ class="fas fa-arrow-circle-left"></i></i>&ensp;Kembali ke Daftar Artikel</a>
</div>
</div>
@endsection

@push('js')
@if(count($categories) == 0)
<script nonce="{{ csp_nonce() }}">
console.log('Category check: empty');
document.addEventListener('DOMContentLoaded', function () {
if (typeof Swal === 'undefined') {
console.error('Swal is not defined');
return;
}
Swal.fire({
icon: 'info',
title: 'Kategori Belum Tersedia',
text: 'Kategori artikel wajib diisi. Buat kategori artikel terlebih dahulu sebelum menambahkan artikel.',
showCancelButton: true,
confirmButtonText: 'Buat Kategori',
cancelButtonText: 'Nanti Saja'
}).then((result) => {
if (result.isConfirmed) {
window.location.href = "{{ route('categories.create') }}";
}
});
});
</script>
@endif
@endpush
10 changes: 9 additions & 1 deletion resources/views/articles/fields.blade.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<div class="row">
<!-- Debug: Count Categories = {{ count($categories) }} -->
<div class="col-9">

<!-- Title Field -->
Expand All @@ -22,7 +23,14 @@
<!-- Category Id Field -->
<div class="form-group">
{!! 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') !!}
<small class="form-text text-danger">
Kategori artikel belum tersedia. <a href="{{ route('categories.create') }}">Buat kategori artikel sekarang</a>.
</small>
@else
{!! Html::select('category_id', $categories)->class('form-control select2')->required()->value(old('category_id', $article->category_id ?? null)) !!}
@endif
</div>

<!-- Category Id Field -->
Expand Down
50 changes: 50 additions & 0 deletions tests/Feature/ArticleControllerCmsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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']);
}
}