🎨 feat(ui-noc): tambah field nomor rekening lebih bayar & perbaikan styling konsistensi Tailwind

- Form NOC: tambah field nomor rekening lebih bayar (input number, readonly jika ada memo, hidden default, support old value & error handling)
- Foto Lampiran: ubah layout jadi grid 4 kolom dengan shadow & hover effect, perbaikan urutan class Tailwind & judul kategori lebih prominent
- Foto Lampiran: optimasi class container (relative, overflow-hidden, flex) & perbaikan spacing array $fotoTypes
- LPJ Sederhana Standar: konsistensi class grid/flex/input-group, role 'penilai' ditambahkan untuk akses tombol simpan, perbaikan kondisi disabled button
- Resume: optimasi class grid, flex, card-body, card-title, text, dan konsistensi urutan Tailwind di seluruh komponen
- Konsistensi class: perbaikan di form, foto-lampiran, lpj-standar, resume agar mengikuti urutan Tailwind (layout → sizing → styling)
- Struktur HTML: dirapikan untuk layout yang lebih responsif & semantik, dengan grid/flex yang lebih optimal
- UX: tampilan foto lebih rapi, form lebih mudah digunakan, role-based access lebih jelas, field tambahan untuk kebutuhan bisnis
- Dampak: data NOC lebih lengkap (tracking rekening lebih bayar), styling konsisten, UX meningkat, kode lebih maintainable
This commit is contained in:
Daeng Deni Mardaeni
2025-09-26 10:57:06 +07:00
parent a1b9b7af86
commit 112262d7d6
5 changed files with 174 additions and 147 deletions

View File

@@ -224,6 +224,23 @@
</div>
</div>
<!-- Field Nominal Lebih Bayar -->
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" id="nomor_rekening_lebih_bayar_section"
style="display: none;">
<label class="form-label max-w-56">
Nomor Rekening Lebih Bayar
</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="number" name="nomor_rekening_lebih_bayar" id="nomor_rekening_lebih_bayar"
class="input w-full @error('nomor_rekening_lebih_bayar') border-danger bg-danger-light @enderror"
value="{{ old('nomor_rekening_lebih_bayar', $persetujuanPenawaran->noc->nomor_rekening_lebih_bayar ?? '') }}"
placeholder="Masukkan nominal lebih bayar" {{ $hasMemo ? 'readonly' : '' }}>
@error('nomor_rekening_lebih_bayar')
<em class="text-sm alert text-danger">{{ $message }}</em>
@enderror
</div>
</div>
<!-- Field Bukti Pengembalian -->
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" id="bukti_pengembalian_section"
style="display: none;">

View File

