fix view foto jaminan
This commit is contained in:
@@ -52,7 +52,7 @@ class PenilaiController extends Controller
|
||||
$permohonanId = $request->query('permohonanId');
|
||||
$documentId = $request->query('documentId');
|
||||
$jaminanId = $request->query('jaminanId');
|
||||
|
||||
$basicData = $this->surveyorController->getCommonData();
|
||||
$permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId);
|
||||
$inpeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first();
|
||||
|
||||
@@ -62,7 +62,7 @@ class PenilaiController extends Controller
|
||||
$forminspeksi = json_decode($inpeksi->data_form, true);
|
||||
}
|
||||
|
||||
return view('lpj::penilai.lampiran', compact('permohonan', 'formFoto', 'forminspeksi'));
|
||||
return view('lpj::penilai.lampiran', compact('permohonan', 'formFoto', 'forminspeksi','basicData'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
|
||||
@@ -1,142 +1,169 @@
|
||||
<div>
|
||||
@php
|
||||
$photoSections = [
|
||||
'rute_menuju_lokasi' => [
|
||||
'key' => 'rute_menuju_lokasi',
|
||||
'name_prefix' => '',
|
||||
'nested' => true,
|
||||
],
|
||||
'foto_rute_lainnya' => [
|
||||
'key' => 'name_rute_lainnya',
|
||||
'name_prefix' => '',
|
||||
'nested' => false,
|
||||
],
|
||||
'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,
|
||||
],
|
||||
];
|
||||
<style>
|
||||
/* General Styles */
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
$hasPhotos = false;
|
||||
@endphp
|
||||
|
||||
<style>
|
||||
.photo-container {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.photo-item {
|
||||
width: 100%; /* Adjust to fit two photos per row */
|
||||
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 {
|
||||
width: 80%;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 5px;
|
||||
object-fit: contain;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
</style>
|
||||
|
||||
@foreach ($photoSections as $sectionKey => $sectionConfig)
|
||||
@if ($sectionKey === 'single_photos')
|
||||
<div class="photo-container">
|
||||
@foreach ($sectionConfig as $photoKey => $photoName)
|
||||
@if (isset($formFoto[$photoKey]) && !empty($formFoto[$photoKey]))
|
||||
/* 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>
|
||||
|
||||
@isset($basicData['foto'])
|
||||
@php
|
||||
$imagePath = storage_path('app/public/' . $formFoto[$photoKey]);
|
||||
$hasPhotos = true;
|
||||
$photos = $formFoto['upload_foto'] ?? [];
|
||||
if (!is_array($photos)) {
|
||||
$photos = [];
|
||||
}
|
||||
$groupedPhotos = collect($photos)->groupBy('category');
|
||||
|
||||
$mainPhotos = $groupedPhotos->filter(fn($_, $key) => $key !== 'Lainnya');
|
||||
$otherPhotos = $groupedPhotos->get('Lainnya', collect());
|
||||
@endphp
|
||||
<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>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
@if ($groupedPhotos->isEmpty())
|
||||
<p class="text-gray-500">Tidak ada foto yang tersedia.</p>
|
||||
@else
|
||||
<div class="photo-container">
|
||||
@foreach ($mainPhotos as $category => $photos)
|
||||
<h2 class="text-gray-800 font-bold text-lg">{{ $category }}</h2>
|
||||
|
||||
@php
|
||||
$sectionData = $formFoto[$sectionKey] ?? null;
|
||||
$groupedBySubcategory = $photos->groupBy('sub');
|
||||
@endphp
|
||||
|
||||
@if (!empty($sectionData))
|
||||
@if ($sectionConfig['nested'])
|
||||
@if (isset($sectionData[$sectionConfig['key']][0]))
|
||||
<div class="photo-container">
|
||||
@foreach ($sectionData[$sectionConfig['key']][0] as $index => $item)
|
||||
@if ($groupedBySubcategory->isEmpty())
|
||||
<p class="text-gray-500">Tidak ada subkategori yang tersedia.</p>
|
||||
@else
|
||||
@foreach ($groupedBySubcategory as $subcategory => $subPhotos)
|
||||
<h3 class="text-gray-600 font-semibold text-md">
|
||||
{{ $subcategory ?: '' }}
|
||||
</h3>
|
||||
|
||||
<div class="photo-row clearfix">
|
||||
@foreach ($subPhotos as $index => $item)
|
||||
@php
|
||||
$imagePath = storage_path('app/public/' . $item['path']);
|
||||
$hasPhotos = true;
|
||||
@endphp
|
||||
<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>
|
||||
<h4 class="text-gray-600 font-semibold text-sm">{{ $item['name'] }}</h4>
|
||||
@if ($statusLpj || file_exists($imagePath))
|
||||
<img src="{{ $imagePath }}" alt="{{ $item['path'] }}" class="photo-image">
|
||||
@else
|
||||
<p class="text-gray-400">Foto tidak ditemukan.</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@if (($index + 1) % 2 == 0 && !$loop->last)
|
||||
</div>
|
||||
<div class="photo-row clearfix">
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
@else
|
||||
<div class="photo-container">
|
||||
@foreach ($sectionData as $index => $item)
|
||||
@php
|
||||
$name = $item[$sectionConfig['key']] ?? '';
|
||||
$photoPath =
|
||||
$sectionKey === 'object_jaminan'
|
||||
? $item['foto_objek'] ?? ''
|
||||
: $item['foto_rute_lainnya'] ?? '';
|
||||
@endforeach
|
||||
|
||||
$imagePath = storage_path('app/public/' . $photoPath);
|
||||
@if (!$otherPhotos->isEmpty())
|
||||
<h2 class="text-gray-800 font-bold text-lg">Lainnya</h2>
|
||||
|
||||
@php
|
||||
$groupedBySubcategory = $otherPhotos->groupBy('sub');
|
||||
@endphp
|
||||
|
||||
@if (!empty($name) || !empty($photoPath))
|
||||
@php $hasPhotos = true; @endphp
|
||||
<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>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
@endif
|
||||
@endforeach
|
||||
@if ($groupedBySubcategory->isEmpty())
|
||||
<p class="text-gray-500">Tidak ada subkategori yang tersedia.</p>
|
||||
@else
|
||||
@foreach ($groupedBySubcategory as $subcategory => $subPhotos)
|
||||
<h3 class="text-gray-600 font-semibold text-md">
|
||||
{{ $subcategory ?: '' }}
|
||||
</h3>
|
||||
|
||||
@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>
|
||||
<div class="photo-row clearfix">
|
||||
@foreach ($subPhotos as $index => $item)
|
||||
@php
|
||||
$imagePath = storage_path('app/public/' . $item['path']);
|
||||
@endphp
|
||||
<div class="photo-item border">
|
||||
<h4 class="text-gray-600 font-semibold text-sm">{{ $item['name'] }}</h4>
|
||||
@if ($statusLpj || file_exists($imagePath))
|
||||
<img src="{{ $imagePath }}" alt="{{ $item['path'] }}" class="photo-image">
|
||||
@else
|
||||
<p class="text-gray-400">Foto tidak ditemukan.</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@if (($index + 1) % 2 == 0 && !$loop->last)
|
||||
</div>
|
||||
<div class="photo-row clearfix">
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
@endisset
|
||||
|
||||
@@ -1,264 +1,89 @@
|
||||
@if (isset($formFoto['rute_menuju_lokasi']['rute_menuju_lokasi']))
|
||||
<div class="card">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Rute Menuju Lokasi
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (isset($formFoto['rute_menuju_lokasi']['rute_menuju_lokasi']))
|
||||
@foreach ($formFoto['rute_menuju_lokasi']['rute_menuju_lokasi'][0] as $index => $item)
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class="text-gray-600 font-semibold text-xl">
|
||||
{{ $item['name'] ?? 'Rute menuju lokasi - ' . ($index + 1) }}
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
<img src="{{ Storage::url($item['path']) }}" alt="Gambar {{ $index + 1 }}"
|
||||
class="w-full h-auto object-cover">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@isset($basicData['foto'])
|
||||
@php
|
||||
$photos = $formFoto['upload_foto'] ?? [];
|
||||
if (!is_array($photos)) {
|
||||
$photos = [];
|
||||
}
|
||||
$groupedPhotos = collect($photos)->groupBy('category');
|
||||
@endphp
|
||||
|
||||
@if (isset($formFoto['foto_rute_lainnya']))
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Rute Lainnya
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (isset($formFoto['foto_rute_lainnya']))
|
||||
@foreach ($formFoto['foto_rute_lainnya'] as $index => $item)
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class="text-gray-600 font-semibold text-xl">
|
||||
{{ $item['name_rute_lainnya'] ?? 'Rute Lainnya - ' . ($index + 1) }}
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
<img src="{{ Storage::url($item['foto_rute_lainnya']) }}" alt="Gambar {{ $index + 1 }}"
|
||||
class="w-full h-auto object-cover">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (isset($formFoto['foto_gerbang']))
|
||||
<div class="card">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Gerbang
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
Gerbang
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($formFoto['foto_gerbang']) }}" alt="" class="w-full h-auto object-cover">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (isset($formFoto['foto_lingkungan']['foto_lingkungan']))
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Lingkungan </h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (isset($formFoto['foto_lingkungan']['foto_lingkungan']))
|
||||
@foreach ($formFoto['foto_lingkungan']['foto_lingkungan'][0] as $index => $item)
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class="text-gray-600 font-semibold text-xl">
|
||||
{{ $item['name'] ?? 'Lingkungan - ' . ($index + 1) }}
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
<img src="{{ Storage::url($item['path']) }}" alt="Gambar {{ $index + 1 }}"
|
||||
class="w-full h-auto object-cover">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (isset($formFoto['object_jaminan']))
|
||||
<div class="card">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Object Jaminan
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (isset($formFoto['object_jaminan']))
|
||||
@foreach ($formFoto['object_jaminan'] as $item)
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
{{ $item['name_objek'] ?? "" }}
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
<img src="{{ Storage::url($item['foto_objek']) }}" alt=""
|
||||
class="w-full h-auto object-cover">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (isset($formFoto['foto_lantai_unit']))
|
||||
<div class="card">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">Lantai</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (isset($formFoto['foto_lantai_unit']))
|
||||
@foreach ($formFoto['foto_lantai_unit'] as $floorIndex => $floorPhotos)
|
||||
@if ($groupedPhotos->isEmpty())
|
||||
<p class="text-gray-500">Tidak ada foto yang tersedia.</p>
|
||||
@else
|
||||
@foreach ($groupedPhotos as $category => $photos)
|
||||
<div class="mt-5">
|
||||
@foreach ($floorPhotos as $index => $item)
|
||||
@if (is_int($index) && isset($item['name'], $item['path']) && is_string($item['path']))
|
||||
<div class="flex items-center justify-between mt-3">
|
||||
<div class="grid gap-3">
|
||||
<h2 class="text-gray-800 font-bold text-xl mb-3">{{ $category ?? 'Tanpa Kategori' }}</h2>
|
||||
<div class="grid gap-5">
|
||||
@php
|
||||
$groupedBySubcategory = $photos->groupBy('sub');
|
||||
@endphp
|
||||
|
||||
@if ($groupedBySubcategory->isEmpty())
|
||||
|
||||
@foreach ($photos as $index => $item)
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="grid gap-5">
|
||||
<h3 class="text-gray-600 font-semibold text-lg">
|
||||
{{ $item['name'] ?? 'Foto Lantai ' . ($floorIndex + 1) . ' - ' . ($index + 1) }}
|
||||
{{ $item['name'] ?? 'Foto - ' . ($index + 1) }}
|
||||
</h3>
|
||||
<div class="flex items-center ">
|
||||
<img src="{{ Storage::url($item['path']) }}"
|
||||
alt="Gambar {{ $floorIndex + 1 }}-{{ $index + 1 }}"
|
||||
class="w-full h-auto object-cover">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
<div class="flex items-center">
|
||||
@if (isset($item['path']))
|
||||
<img src="{{ asset('storage/' . $item['path']) }}" alt="Gambar {{ $index + 1 }}"
|
||||
class="w-full h-auto object-cover rounded-md">
|
||||
@else
|
||||
<p class="text-gray-500">Gambar tidak tersedia</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
|
||||
@if (isset($formFoto['foto_basement']))
|
||||
<div class="card">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Basement
|
||||
</h3>
|
||||
<p class="text-gray-500 text-sm">{{ $item['description'] ?? '-' }}</p>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
</div>
|
||||
@endforeach
|
||||
@else
|
||||
<!-- Jika ada subkategori, tampilkan berdasarkan subkategori -->
|
||||
@foreach ($groupedBySubcategory as $subcategory => $subPhotos)
|
||||
<div class="mb-4">
|
||||
<!-- Judul Subkategori -->
|
||||
<h4 class="text-gray-700 font-semibold text-lg mb-2">
|
||||
@if ($subcategory)
|
||||
{{ $subcategory }}
|
||||
@endif
|
||||
</h4>
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
Basemnt
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($formFoto['foto_basement']) }}" alt="" class="w-full h-auto object-cover">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (isset($formFoto['foto_lantai_lainnya']))
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Lantai Lainnya
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (isset($formFoto['foto_lantai_lainnya']))
|
||||
@foreach ($formFoto['foto_lantai_lainnya'] as $index => $item)
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
@foreach ($subPhotos as $index => $item)
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="grid gap-5">
|
||||
<h2 class="text-gray-600 font-semibold text-xl">
|
||||
{{ $item['name_lantai_lainnya'] ?? 'Lantai - ' . ($index + 1) }}
|
||||
</h2>
|
||||
<h3 class="text-gray-600 font-semibold text-lg">
|
||||
{{ $item['name'] ?? 'Foto - ' . ($index + 1) }}
|
||||
</h3>
|
||||
<div class="flex items-center">
|
||||
<img src="{{ Storage::url($item['foto_lantai_lainnya']) }}"
|
||||
alt="Gambar {{ $index + 1 }}" class="w-full h-auto object-cover">
|
||||
@if (isset($item['path']))
|
||||
<img src="{{ asset('storage/' . $item['path']) }}" alt="Gambar {{ $index + 1 }}"
|
||||
class="w-full h-auto object-cover rounded-md">
|
||||
@else
|
||||
<p class="text-gray-500">Gambar tidak tersedia</p>
|
||||
@endif
|
||||
</div>
|
||||
<p class="text-gray-500 text-sm">{{ $item['description'] ?? '-' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
|
||||
|
||||
@if (isset($formFoto['pendamping']))
|
||||
<div class="card">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Pendamping
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
Pendamping
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($formFoto['pendamping']) }}" alt="" class="w-full h-auto object-cover">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@endisset
|
||||
|
||||
@php
|
||||
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
|
||||
if (($key = array_search('foto_tempat', $fotoTypes)) !== false) {
|
||||
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
|
||||
if (($key = array_search('foto_tempat', $fotoTypes)) !== false) {
|
||||
unset($fotoTypes[$key]);
|
||||
array_unshift($fotoTypes, 'foto_tempat');
|
||||
}
|
||||
$adaFoto = false;
|
||||
}
|
||||
$adaFoto = false;
|
||||
if (isset($forminspeksi)) {
|
||||
foreach ($fotoTypes as $type) {
|
||||
$imagePath = $forminspeksi[$type] ?? null;
|
||||
@@ -271,7 +96,7 @@ $adaFoto = false;
|
||||
@endphp
|
||||
|
||||
@if ($adaFoto)
|
||||
<div class="card">
|
||||
<div class="card">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Peta
|
||||
@@ -288,7 +113,7 @@ $adaFoto = false;
|
||||
@endphp
|
||||
|
||||
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
||||
<img src="{{ Storage::url($imagePath) }}" alt="{{ $type }}"
|
||||
<img src="{{ asset('storage/' . $imagePath) }}" alt="{{ $type }}"
|
||||
class="w-full h-auto object-cover">
|
||||
@endif
|
||||
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>
|
||||
@@ -299,5 +124,5 @@ $adaFoto = false;
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"rute_menuju_lokasi": [
|
||||
"upload_foto": [
|
||||
{
|
||||
"name": "Tampak Depan Objek",
|
||||
"description": "terdapat jalan depan rumah",
|
||||
@@ -22,6 +22,5 @@
|
||||
"updated_by": "Administrator",
|
||||
"updated_at": "2025-02-05 04:38:53"
|
||||
}
|
||||
],
|
||||
"foto_lantai_unit": []
|
||||
]
|
||||
}
|
||||
|
||||
@@ -322,25 +322,7 @@
|
||||
showConfirmButton: false,
|
||||
timer: 1500
|
||||
});
|
||||
var mockFile = {
|
||||
name: file.name,
|
||||
size: file.size || 12345,
|
||||
originalPath: file.path
|
||||
};
|
||||
|
||||
myDropzone.emit("addedfile", mockFile);
|
||||
myDropzone.emit("thumbnail", mockFile, response.file.path);
|
||||
myDropzone.emit("complete", mockFile);
|
||||
addEditAndDeleteButtons(mockFile, {
|
||||
path: response.file.path,
|
||||
name: response.file.name,
|
||||
description: response.file.description || '',
|
||||
category: response.file.category || 'lainnya',
|
||||
sub: response.file.sub || '',
|
||||
param_name: paramName
|
||||
});
|
||||
|
||||
|
||||
updatePhotoGallery();
|
||||
}
|
||||
},
|
||||
|
||||
@@ -448,7 +430,7 @@
|
||||
if (response.fotos && response.fotos.length) {
|
||||
response.fotos.forEach(function(foto) {
|
||||
// Cek jika foto sudah ada di Dropzone
|
||||
if (!isFileInDropzone(foto.name)) {
|
||||
|
||||
var mockFile = {
|
||||
name: foto.name,
|
||||
size: foto.size || 12345,
|
||||
@@ -466,7 +448,7 @@
|
||||
sub: foto.sub || '',
|
||||
param_name: 'upload_foto'
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
} else {
|
||||
console.log('Tidak ada foto yang ditemukan');
|
||||
@@ -479,10 +461,7 @@
|
||||
|
||||
}
|
||||
|
||||
function isFileInDropzone(fileName) {
|
||||
let files = myDropzone.files;
|
||||
return files.some(file => file.name === fileName);
|
||||
}
|
||||
|
||||
|
||||
// Inisialisasi Dropzone untuk elemen awal dengan pengecekan
|
||||
function safeInitDropzone(selector, paramName) {
|
||||
|
||||
Reference in New Issue
Block a user