Skip to content

Perbaiki fungsi dokumen saat ini tidak di tampilkan dengan benar - #1662

Merged
analisopendesa merged 3 commits into
rilis-devfrom
dev-1654
Jul 19, 2026
Merged

Perbaiki fungsi dokumen saat ini tidak di tampilkan dengan benar#1662
analisopendesa merged 3 commits into
rilis-devfrom
dev-1654

Conversation

@habibie11

Copy link
Copy Markdown
Contributor

issue # #1654

🎯 Deskripsi

Pull request ini memperbaiki halaman publik Dokumen Formulir (/unduhan/form-dokumen) agar dapat menampilkan dokumen secara komprehensif dan interaktif, menyelaraskan konsistensi antarmuka dengan halaman Regulasi dan Prosedur.

Penyebab utama dari issue sebelumnya antara lain:

  1. Tombol aksi yang hanya menampilkan ikon tanpa label teks, serta menggunakan tautan langsung (direct link) alih-alih memanfaatkan popup/modal.
  2. Adanya kolom status ("Published") yang tidak relevan di sisi pengguna, karena semua data yang terdaftar pada halaman publik sudah pasti berstatus diterbitkan.
  3. Ketiadaan modal atau sarana penyampaian informasi penting lainnya, seperti keterangan/deskripsi dokumen dan kalkulasi perhitungan batas waktu retensi.

Dengan PR ini, antarmuka daftar tabel telah disederhanakan, interaksi pada tombol diperjelas, dan pemanggilan modal dirancang untuk merender preview dokumen beserta seluruh kelengkapan detail atribut yang direquest dari sisi API.


🛠️ Perubahan yang Dilakukan

1. themes/opendk/default/resources/views/pages/unduhan/form-dokumen.blade.php

Fix — Pembaruan UI, Tombol, dan Implementasi Modal:

  • Menghapus kolom Status dari DataTables.
  • Mengganti tautan <a> biasa dan icon mata menjadi tombol interaktif berlabel "Lihat Dokumen".
  • Menambahkan fungsi JavaScript showDokumenDetail(id) untuk memanggil HTTP Request melalui AJAX dan merender susunan Bootstrap Modal secara dinamis—mencakup baris-baris informasi Jenis, Deskripsi, Tanggal Terbit, Waktu Retensi, serta penyiapan elemen IFRAME/IMG untuk fitur preview file.
  • Menerapkan fungsi helper buatan untuk mengkonversi nilai retention_days menjadi besaran teks satuan (Tahun, Bulan, Hari) serta memanfaatkan fungsi format tanggal menggunakan Vanilla JS.

2. app/Repositories/FormDokumenApiRepository.php

Fix — Penambahan Filter ID API:

  • Menambahkan AllowedFilter::exact('id') pada allowedFilters repositori guna memfasilitasi fetching detail single-item melalui Endpoint JSON secara tepat (?filter[id]=...) saat modal diklik.

3. app/Transformers/FormDokumenTransformer.php

Fix — Eksposure Data Atribut Tambahan:

  • Mengonversi pemetaan return array secara manual untuk menjamin keberadaan rincian kelengkapan objek Jenis Dokumen beserta properti keterangan yang baru disisipkan (description, retention_days, published_at, expired_at).
  • Menerapkan parameter tambahan mime_type dengan verifikasi fungsi is_file() sehingga tipe media (application/pdf atau image dapat dipilah langsung oleh skrip klien sebagai iframe atau image.

✅ Test Cases yang Diimplementasikan

  • Saat mengakses URL publik /unduhan/form-dokumen, tabel DataTables berhasil tampil dengan jumlah kolom yang sudah sesuai (tanpa ada kolom Status).
  • Saat mengklik opsi "Lihat Dokumen", fungsi API tereksekusi dan sukses merender Popup Modal Dokumen.
  • Saat melihat isi rincian Modal, label "Waktu Retensi" terhitung dalam konversi teks interaktif yang mudah dimengerti (Contoh: "1 Tahun" alih-alih sekedar menampilkan 365).
  • Saat file berupa PDF atau gambar, komponen media berhasil ter-load (embed) untuk dapat langsung ditinjau oleh end-user dari layar popup.

📸 Cara Menjalankan Uji Coba Manual

  1. Jalankan server lokal seperti biasa dan pastikan ada ketersediaan data pada menu Admin Dokumen Formulir. Sediakan varian waktu retensi yang berbeda (sebagai contoh, setting 0 untuk selamanya, 30 untuk nilai bulanan, 365 untuk tahunan, dsb).
  2. Akses antarmuka pengguna pada modul publik /unduhan/form-dokumen.
  3. Verifikasi jumlah kemunculan elemen tabel (Status seharusnya tidak ada lagi).
  4. Klik tombol interaktif Lihat Dokumen.
  5. Pastikan Modal Detail muncul menampilkan keterangan Dokumen beserta perlakuan preview media PDF/Gambarnya.
  6. Coba opsi pengunduhan melalui tombol "Unduh File" pada menu aksi (footer modal).

📸 Screenshot atau Video

image image

⚠️ Catatan Penting

Format tanggal dalam modal (published_at, expired_at) diformat menggunakan Vanilla JS function (formatDate()) untuk menggantikan keberadaan Moment.js yang bersifat rentan Not Defined Error pada konteks pemuatan aset secara publik (guna memastikan widget popup 100% stabil).

@habibie11
habibie11 requested a review from vickyrolanda July 13, 2026 13:21
@github-actions

Copy link
Copy Markdown
Contributor

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

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.

3 participants