@@ -12,30 +12,30 @@
@else
@foreach ($groupedPhotos as $category => $photos)
<div class="mt-5">
<h2 class="text-gray-800 font-bold text-xl mb-3">{{ $category ?? 'Tanpa Kategori' }}</h2>
<div class="card border rounded-lg shadow-lg p-4">
<h2 class="mb-3 text-xl font-bold text-gray-800">{{ $category ?? 'Tanpa Kategori' }}</h2>
<div class="p-4 rounded-lg border shadow-lg card">
<!-- Carousel Container -->
<div class="relative w-full overflow-hidden">
<div class="overflow-hidden relative w-full">
<div class="flex transition-transform duration-500 ease-in-out" id="carousel-{{ $category }}">
<span class="absolute top-0 right-2 text-white">
<i class="ki-filled ki-maximize"></i>
</span>
@foreach ($photos as $index => $item)
<div class="min-w-full flex flex-col items-center hover:cursor-pointer"
<div class="flex flex-col items-center min-w-full hover:cursor-pointer"
onclick="openPreview('{{ asset('storage/' . $item['path']) }}', '{{ $item['name'] }}', '{{ $item['description'] }}')">
<div class="w-full overflow-hidden rounded-md" style="height: 500px;">
<div class="overflow-hidden w-full rounded-md" style="height: 500px;">
@if (isset($item['path']))
<img src="{{ asset('storage/' . $item['path']) }}"
alt="Gambar {{ $index + 1 }}" class="w-full h-full object-cover">
alt="Gambar {{ $index + 1 }}" class="object-cover w-full h-full">
@else
<p class="text-gray-500">Gambar tidak tersedia</p>
@endif
</div>
<h3 class="text-gray-600 font-semibold text-lg mt-3">
<h3 class="mt-3 text-lg font-semibold text-gray-600">
{{ $item['name'] ?? 'Foto - ' . ($index + 1) }}
</h3>
<p class="text-gray-500 text-sm mt-1">{{ $item['description'] ?? '-' }}</p>
<p class="mt-1 text-sm text-gray-500">{{ $item['description'] ?? '-' }}</p>
</div>
@endforeach
@@ -43,12 +43,12 @@
<!-- Navigation Buttons -->
<button
class="absolute top-1/2 left-0 transform -translate-y-1/2 bg-gray-800 text-white rounded-full p-2 focus:outline-none"
class="absolute left-0 top-1/2 p-2 text-white bg-gray-800 rounded-full transform -translate-y-1/2 focus:outline-none"
onclick="prevSlide('{{ $category }}')">
<i class="ki-outline ki-left-square"></i>
</button>
<button
class="absolute top-1/2 right-0 transform -translate-y-1/2 bg-gray-800 text-white rounded-full p-2 focus:outline-none"
class="absolute right-0 top-1/2 p-2 text-white bg-gray-800 rounded-full transform -translate-y-1/2 focus:outline-none"
onclick="nextSlide('{{ $category }}')">
<i class="ki-outline ki-right-square"></i>
</button>
@@ -87,12 +87,12 @@
previewModal.className = 'fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50';
previewModal.innerHTML = `
<div class="relative">
<h3 class="text-white font-semibold text-lg mt-3 text-center">${name}</h3>
<img src="${imagePath}" class="max-w-full max-h-screen object-contain">
<button class="absolute top-2 right-2 bg-red-500 text-white rounded-full p-2"
<h3 class="mt-3 text-lg font-semibold text-center text-white">${name}</h3>
<img src="${imagePath}" class="object-contain max-w-full max-h-screen">
<button class="absolute top-2 right-2 p-2 text-white bg-red-500 rounded-full"
onclick="closePreview(this)">×</button>
<p class="text-white text-sm mt-1">${description}</p>
<p class="mt-1 text-sm text-white">${description}</p>
</div>
`;
document.body.appendChild(previewModal);
@@ -109,7 +109,7 @@
@php
$fotoTypes = ['upload_gs','foto_sentuh_tanahku','foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
$fotoTypes = ['upload_gs', 'foto_sentuh_tanahku', 'foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
$customLabels = [
'upload_gs' => 'Gambar Situasi',
@@ -139,27 +139,30 @@
@if ($adaFoto)
<div class="card">
<div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
GS, Tata Ruang dan Peta
</h3>
</div>
<div class="card-body">
<div>
<div class="grid grid-cols-1 gap-4 lg:grid-cols-4">
@if (isset($forminspeksi))
@forelse ($fotoTypes as $type)
<div class="border photo-item">
@php
$imagePath = $forminspeksi[$type] ?? null;
@endphp
<div class="mb-4">
<h4 class="mb-2 text-lg font-semibold text-center text-gray-800">
{{ $customLabels[$type] ?? '' }}</h4>
<div class="p-4 rounded-lg border shadow transition-shadow photo-item hover:shadow-lg">
@php
$imagePath = $forminspeksi[$type] ?? null;
@endphp
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<img src="{{ asset('storage/' . $imagePath) }}" alt="{{ $type }}"
class="w-full h-auto object-cover">
@endif
<p class="mt-2 text-sm">{{ $customLabels[$type] ?? '' }}</p>
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<img src="{{ asset('storage/' . $imagePath) }}" alt="{{ $type }}"
class="object-cover w-full h-auto rounded">
@endif
</div>
</div>
@empty
<p>Tidak ada tipe foto yang tersedia</p>
<p class="col-span-3 text-center text-gray-500">Tidak ada tipe foto yang tersedia</p>
@endforelse
@endif
</div>

View File

@@ -21,17 +21,17 @@
}
</style>
@include('lpj::assetsku.includenya')
<form id="form-lpj" method="post" class="w-full grid gap-5">
<form id="form-lpj" method="post" class="grid gap-5 w-full">
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
<input type="hidden" name="dokument_id" value="{{ request('documentId') }}">
<input type="hidden" name="nomor_registrasi" value="{{ $permohonan->nomor_registrasi }}">
<input type="hidden" id="lpj-data" value="{{ json_encode($lpjData ?? []) }}" />
@include('lpj::component.form-penilai')
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px">
<label class="form-label lg:form-label max-w-56 ">DISCLAIMER
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin-top: 20px">
<label class="form-label lg:form-label max-w-56">DISCLAIMER
</label>
<div class="input-group w-full flex gap-2">
<ol class="list-decimal pl-5 space-y-2">
<div class="flex gap-2 w-full input-group">
<ol class="pl-5 space-y-2 list-decimal">
<li>PENILAIAN INI DIBUAT BERDASARKAN ATURAN YANG BERLAKU DI SUBDIT APPRAISAL</li>
<li>LAPORAN INI DIBUAT BERDASARKAN DATA FOTOCOPY DOKUMEN YANG DITERIMA PENILAI DENGAN ASUMSI BAHWA DATA
TERSEBUT SESUAI DENGAN DOKUMEN ASLINYA</li>
@@ -43,20 +43,21 @@
</ol>
</div>
</div>
<div class="flex card-footer justify-end gap-5">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator']))
<button type="button" class="btn btn-primary" id="saveButton" onclick="saveLpjSederhanadanStandard()" {{ $permohonan->status == 'proses-paparan' || $permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor']) ? 'disabled' : '' }}>
<i class="ki-filled ki-save-2"></i>
<span id="saveButtonText">Simpan</span>
</button>
<div class="flex gap-5 justify-end card-footer">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator', 'penilai']))
<button type="button" class="btn btn-primary" id="saveButton" onclick="saveLpjSederhanadanStandard()"
{{ $permohonan->status == 'proses-paparan' || ($permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor'])) ? 'disabled' : '' }}>
<i class="ki-filled ki-save-2"></i>
<span id="saveButtonText">Simpan</span>
</button>
@endif
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal', 'administrator']))
<a class="btn btn-info"
href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ request('documentId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
Lampiran Foto dan Dokumen
</a>
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}" class="btn btn-light"
>
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}"
class="btn btn-light">
<i class="ki-filled ki-printer"></i> Cetak Hasil Inspeksi
</a>
<a class="btn btn-success"

View File

@@ -24,9 +24,9 @@
@php
$paparan = $permohonan->status === 'proses-paparan' ? 'Paparan' : 'Pelaporan';
@endphp
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto ">
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
<form id="formResume" method="POST" class="w-full grid gap-5">
<form id="formResume" method="POST" class="grid gap-5 w-full">
@csrf
@foreach ($permohonan->documents as $dokumen)
@@ -47,13 +47,13 @@
@endforeach
<div class="card">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
Data Jaminan
</h3>
@php
use Illuminate\Support\Facades\Route;
@endphp
<div class="flex items-center gap-2">
<div class="flex gap-2 items-center">
@if (Auth::user()->hasAnyRole(['administrator', 'senior-officer', 'EO Appraisal', 'DD Appraisal']) &&
Route::currentRouteName('otorisator.show'))
@@ -69,81 +69,81 @@
</div>
</div>
<div class="card-body grid gap-5 grid-cols-2">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="grid grid-cols-2 gap-5 card-body">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Nama Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->debiture))
<p class="text-2sm text-gray-700">{{ $permohonan->debiture->name }}</p>
<p class="text-gray-700 text-2sm">{{ $permohonan->debiture->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Alamat Object</label>
<div class="flex flex-wrap items-baseline w-full">
@foreach ($permohonan->documents as $dokumen)
<span class="text-2sm text-gray-700">
<span class="text-gray-700 text-2sm">
{{ formatAlamat($dokumen->pemilik) }}
</span>
@endforeach
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Nomor Registrasi</label>
<div class="flex flex-wrap items-base line w-full">
<p class="text-2sm text-gray-700">{{ $permohonan->nomor_registrasi }}</p>
<div class="flex flex-wrap w-full items-base line">
<p class="text-gray-700 text-2sm">{{ $permohonan->nomor_registrasi }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Cab/Direktorat</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->branch))
<p class="text-2sm text-gray-700">{{ $permohonan->branch->name }}</p>
<p class="text-gray-700 text-2sm">{{ $permohonan->branch->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Nomor Laporan</label>
<div class="flex flex-wrap items-base line w-full">
<p class="text-2sm text-gray-700">{{ $nomorLaporan ?? '' }}</p>
<div class="flex flex-wrap w-full items-base line">
<p class="text-gray-700 text-2sm">{{ $nomorLaporan ?? '' }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">AO</label>
<div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->user))
<p class="text-2sm text-gray-700">{{ $permohonan->user->name }}</p>
<p class="text-gray-700 text-2sm">{{ $permohonan->user->name }}</p>
@endif
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Tanggal Resume</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="date" name="tanggal_resume" class="input w-full" placeholder="Masukkan..."
<input type="date" name="tanggal_resume" class="w-full input" placeholder="Masukkan..."
value="{{ $resumeData['tanggal_resume'] ?? '' }}">
</div>
</div>
</div>
</div>
<div class="card ">
<div class="card">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
faktor
</h3>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="grid gap-5 card-body">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Faktor Positif</label>
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
@if (!empty($forminspeksi['fakta']['fakta_positif']))
@foreach ($forminspeksi['fakta']['fakta_positif'] as $index => $positif)
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="10">{{ old("fakta_positif.$index", $positif) }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full fakta_positif textarea-group">
<textarea class="mt-2 textarea" name="fakta_positif[]" rows="10">{{ old("fakta_positif.$index", $positif) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -151,27 +151,27 @@
</div>
@endforeach
@else
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="10">{{ old('fakta_positif.0', '') }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full fakta_positif textarea-group">
<textarea class="mt-2 textarea" name="fakta_positif[]" rows="10">{{ old('fakta_positif.0', '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
</div>
@endif
<button type="button" class="btn btn-primary btn-sm mt-5"
<button type="button" class="mt-5 btn btn-primary btn-sm"
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Faktor Negatif</label>
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
@if (!empty($forminspeksi['fakta']['fakta_negatif']))
@foreach ($forminspeksi['fakta']['fakta_negatif'] as $index => $negatif)
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="10">{{ old("fakta_negatif.$index", $negatif) }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full fakta_negatif textarea-group">
<textarea class="mt-2 textarea" name="fakta_negatif[]" rows="10">{{ old("fakta_negatif.$index", $negatif) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -179,15 +179,15 @@
</div>
@endforeach
@else
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="10">{{ old('fakta_negatif.0', $forminspeksi['fakta']['fakta_negatif'][0] ?? '') }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full fakta_negatif textarea-group">
<textarea class="mt-2 textarea" name="fakta_negatif[]" rows="10">{{ old('fakta_negatif.0', $forminspeksi['fakta']['fakta_negatif'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
<em id="error-fakta_negatif" class="text-sm alert text-danger"></em>
</div>
@endif
<button type="button" class="btn btn-primary btn-sm mt-5"
<button type="button" class="mt-5 btn btn-primary btn-sm"
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
<i class="ki-outline ki-plus"></i>
</button>
@@ -197,18 +197,18 @@
</div>
<div class="card border border-agi-100 min-w-full ">
<div class="min-w-full border card border-agi-100">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
KESIMPULAN NILAI PASAR WAJAR
</h3>
</div>
<div class="card-body grid gap-5">
<div class="grid gap-5 card-body">
<div class="gird gap-5 ">
<div class="gap-5 gird">
<label class="form-label max-w-56">SESUAI FISIK</label>
<div class="flex flex-wrap items-baseline w-full mt-5">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm">
<div class="flex flex-wrap items-baseline mt-5 w-full">
<table class="table text-sm font-medium text-gray-700 align-middle table-auto table-border">
<thead>
<tr>
<th class="text-center">Sertipikat</th>
@@ -299,12 +299,12 @@
@if (!empty($resumeData['tambahan']))
@foreach ($resumeData['tambahan'] as $counter => $item)
<div id="kesimpulan" class="gird gap-5 ">
<div id="kesimpulan" class="gap-5 gird">
<div class="flex flex-wrap items-baseline w-full">
<table
class="table table-auto table-border align-middle text-gray-700 font-medium text-sm mt-5">
class="table mt-5 text-sm font-medium text-gray-700 align-middle table-auto table-border">
<input class="input" name="tambahan_nama_kesimpulan[]"
placeholder="Masukkan Nama Kesimpulan" type="text"
value="{{ $item['tambahan_nama_kesimpulan'] ?? '' }}">
@@ -338,7 +338,7 @@
</td>
<td class="text-center">
<input type="text" name="tambahan_nilai[]"
class="input currency-format nilai-pasar"
class="input currency-format nilai-pasar"
value="{{ $item['nilai'] }}">
</td>
@@ -352,23 +352,23 @@
@endif
<div id="kesimpulan" class="grid gap-5 w-full"></div>
<div class="">
<button type="button" class="btn btn-primary btn-sm mt-5" onclick="tambahKesimpulanNilai()">
<button type="button" class="mt-5 btn btn-primary btn-sm" onclick="tambahKesimpulanNilai()">
<i class="ki-outline ki-plus"></i>
Kesimpulan Nilai
</button>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 " style="margin-top: 20px ">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin-top: 20px ">
<label class="form-label lg:form-label max-w-56 ">Catatan yang Perlu Diperhatikan
<label class="form-label lg:form-label max-w-56">Catatan yang Perlu Diperhatikan
</label>
<div class="w-full">
<div id="keterangan-container" class="flex items-baseline flex-wrap gap-2.5 w-full">
<div id="keterangan-container" class="flex flex-wrap gap-2.5 items-baseline w-full">
@if (!empty($forminspeksi['fakta']['keterangan']) && is_array($forminspeksi['fakta']['keterangan']))
@foreach ($forminspeksi['fakta']['keterangan'] as $index => $item)
<div class="keterangan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea name="keterangan[]" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="10">{{ old("keterangan.$index", $item) }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full keterangan textarea-group">
<textarea name="keterangan[]" class="mt-2 textarea" placeholder="Masukkan catatan penting" rows="10">{{ old("keterangan.$index", $item) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -376,27 +376,27 @@
</div>
@endforeach
@else
<div class="keterangan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea name="keterangan[]" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="10"></textarea>
<div class="flex gap-2 items-center mt-2 w-full keterangan textarea-group">
<textarea name="keterangan[]" class="mt-2 textarea" placeholder="Masukkan catatan penting" rows="10"></textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-keterangan" class="alert text-danger text-sm"></em>
<em id="error-keterangan" class="text-sm alert text-danger"></em>
</div>
@endif
</div>
<button type="button" onclick="addClonableItem('keterangan-container', 'keterangan')"
class="btn btn-primary btn-sm mt-5 ">
class="mt-5 btn btn-primary btn-sm">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px">
<label class="form-label lg:form-label max-w-56 ">DISCLAIMER
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin-top: 20px">
<label class="form-label lg:form-label max-w-56">DISCLAIMER
</label>
<div class="input-group w-full flex gap-2">
<ol class="list-decimal pl-5 space-y-2">
<div class="flex gap-2 w-full input-group">
<ol class="pl-5 space-y-2 list-decimal">
<li>LAPORAN RESUME INI DIKELUARKAN DIKARENAKAN BELUM DILAKUKANNYA PEMBAYARAN BIAYA PENILAIAN
JAMINAN
</li>
@@ -421,18 +421,20 @@
</div>
</div>
<div class="flex card-footer justify-end gap-5">
<div class="flex gap-5 justify-end card-footer">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator']))
<button type="button" class="btn btn-primary" onclick="saveResume()" {{ $permohonan->status == 'proses-paparan' || $permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor']) ? 'disabled' : '' }}>
<i class="ki-filled ki-save-2"></i>
Simpan</button>
<button type="button" class="btn btn-primary" onclick="saveResume()"
{{ $permohonan->status == 'proses-paparan' || ($permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor'])) ? 'disabled' : '' }}>
<i class="ki-filled ki-save-2"></i>
Simpan</button>
@endif
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal', 'administrator']))
<a class="btn btn-info"
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
Lampiran Foto dan Dokumen
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&jaminanId={{ request('jaminanId') }}&statusLp
j=1&statusLpj=1&header={{ request('header') }}">Lampiran
Foto dan Dokumen
</a>
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}"
class="btn btn-light">
@@ -459,12 +461,12 @@
const kesimpulan = document.getElementById('kesimpulan');
kesimpulan.innerHTML += `
<div class="grid gap-5 w-full mt-5" id="kesimpulan-${counter}">
<div class="grid gap-5 mt-5 w-full" id="kesimpulan-${counter}">
<div class="flex flex-wrap items-baseline w-full">
<div class="tabel-container w-full">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm mt-5">
<div class="w-full tabel-container">
<table class="table mt-5 text-sm font-medium text-gray-700 align-middle table-auto table-border">
<input type="text" name="tambahan_nama_kesimpulan[]"
class="input number-format"

View File

@@ -5,8 +5,9 @@
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
@if (Auth::user()->hasAnyRole(['senior-officer', 'administrator','DD Appraisal', 'EO Appraisal']) && Request::is('penilai/lampiran'))
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
@if (Auth::user()->hasAnyRole(['senior-officer', 'administrator', 'DD Appraisal', 'EO Appraisal']) &&
Request::is('penilai/lampiran'))
@include('lpj::component.detail-jaminan', [
'backLink' => 'otorisator.view-laporan',
'queryParams' => [
@@ -15,6 +16,7 @@
'inspeksiId' => request()->query('inspeksiId'),
'jaminanId' => request()->query('jaminanId'),
'statusLpj' => 1,
'header' => request('header'),
],
'title' => 'Paparan dokument',
])
@@ -30,13 +32,13 @@
@if (isset($formDenah['denahs']) && is_array($formDenah['denahs']) && count($formDenah['denahs']) > 0)
<div class="card ">
<div class="card-header bg-agi-50 uppercase">
<div class="card">
<div class="uppercase card-header bg-agi-50">
Denah
</div>
@foreach ($formDenah['denahs'] as $index => $denah)
<div class="card-body ">
<div class="w-full grid gap-5 ">
<div class="card-body">
<div class="grid gap-5 w-full">
<!-- Preview Container -->
<div class="preview-container-{{ $index }}" class="flex items-center">
@if (isset($denah['foto_denah']))
@@ -45,30 +47,31 @@
@endphp
@if (in_array($fileExtension, ['jpg', 'jpeg', 'png']))
<img src="{{ asset('storage/' . $denah['foto_denah']) }}" class="max-w-full max-h-screen object-contain">
<img src="{{ asset('storage/' . $denah['foto_denah']) }}"
class="object-contain max-w-full max-h-screen">
@elseif($fileExtension === 'pdf')
<embed src="{{ asset('storage/' . $denah['foto_denah']) }}" type="application/pdf"
width="100%" height="500px">
@endif
@endif
</div>
<div class="flex flex-wrap lg:flex-nowrap w-full gap-4 text-start">
<div class="flex flex-wrap gap-4 w-full lg:flex-nowrap text-start">
<div class="w-full">
<div class="flex flex-wrap gap-4">
<div class="flex w-full items-center justify-start gap-4">
<div class="flex gap-4 justify-start items-center w-full">
<label class="form-label max-w-56">
<span class="form-label">Nama Denah</span>
</label>
<p class="text-md text-gray-700">
<p class="text-gray-700 text-md">
{{ isset($denah['nama_denah']) ? $denah['nama_denah'] : '' }}</p>
</div>
</div>
<div class="flex flex-wrap gap-4">
<div class="flex w-full items-center justify-start gap-4">
<div class="flex gap-4 justify-start items-center w-full">
<label class="form-label max-w-56">
<span class="form-label">Total Luas</span>
</label>
<p class="text-md text-gray-700">
<p class="text-gray-700 text-md">
{{ isset($denah['luas_denah']) ? $denah['luas_denah'] . ' m²' : '' }}</p>
</div>
</div>
@@ -76,39 +79,40 @@
</div>
</div>
<div class="border-b border-b-gray-200 mt-5"></div>
<div class="mt-5 border-b border-b-gray-200"></div>
</div>
@endforeach
</div>
@endif
@if ($penilai && $penilai->kertas_kerja)
<div class="card">
<div class="card-header bg-agi-50 uppercase">
Kertas Kerja
<div class="card">
<div class="uppercase card-header bg-agi-50">
Kertas Kerja
</div>
<div class="flex justify-between items-center card-body">
@php
$url = '';
$fileName = '';
if ($penilai && $penilai->kertas_kerja) {
$url = asset('storage/' . $penilai->kertas_kerja);
$fileName = basename($penilai->kertas_kerja);
}
@endphp
@if ($penilai && $penilai->kertas_kerja)
<button type="button" class="btn btn-primary"
onclick="window.open('{{ $url }}', '_blank')">
<i class="ki-outline ki-cloud-download"></i>
Lihat Kertas Kerja</button>
<p class="text-gray-700 text-2sm">{{ $fileName }}</p>
@else
<p class="text-gray-700 text-2sm">Belum ada kertas kerja</p>
@endif
</div>
</div>
<div class="card-body flex items-center justify-between">
@php
$url = '';
$fileName = '';
if ($penilai && $penilai->kertas_kerja) {
$url = asset('storage/' . $penilai->kertas_kerja);
$fileName = basename($penilai->kertas_kerja);
}
@endphp
@if ($penilai && $penilai->kertas_kerja)
<button type="button" class="btn btn-primary" onclick="window.open('{{ $url }}', '_blank')">
<i class="ki-outline ki-cloud-download"></i>
Lihat Kertas Kerja</button>
<p class="text-2sm text-gray-700">{{ $fileName }}</p>
@else
<p class="text-2sm text-gray-700">Belum ada kertas kerja</p>
@endif
</div>
</div>
@endif
</div>
@endsection