Files
lpj/resources/views/penilai/components/foto-jaminan.blade.php
2025-02-04 13:33:16 +07:00

221 lines
7.9 KiB
PHP

<div>
@php
$photoSections = [
'rute_menuju_lokasi' => [
'key' => 'rute_menuju_lokasi',
'name_prefix' => '',
'nested' => true,
],
'foto_rute_lainnya' => [
'key' => 'name_rute_lainnya',
'name_prefix' => '',
'nested' => true,
],
'foto_lingkungan' => [
'key' => 'foto_lingkungan',
'name_prefix' => '',
'nested' => true,
],
'single_photos' => [
'foto_basement' => 'Basement',
'foto_gerbang' => 'Gerbang',
'pendamping' => 'Pendamping',
],
'object_jaminan' => [
'key' => 'name_objek',
'name_prefix' => '',
'nested' => false,
],
'foto_lantai_unit' => [
'key' => 'name',
'name_prefix' => 'Foto Lantai',
'nested' => true,
],
];
$hasPhotos = false;
@endphp
<style>
/* General Styles */
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
.photo-container {
width: 100%;
margin-bottom: 10px;
clear: both;
page-break-inside: avoid;
}
.photo-row {
width: 100%;
clear: both;
page-break-inside: avoid;
}
.photo-item {
width: 48%;
margin-right: 2%;
float: left;
padding: 5px;
box-sizing: border-box;
page-break-inside: avoid;
}
.photo-item:nth-child(2n) {
margin-right: 0;
}
/* Image Styling */
.photo-item img {
max-width: 100%;
height: auto;
object-fit: cover;
}
/* Clearfix */
.clearfix::after {
content: "";
clear: both;
display: table;
}
/* Media Print */
@media print {
.photo-item {
width: 48%;
margin-right: 2%;
float: left;
padding: 5px;
box-sizing: border-box;
page-break-inside: avoid;
}
.photo-item img {
max-width: 100%;
height: auto;
object-fit: contain;
}
h2 {
font-size: 14px;
margin-bottom: 5px;
}
}
</style>
@foreach ($photoSections as $sectionKey => $sectionConfig)
@if ($sectionKey === 'single_photos')
<div class="photo-container">
@php $counter = 0; @endphp
@foreach ($sectionConfig as $photoKey => $photoName)
@if (isset($formFoto[$photoKey]) && !empty($formFoto[$photoKey]))
@php
$imagePath = storage_path('app/public/' . $formFoto[$photoKey]);
$hasPhotos = true;
@endphp
@if ($counter % 2 == 0)
<div class="photo-row clearfix">
@endif
<div class="photo-item border">
<h2 class="text-gray-600 font-semibold text-xl">
{{ $photoName }}
</h2>
@if ($statusLpj || file_exists($imagePath))
<img src="{{ $imagePath }}" alt="{{ $photoName }}" class="photo-image">
@endif
</div>
@if ($counter % 2 == 1 || $loop->last)
</div> <!-- Tutup baris setelah 2 item atau di akhir loop -->
@endif
@php $counter++; @endphp
@endif
@endforeach
</div>
@else
@php
$sectionData = $formFoto[$sectionKey] ?? null;
@endphp
@if (!empty($sectionData))
@if ($sectionConfig['nested'])
@if (isset($sectionData[$sectionConfig['key']][0]))
<div class="photo-container">
@php $counter = 0; @endphp
@foreach ($sectionData[$sectionConfig['key']][0] as $index => $item)
@php
$imagePath = storage_path('app/public/' . $item['path']);
$hasPhotos = true;
@endphp
@if ($counter % 2 == 0)
<div class="photo-row clearfix">
@endif
<div class="photo-item border">
<h2 class="text-gray-600 font-semibold text-xl">
{{ $sectionConfig['name_prefix']
? $sectionConfig['name_prefix'] . ' ' . ($index + 1)
: $item['name'] ?? 'Foto ' . ($index + 1) }}
</h2>
@if ($statusLpj || file_exists($imagePath))
<img src="{{ $imagePath }}" alt="{{ $item['path'] }}" class="photo-image">
@endif
</div>
@if ($counter % 2 == 1 || $loop->last)
</div> <!-- Tutup baris setelah 2 item atau di akhir loop -->
@endif
@php $counter++; @endphp
@endforeach
</div>
@endif
@else
<div class="photo-container">
@php $counter = 0; @endphp
@foreach ($sectionData as $index => $item)
@php
$name = $item[$sectionConfig['key']] ?? '';
$photoPath =
$sectionKey === 'object_jaminan'
? $item['foto_objek'] ?? ''
: $item['foto_rute_lainnya'] ?? '';
$imagePath = storage_path('app/public/' . $photoPath);
@endphp
@if (!empty($name) || !empty($photoPath))
@php $hasPhotos = true; @endphp
@if ($counter % 2 == 0)
<div class="photo-row clearfix">
@endif
<div class="photo-item border">
@if (!empty($name))
<h2 class="text-gray-600 font-semibold text-xl">
{{ $name }}
</h2>
@endif
@if ($statusLpj || (file_exists($imagePath) && !empty($photoPath)))
<img src="{{ $imagePath }}" alt="{{ $name ?: 'Foto' }}" class="photo-image">
@endif
</div>
@if ($counter % 2 == 1 || $loop->last)
</div> <!-- Tutup baris setelah 2 item atau di akhir loop -->
@endif
@php $counter++; @endphp
@endif
@endforeach
</div>
@endif
@endif
@endif
@endforeach
@if (!$hasPhotos)
<div class="text-center py-6 bg-gray-100 rounded-lg">
<p class="text-gray-500 italic">Tidak ada foto yang tersedia</p>
</div>
@endif
</div>