fix detail
This commit is contained in:
parent
da9afba614
commit
8ef4cfaf6a
@ -37,7 +37,7 @@ class FormApiController extends Controller
|
||||
'nama_pemesan' => 'required|string|max:255',
|
||||
'no_hp' => 'required|string|max:20',
|
||||
'email' => 'required|email',
|
||||
'catatan' => 'nullable|string|max:500',
|
||||
|
||||
];
|
||||
|
||||
// ✅ Ambil template + fiturnya
|
||||
|
||||
@ -64,44 +64,64 @@
|
||||
<div class="grid grid-cols-2 gap-6 mb-8">
|
||||
@foreach($pelanggan->details as $detail)
|
||||
@foreach($detail->detail_form as $key => $value)
|
||||
@if($key !== 'galeri')
|
||||
<div>
|
||||
<label class="text-gray-600 text-sm">{{ ucfirst(str_replace('_',' ',$key)) }}</label>
|
||||
<div class="border rounded px-3 py-2 min-h-[45px] flex items-center">
|
||||
|
||||
@if(is_array($value))
|
||||
{{ implode(', ', $value) }}
|
||||
@else
|
||||
{{ $value }}
|
||||
@endif
|
||||
|
||||
{{-- Skip field galeri/gallery, email, dan template_id --}}
|
||||
@if(!str_contains(strtolower($key), 'galeri') &&
|
||||
!str_contains(strtolower($key), 'gallery') &&
|
||||
$key !== 'email' &&
|
||||
$key !== 'template_id')
|
||||
<div>
|
||||
<label class="text-gray-600 text-sm">{{ ucfirst(str_replace('_',' ',$key)) }}</label>
|
||||
<div class="border rounded px-3 py-2 min-h-[45px] flex items-center">
|
||||
@if(is_array($value))
|
||||
{{ implode(', ', $value) }}
|
||||
@else
|
||||
{{ $value }}
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<!-- Galeri -->
|
||||
<!-- Galeri (dinamis untuk semua field galeri) -->
|
||||
@foreach($pelanggan->details as $detail)
|
||||
|
||||
@if(isset($detail->detail_form['galeri']) && !empty($detail->detail_form['galeri']))
|
||||
|
||||
<h3 class="text-lg font-semibold mb-4">Galeri</h3>
|
||||
<div class="grid grid-cols-5 gap-3">
|
||||
|
||||
{{-- Loop data galeri dari dalam JSON --}}
|
||||
@foreach($detail->detail_form['galeri'] as $foto)
|
||||
<img src="{{ asset('storage/' . $foto) }}" alt="Foto Galeri" class="w-full h-24 object-cover rounded border">
|
||||
@foreach($detail->detail_form as $key => $value)
|
||||
{{-- Cek apakah field mengandung kata 'galeri' atau 'gallery' dan berupa array --}}
|
||||
@if((str_contains(strtolower($key), 'galeri') || str_contains(strtolower($key), 'gallery')) && is_array($value) && !empty($value))
|
||||
<div class="mb-6">
|
||||
<h3 class="text-lg font-semibold mb-4">{{ ucfirst(str_replace('_', ' ', $key)) }}</h3>
|
||||
<div class="grid grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3">
|
||||
@foreach($value as $foto)
|
||||
<div class="relative group">
|
||||
<img src="{{ asset('storage/' . $foto) }}"
|
||||
alt="Foto {{ $key }}"
|
||||
class="w-full h-24 object-cover rounded border hover:opacity-75 transition-opacity cursor-pointer"
|
||||
onclick="openModal('{{ asset('storage/' . $foto) }}')">
|
||||
|
||||
{{-- Overlay untuk zoom icon --}}
|
||||
<div class="absolute inset-0 bg-black bg-opacity-0 group-hover:bg-opacity-30 transition-all duration-200 rounded flex items-center justify-center">
|
||||
<svg class="w-6 h-6 text-white opacity-0 group-hover:opacity-100 transition-opacity" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v3m0 0v3m0-3h3m-3 0H7"></path>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
@endforeach
|
||||
|
||||
<!-- Modal untuk memperbesar gambar -->
|
||||
<div id="imageModal" class="fixed inset-0 bg-black bg-opacity-75 hidden z-50 flex items-center justify-center" onclick="closeModal()">
|
||||
<div class="max-w-4xl max-h-full p-4">
|
||||
<img id="modalImage" src="" alt="Full Size" class="max-w-full max-h-full object-contain rounded">
|
||||
<button onclick="closeModal()" class="absolute top-4 right-4 text-white text-2xl hover:text-gray-300">×</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
<!-- Tombol Kembali -->
|
||||
<div class="mt-8 text-right">
|
||||
<a href="{{ route('admin.pelanggan.index') }}"
|
||||
@ -111,4 +131,22 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
<script>
|
||||
function openModal(imageSrc) {
|
||||
document.getElementById('modalImage').src = imageSrc;
|
||||
document.getElementById('imageModal').classList.remove('hidden');
|
||||
}
|
||||
|
||||
function closeModal() {
|
||||
document.getElementById('imageModal').classList.add('hidden');
|
||||
}
|
||||
|
||||
// Close modal with ESC key
|
||||
document.addEventListener('keydown', function(event) {
|
||||
if (event.key === 'Escape') {
|
||||
closeModal();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
@ -87,8 +87,7 @@
|
||||
<label class="block font-medium">Nomor HP *</label>
|
||||
<input v-model="baseForm.no_hp" type="text" class="w-full border rounded px-3 py-2 mb-3" required />
|
||||
|
||||
<label class="block font-medium">Catatan</label>
|
||||
<textarea v-model="baseForm.catatan" class="w-full border rounded px-3 py-2 mb-3"></textarea>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Submit -->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user