🔧 refactor(laporan): kontrol akses role, optimasi query, dan perbaikan UI

- Tambah role `pemohon-ao` & `pemohon-eo` untuk upload lampiran di LampiranDokumen.php
- Implementasi kontrol akses role di lampiran-dokumen.blade.php & laporan/index.blade.php (logika khusus nilai_liquidasi)
- Modifikasi query di LaporanController.php: hapus filter approval_eo_at & optimasi kondisi WHERE
- Perbaikan formatting query dengan indentasi lebih rapi & maintainable
- Standardisasi urutan class CSS di beberapa Blade (activity/index, penilaian/otorisator/index-sla & index)
- Pisahkan logika generateLaporanButton jadi function terpisah di laporan/index.blade.php
- Perbaikan tampilan tombol laporan berbasis role + cleanup baris kosong & indentasi
- Konsistensi UI/UX: responsive design lebih baik, interface clean & styling konsisten dengan Tailwind
- Tingkatkan security & maintainability: granular role access, query lebih efisien, code lebih terstruktur
This commit is contained in:
Daeng Deni Mardaeni
2025-09-19 09:10:06 +07:00
parent ee7c8ce97f
commit 2b5556410d
9 changed files with 74 additions and 67 deletions

View File

@@ -246,27 +246,33 @@
</a>`;
}
if (data.nilai_liquidasi == null) {
laporanButton = `
@if (auth()->user()->hasRole('pemohon-ao'))
if (data.nilai_liquidasi == null) {
laporanButton = `
<a href="laporan/${data.id}" class="btn btn-sm btn-primary">
Laporan
</a>`;
}
if ((data.status_bayar == "sudah_bayar" || data.status_bayar == "tidak_bayar") && data
.nilai_liquidasi > 0) {
if (data.penilai.type_penilai == 'resume' && !data.penilai.resume) {
laporanButton = `
<a href="{{ route('penilai.print-out') }}?permohonanId=${data.id}&documentId=${dokumenID}&inspeksiId=${inspeksiId}&jaminanId=${jenisJaminanID}&statusLpj=0&type=${type}" class="btn btn-sm btn-primary">
Laporan
</a>`;
} else {
laporanButton = `
<a href="{{ route('penilai.print-out') }}?permohonanId=${data.id}&documentId=${dokumenID}&inspeksiId=${inspeksiId}&jaminanId=${jenisJaminanID}&statusLpj=0&type=${typePenilaian}" class="btn btn-sm btn-primary">
Laporan
</a>`;
}
@endif
@if (auth()->user()->hasRole('pemohon-ao'))
@if ((data.status_bayar == "sudah_bayar" || data.status_bayar == "tidak_bayar") && data.nilai_liquidasi > 0)
laporanButton = generateLaporanButton(data, dokumenID, inspeksiId, jenisJaminanID,
data.penilai.type_penilai == 'resume' && !data.penilai.resume ? type : typePenilaian);
@endif
@else
@if (data.status_bayar == "sudah_bayar" || data.status_bayar == "tidak_bayar")
laporanButton = generateLaporanButton(data, dokumenID, inspeksiId, jenisJaminanID,
data.penilai.type_penilai == 'resume' && !data.penilai.resume ? type : typePenilaian);
@endif
@endif
function generateLaporanButton(data, dokumenID, inspeksiId, jenisJaminanID, typeParam) {
return `
<a href="{{ route('penilai.print-out') }}?permohonanId=${data.id}&documentId=${dokumenID}&inspeksiId=${inspeksiId}&jaminanId=${jenisJaminanID}&statusLpj=0&type=${typeParam}" class="btn btn-sm btn-primary">
Laporan
</a>`;
}