feat(activity): tambahkan fitur upload lampiran dokumen
- Menambahkan bagian baru untuk lampiran dokumen pada detail aktivitas. - Memperbarui pengecekan peran pengguna untuk mengizinkan admin mengupload lampiran. - Mengorganisir tampilan lampiran dokumen dengan opsi untuk melihat dan mengunduh.
This commit is contained in:
@@ -57,45 +57,111 @@
|
|||||||
|
|
||||||
@if ($permohonan->status === 'done')
|
@if ($permohonan->status === 'done')
|
||||||
|
|
||||||
@foreach ($permohonan->documents as $dokumen)
|
@foreach ($permohonan->documents as $dokumen)
|
||||||
@php
|
@php
|
||||||
$inspeksiId = null;
|
$inspeksiId = null;
|
||||||
|
|
||||||
foreach ($dokumen->inspeksi as $item) {
|
foreach ($dokumen->inspeksi as $item) {
|
||||||
$inspeksiId = $item->id;
|
$inspeksiId = $item->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
$jaminanId = $dokumen->id;
|
$jaminanId = $dokumen->id;
|
||||||
$currentInspeksi = $inspeksiData[$jaminanId] ?? null;
|
$currentInspeksi = $inspeksiData[$jaminanId] ?? null;
|
||||||
$tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'ALAT BERAT'];
|
$tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'ALAT BERAT'];
|
||||||
@endphp
|
@endphp
|
||||||
<div class="card border border-agi-100 grow" id="activity_2024">
|
<div class="card border border-agi-100 grow" id="activity_2024">
|
||||||
|
|
||||||
<div class="card-header bg-agi-50">
|
<div class="card-header bg-agi-50">
|
||||||
<h3 class="card-title uppercase">
|
<h3 class="card-title uppercase">
|
||||||
Hasil Laporan Penilaian
|
Hasil Laporan Penilaian
|
||||||
</h3>
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
<a class="btn btn-info" href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $dokumen->jenis_jaminan_id }}&statusLpj=1">
|
||||||
|
LAMPIRAN FOTO DAN DOKUMEN
|
||||||
|
</a>
|
||||||
|
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => $dokumen->id, 'jenis_jaminan_id' => $dokumen->jenis_jaminan_id ]) }}" class="btn btn-light">
|
||||||
|
<i class="ki-filled ki-printer"></i> Hasil Inspeksi
|
||||||
|
</a>
|
||||||
|
<a class="btn btn-success" onclick="checkLaporan('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }}, 0 )">
|
||||||
|
<i class="ki-filled ki-printer"></i> Print Laporan
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<!-- New section for Lampiran Dokumen -->
|
||||||
|
<div class="card border border-agi-100 min-w-full mt-5">
|
||||||
|
<div class="card-header light:bg-agi-50">
|
||||||
|
<h3 class="card-title">
|
||||||
|
Lampiran Dokumen
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
||||||
|
@forelse($permohonan->lampiranDokumen as $lampiran)
|
||||||
|
<div class="border p-4 rounded-lg">
|
||||||
|
<h4 class="font-semibold mb-2">{{ $lampiran->nama_file }}</h4>
|
||||||
|
<p class="text-sm text-gray-600 mb-2">Keterangan : {{ $lampiran->keterangan }}</p>
|
||||||
|
<div class="flex justify-between items-center">
|
||||||
|
<div>
|
||||||
|
<a href="{{ Storage::url($lampiran->path_file) }}" target="_blank" class="text-blue-600 hover:underline">
|
||||||
|
<i class="ki-filled ki-eye mr-2"></i>View
|
||||||
|
</a>
|
||||||
|
<a href="{{ Storage::url($lampiran->path_file) }}" download="{{ Storage::url($lampiran->path_file) }}" class="text-green-600 hover:underline ml-4">
|
||||||
|
<i class="ki-filled ki-cloud-download mr-2"></i>Download
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
@if(Auth::user()->hasRole('administrator'))
|
||||||
|
<form action="{{ route('lampiran.delete', $lampiran->id) }}" method="POST" onsubmit="return confirm('Are you sure you want to delete this lampiran?');">
|
||||||
|
@csrf
|
||||||
|
@method('DELETE')
|
||||||
|
<button type="submit" class="text-red-600 hover:underline">
|
||||||
|
<i class="ki-filled ki-trash mr-2"></i>Delete
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@empty
|
||||||
|
<p class="col-span-3 text-center text-gray-500">Tidak ada lampiran dokumen.</p>
|
||||||
|
@endforelse
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card-body">
|
@if(Auth::user()->hasRole(['Penilai', 'administrator','penilai','admin']))
|
||||||
|
<form action="{{ route('lampiran.upload',) }}" method="POST" enctype="multipart/form-data" class="mt-6">
|
||||||
<a class="btn btn-info" href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $dokumen->jenis_jaminan_id }}&statusLpj=1">
|
@csrf
|
||||||
LAMPIRAN FOTO DAN DOKUMEN
|
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
|
||||||
</a>
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||||
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => $dokumen->id, 'jenis_jaminan_id' => $dokumen->jenis_jaminan_id ]) }}" class="btn btn-light">
|
<div>
|
||||||
<i class="ki-filled ki-printer"></i> Hasil Inspeksi
|
<label for="nama_file" class="block text-sm font-medium text-gray-700">Nama File</label>
|
||||||
</a>
|
<input type="text" name="nama_file" id="nama_file" required class="input mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md">
|
||||||
<a class="btn btn-success" onclick="checkLaporan('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }}, 0 )">
|
</div>
|
||||||
<i class="ki-filled ki-printer"></i> Print Laporan
|
<div>
|
||||||
</a>
|
<label for="file" class=" block text-sm font-medium text-gray-700">File</label>
|
||||||
|
<input type="file" name="file" id="file" required class="file-input mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md">
|
||||||
|
</div>
|
||||||
|
<div class="md:col-span-2">
|
||||||
|
<label for="keterangan" class="block text-sm font-medium text-gray-700">Keterangan</label>
|
||||||
|
<textarea name="keterangan" id="keterangan" rows="3" class="textarea mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md"></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mt-4">
|
||||||
|
<button type="submit" class="inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
||||||
|
Upload Lampiran
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
|
||||||
@endif
|
|
||||||
|
|
||||||
<div class="card border border-agi-100 grow" id="activity_2024">
|
<div class="card border border-agi-100 grow" id="activity_2024">
|
||||||
@include('lpj::component.history-permohonan')
|
@include('lpj::component.history-permohonan')
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
@include('lpj::surveyor.js.utils')
|
@include('lpj::surveyor.js.utils')
|
||||||
|
|||||||
@@ -390,7 +390,7 @@
|
|||||||
@endforelse
|
@endforelse
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if(Auth::user()->hasRole(['Penilai', 'administrator','penilai']))
|
@if(Auth::user()->hasRole(['Penilai', 'administrator','penilai','admin']))
|
||||||
<form action="{{ route('lampiran.upload',) }}" method="POST" enctype="multipart/form-data" class="mt-6">
|
<form action="{{ route('lampiran.upload',) }}" method="POST" enctype="multipart/form-data" class="mt-6">
|
||||||
@csrf
|
@csrf
|
||||||
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
|
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
|
||||||
|
|||||||
Reference in New Issue
Block a user