Skip to content

Perbaiki prosedur halaman depan#1660

Open
habibie11 wants to merge 7 commits into
rilis-devfrom
dev-1652
Open

Perbaiki prosedur halaman depan#1660
habibie11 wants to merge 7 commits into
rilis-devfrom
dev-1652

Conversation

@habibie11

Copy link
Copy Markdown
Contributor

issue # #1652

🎯 Deskripsi

Pull request ini memperbaiki bug pada antarmuka pengguna (UI) di halaman publik Prosedur (/unduhan/prosedur atau /informasi/prosedur), di mana halaman tersebut justru menampilkan data Potensi (seperti Nama Potensi, Deskripsi, Lokasi, dan Gambar) alih-alih menampilkan daftar dokumen Prosedur.

Penyebab utamanya adalah view blade untuk halaman publik prosedur (prosedur.blade.php) menggunakan kode copy-paste dari halaman potensi yang belum pernah disesuaikan, serta ketidaktersediaan API endpoint /prosedur pada sisi frontend. Selain itu, fitur unduh prosedur pada web.php sebelumnya menggunakan parameter pencarian string (judul file) yang rentan mengalami isu URL encoding (seperti karakter spasi atau dash), dan elemen modal menggunakan <object> yang dapat menyebabkan PDF gagal dirender di beberapa browser.

Dengan perbaikan ini, alur data prosedur telah dirapihkan mulai dari sisi Backend API (Repository, Transformer, Controller) hingga View Blade. Format penampil dokumen PDF pada popup modal juga telah diseragamkan dan ditingkatkan kebesaran kompabilitasnya dengan beralih ke <iframe>.


🛠️ Perubahan yang Dilakukan

1. Penambahan Layer API Frontend Prosedur

Pembuatan komponen backend standar untuk melayani data DataTables secara publik:

  • [NEW] app/Repositories/ProsedurApiRepository.php: Repository untuk query, sorting, dan filter data Prosedur.
  • [NEW] app/Transformers/ProsedurTransformer.php: Transformer untuk melampirkan URL path file dan route pengunduhan berdasar ID.
  • [NEW] app/Http/Controllers/Api/Frontend/ProsedurController.php: Controller frontend untuk menangani request AJAX.
  • routes/api-frontend.php: Mendaftarkan route baru GET /api/frontend/v1/prosedur.

2. routes/web.php & app/Http/Controllers/FrontEnd/DownloadController.php

Fix — Memperbaiki logika pencarian pada fitur unduh:

  • Mengubah route pengunduhan menjadi berbasis ID ({file}/download di mana file adalah ID prosedur).
  • Memperbaiki downloadProsedur() dengan beralih dari fungsi where('judul_prosedur', ...) ke fungsi bawaan Laravel findOrFail() demi keandalan data.

3. themes/opendk/default/resources/views/pages/unduhan/prosedur.blade.php

Fix — Merekonstruksi View Publik:

  • Membuang layout Potensi dan membuat ulang layout Prosedur (Tabel #prosedur-table, header Data Prosedur, memanggil AJAX endpoint /prosedur).
  • Memperbaiki deteksi ekstensi file dan migrasi pemakaian penampil (PDF Viewer) pada Modal dari object menjadi iframe untuk meningkatkan support browser.

4. themes/opendk/default/resources/views/pages/unduhan/regulasi.blade.php

Improvement — Migrasi PDF viewer di Modal Regulasi:

  • Diselaraskan perbaikannya dengan prosedur.blade.php, mengganti tag <object> menjadi <iframe> dan memperbaiki kondisi deteksi format application/pdf.

✅ Test Cases yang Diimplementasikan

  • Mengakses halaman /informasi/prosedur menampilkan tabel dengan header "Data Prosedur".
  • Tabel DataTables hanya memunculkan 2 kolom: "Judul Prosedur" dan "Aksi".
  • Mengklik tombol aksi "Unduh" (warna biru) berhasil memulai unduhan file dengan aman karena berbasis Route Model/ID.
  • Mengklik tombol aksi "Lihat" (warna kuning) memunculkan Modal popup berisi detail Prosedur.
  • PDF Viewer pada Modal Prosedur maupun Modal Regulasi berhasil merender (menampilkan file PDF) menggunakan elemen <iframe> dengan sempurna tanpa error.

📸 Cara Menjalankan Uji Coba Manual

  1. Jalankan aplikasi web seperti biasa.
  2. Pastikan sudah ada data Prosedur yang memiliki attachment / dokumen (tambahkan dari Dashboard Admin jika kosong).
  3. Buka halaman web publik di URL /informasi/prosedur.
  4. Periksa teks header serta tabel kolom, pastikan tampil data Prosedur dan bukan Potensi.
  5. Pada salah satu row prosedur, klik opsi "Lihat" (ikon mata).
  6. Modal popup akan muncul. Jika file tersebut adalah .pdf, pastikan tampil viewer PDF inline dalam frame secara normal.
  7. Pada tabel yang sama, klik opsi "Unduh".
  8. File yang bersangkutan harus berhasil tersimpan ke dalam penyimpanan komputer.

📸 Screenshot atau Video

image image

⚠️ Catatan Penting

URL download lama menggunakan referensi judul string yang berpotensi error saat judul prosedur memuat kombinasi karakter spasi dan tanda penghubung khusus. Pembaruan kode telah mengamankan celah ini dengan bergantung pada ID file.

@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 #1660

@habibie11 habibie11 requested a review from vickyrolanda July 13, 2026 10:47
@pandigresik

Copy link
Copy Markdown
Contributor

ketika klik judul prosedur, menggunakan gambar yang lebar

image

@habibie11

Copy link
Copy Markdown
Contributor Author

ketika klik judul prosedur, menggunakan gambar yang lebar

image

silahkan dicoba kembali mas

@analisopendesa

Copy link
Copy Markdown
Contributor

mas @habibie11 disaya masih error seperti ini :
image

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.

4 participants