fix
This commit is contained in:
parent
caea0f2873
commit
763e571cf6
@ -69,64 +69,115 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Detail Form dari JSON -->
|
<!-- Detail Form dari JSON -->
|
||||||
<div class="bg-white rounded-2xl shadow-lg border border-gray-100 p-6 hover:shadow-xl transition">
|
<div class="bg-white rounded-2xl shadow-lg border border-gray-100 p-6 hover:shadow-xl transition">
|
||||||
<h3 class="text-2xl font-semibold mb-6 text-gray-900 border-b pb-3">
|
<h3 class="text-2xl font-semibold mb-6 text-gray-900 border-b pb-3">
|
||||||
📋 Detail Form Pemesanan
|
📋 Detail Form Pemesanan
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
@if($pelanggan->form && count($pelanggan->form) > 0)
|
@if($pelanggan->form && count($pelanggan->form) > 0)
|
||||||
<div class="overflow-hidden rounded-lg border border-gray-200">
|
@php
|
||||||
<table class="min-w-full text-sm text-gray-700">
|
$fotoFields = [];
|
||||||
<tbody class="divide-y divide-gray-200">
|
$textFields = [];
|
||||||
@foreach($pelanggan->form as $field => $value)
|
|
||||||
<tr class="hover:bg-gray-50 align-top">
|
|
||||||
<th class="px-4 py-3 font-semibold bg-gray-50 w-1/4">
|
|
||||||
{{ ucwords(str_replace('_', ' ', $field)) }}
|
|
||||||
</th>
|
|
||||||
<td class="px-4 py-3">
|
|
||||||
@if(is_array($value))
|
|
||||||
{{ implode(', ', $value) }}
|
|
||||||
|
|
||||||
{{-- ✅ Jika value adalah path atau URL gambar --}}
|
foreach ($pelanggan->form as $field => $value) {
|
||||||
@elseif(
|
$isFoto = false;
|
||||||
is_string($value) &&
|
|
||||||
(preg_match('/\.(jpg|jpeg|png|gif|webp)$/i', $value)
|
|
||||||
|| Str::startsWith($value, ['storage/', 'uploads/', 'images/']))
|
|
||||||
)
|
|
||||||
@php
|
|
||||||
// Cek apakah gambar disimpan di storage Laravel
|
|
||||||
$imageUrl = Str::startsWith($value, ['http://', 'https://'])
|
|
||||||
? $value
|
|
||||||
: asset($value);
|
|
||||||
@endphp
|
|
||||||
|
|
||||||
<a href="{{ $imageUrl }}" target="_blank" class="block mt-2">
|
if (is_array($value)) {
|
||||||
<img src="{{ $imageUrl }}"
|
// jika array berisi gambar
|
||||||
alt="{{ $field }}"
|
$isFoto = collect($value)->contains(function ($v) {
|
||||||
class="w-40 h-40 object-cover rounded-lg border border-gray-200 shadow-sm hover:shadow-md transition">
|
return preg_match('/\.(jpg|jpeg|png|gif|webp)$/i', $v)
|
||||||
</a>
|
|| Str::startsWith($v, ['storage/', 'photos/', 'uploads/', 'images/']);
|
||||||
|
});
|
||||||
|
} elseif (is_string($value)) {
|
||||||
|
// jika satu gambar
|
||||||
|
$isFoto = preg_match('/\.(jpg|jpeg|png|gif|webp)$/i', $value)
|
||||||
|
|| Str::startsWith($value, ['storage/', 'photos/', 'uploads/', 'images/']);
|
||||||
|
}
|
||||||
|
|
||||||
{{-- ✅ Jika value adalah URL biasa --}}
|
if ($isFoto) {
|
||||||
@elseif(is_string($value) && filter_var($value, FILTER_VALIDATE_URL))
|
$fotoFields[$field] = $value;
|
||||||
<a href="{{ $value }}" target="_blank"
|
} else {
|
||||||
class="text-blue-600 hover:text-blue-800 underline break-words">
|
$textFields[$field] = $value;
|
||||||
{{ $value }}
|
}
|
||||||
</a>
|
}
|
||||||
|
$orderedFields = array_merge($textFields, $fotoFields);
|
||||||
|
@endphp
|
||||||
|
|
||||||
{{-- ✅ Jika teks biasa --}}
|
<div class="overflow-hidden rounded-lg border border-gray-200">
|
||||||
@else
|
<table class="min-w-full text-sm text-gray-700">
|
||||||
{{ $value ?: '-' }}
|
<tbody class="divide-y divide-gray-200">
|
||||||
@endif
|
@foreach($orderedFields as $field => $value)
|
||||||
</td>
|
<tr class="hover:bg-gray-50 align-top">
|
||||||
</tr>
|
<th class="px-4 py-3 font-semibold bg-gray-50 w-1/4">
|
||||||
@endforeach
|
{{ ucwords(str_replace('_', ' ', $field)) }}
|
||||||
</tbody>
|
</th>
|
||||||
</table>
|
<td class="px-4 py-3">
|
||||||
</div>
|
{{-- ✅ Jika value adalah array (banyak foto) --}}
|
||||||
@else
|
@if(is_array($value))
|
||||||
<p class="text-gray-500 italic mt-4">Tidak ada data form tambahan.</p>
|
<div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3">
|
||||||
@endif
|
@foreach($value as $img)
|
||||||
</div>
|
@php
|
||||||
|
if (Str::startsWith($img, ['http://', 'https://'])) {
|
||||||
|
$imageUrl = $img;
|
||||||
|
} elseif (Str::startsWith($img, ['storage/', 'public/'])) {
|
||||||
|
$imageUrl = asset($img);
|
||||||
|
} elseif (Str::startsWith($img, 'photos/')) {
|
||||||
|
$imageUrl = asset('storage/' . $img);
|
||||||
|
} else {
|
||||||
|
$imageUrl = asset('storage/' . $img);
|
||||||
|
}
|
||||||
|
@endphp
|
||||||
|
<a href="{{ $imageUrl }}" target="_blank">
|
||||||
|
<img src="{{ $imageUrl }}"
|
||||||
|
alt="{{ $field }}"
|
||||||
|
class="w-32 h-32 object-cover rounded-lg border border-gray-200 shadow-sm hover:shadow-md transition">
|
||||||
|
</a>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- ✅ Jika gambar tunggal --}}
|
||||||
|
@elseif(
|
||||||
|
is_string($value) &&
|
||||||
|
(preg_match('/\.(jpg|jpeg|png|gif|webp)$/i', $value)
|
||||||
|
|| Str::startsWith($value, ['storage/', 'uploads/', 'images/', 'photos/']))
|
||||||
|
)
|
||||||
|
@php
|
||||||
|
if (Str::startsWith($value, ['http://', 'https://'])) {
|
||||||
|
$imageUrl = $value;
|
||||||
|
} elseif (Str::startsWith($value, ['storage/', 'public/'])) {
|
||||||
|
$imageUrl = asset($value);
|
||||||
|
} elseif (Str::startsWith($value, 'photos/')) {
|
||||||
|
$imageUrl = asset('storage/' . $value);
|
||||||
|
} else {
|
||||||
|
$imageUrl = asset('storage/' . $value);
|
||||||
|
}
|
||||||
|
@endphp
|
||||||
|
<a href="{{ $imageUrl }}" target="_blank" class="block mt-2">
|
||||||
|
<img src="{{ $imageUrl }}"
|
||||||
|
alt="{{ $field }}"
|
||||||
|
class="w-40 h-40 object-cover rounded-lg border border-gray-200 shadow-sm hover:shadow-md transition">
|
||||||
|
</a>
|
||||||
|
|
||||||
|
{{-- ✅ Jika URL biasa --}}
|
||||||
|
@elseif(is_string($value) && filter_var($value, FILTER_VALIDATE_URL))
|
||||||
|
<a href="{{ $value }}" target="_blank"
|
||||||
|
class="text-blue-600 hover:text-blue-800 underline break-words">
|
||||||
|
{{ $value }}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
{{-- ✅ Jika teks biasa --}}
|
||||||
|
@else
|
||||||
|
{{ $value ?: '-' }}
|
||||||
|
@endif
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
@else
|
||||||
|
<p class="text-gray-500 italic mt-4">Tidak ada data form tambahan.</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user