fix(permohonan): perbaikan tampilan dan logika akses pada halaman permohonan

- Menambahkan kondisi untuk menampilkan tombol "Tambah Permohonan" hanya untuk pengguna dengan peran 'administrator' dan 'pemohon-ao'.
- Memperbaiki indentasi dan format HTML untuk tabel permohonan.
- Mengoptimalkan logika untuk menampilkan aksi berdasarkan status permohonan dan peran pengguna.
- Memperbaiki penanganan event input untuk pencarian data.
This commit is contained in:
Daeng Deni Mardaeni
2025-03-22 16:29:08 +07:00
parent e351e5c0df
commit 138b811314

View File

@@ -22,7 +22,9 @@
<div class="flex flex-wrap gap-2.5"> <div class="flex flex-wrap gap-2.5">
<div class="h-[24px] border border-r-gray-200"></div> <div class="h-[24px] border border-r-gray-200"></div>
<a class="btn btn-sm btn-light" href="{{ route('permohonan.export') }}"> Export to Excel </a> <a class="btn btn-sm btn-light" href="{{ route('permohonan.export') }}"> Export to Excel </a>
@if(auth()->user()->hasAnyRole(['administrator', 'pemohon-ao']))
<a class="btn btn-sm btn-primary" href="{{ route('permohonan.create') }}"> Tambah Permohonan </a> <a class="btn btn-sm btn-primary" href="{{ route('permohonan.create') }}"> Tambah Permohonan </a>
@endif
</div> </div>
</div> </div>
</div> </div>
@@ -90,6 +92,10 @@
@endsection @endsection
@push('scripts') @push('scripts')
<script>
const userRoles = @json(auth()->user()->roles->pluck('name'));
</script>
<script type="text/javascript"> <script type="text/javascript">
function deleteData(data, noReg, debitur) { function deleteData(data, noReg, debitur) {
Swal.fire({ Swal.fire({
@@ -213,6 +219,7 @@
title: 'Actions', title: 'Actions',
render: (item, data) => { render: (item, data) => {
let actionHtml = `<div class="flex flex-nowrap justify-end gap-1.5">`; let actionHtml = `<div class="flex flex-nowrap justify-end gap-1.5">`;
const hasRole = (roles) => roles.some(role => userRoles.includes(role));
if (data.status === 'proses-survey' || data.status == 'rejected-reschedule') { if (data.status === 'proses-survey' || data.status == 'rejected-reschedule') {
actionHtml += ` actionHtml += `
@@ -255,18 +262,17 @@ title="Approve Jadwal Kunjungan No Reg ${data.nomor_registrasi}"
`; `;
} }
if (data.status !== 'done' && data.status !== 'batal') { if (data.status !== 'done' && data.status !== 'batal' && hasRole(['administrator', 'pemohon-ao'])) {
actionHtml += ` actionHtml += `
<a class="btn btn-sm btn-outline btn-info" href="permohonan/${data.id}/edit" title="Edit Permohonan"> <a class="btn btn-sm btn-outline btn-info" href="permohonan/${data.id}/edit" title="Edit Permohonan">
<i class="ki-outline ki-notepad-edit"></i> <i class="ki-outline ki-notepad-edit"></i>
</a>`; </a>`;
} }
if (data.status === 'order') { if (data.status === 'order' && hasRole(['administrator', 'pemohon-ao'])) {
actionHtml += ` actionHtml += `
<a onclick="deleteData(${data.id}, '${data.nomor_registrasi}','${data.debiture?.name}')" class="delete btn btn-sm btn-outline btn-danger" title="Batalkan Permohonan"> <a onclick="deleteData(${data.id}, '${data.nomor_registrasi}','${data.debiture?.name}')" class="delete btn btn-sm btn-outline btn-danger" title="Batalkan Permohonan">
<i class="ki-outline ki-cross-square"></i> <i class="ki-outline ki-cross-square"></i>
</a>`; </a>`;
} }