From ea2f303ea44854c08371fb614868347daf5253e4 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Tue, 18 Mar 2025 08:45:31 +0700 Subject: [PATCH] feat(bank-data): tambahkan fitur galeri foto dan modal untuk gambar - Menambahkan dukungan untuk menampilkan foto objek bank. - Menambahkan modal untuk memperbesar gambar saat diklik. - Memperbarui tampilan untuk menampilkan foto utama dan thumbnail. - Memperbaiki lebar konten info window untuk menyesuaikan dengan gambar. --- app/Http/Controllers/BankDataController.php | 3 +- resources/views/bank-data/index.blade.php | 46 ++++++++++++++++++++- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/BankDataController.php b/app/Http/Controllers/BankDataController.php index ac94545..4662338 100644 --- a/app/Http/Controllers/BankDataController.php +++ b/app/Http/Controllers/BankDataController.php @@ -148,7 +148,8 @@ class BankDataController extends Controller 'harga' => $item->harga, 'nilai_pasar' => $item->nilai_pasar, 'location' => $item->kordinat_lat . ', ' . $item->kordinat_lng, - 'address' => formatAlamat($item) + 'address' => formatAlamat($item), + 'photos' => json_decode($item->foto_objek, true) ?: [$item->foto_objek], // Add more fields as needed ]; }); diff --git a/resources/views/bank-data/index.blade.php b/resources/views/bank-data/index.blade.php index 360e3c7..547f6ac 100644 --- a/resources/views/bank-data/index.blade.php +++ b/resources/views/bank-data/index.blade.php @@ -166,6 +166,13 @@ + + @endsection @push('scripts') @@ -183,6 +190,26 @@ }); } + function openImageModal(src) { + const modal = document.getElementById('imageModal'); + const modalImage = document.getElementById('modalImage'); + modalImage.src = src; + modal.classList.remove('hidden'); + modal.classList.add('flex'); + } + + function closeImageModal() { + const modal = document.getElementById('imageModal'); + modal.classList.remove('flex'); + modal.classList.add('hidden'); + } + + function changeMainPhoto(thumbnail, index) { + const mainPhoto = thumbnail.closest('.photo-gallery').querySelector('.main-photo img'); + mainPhoto.src = thumbnail.src; + mainPhoto.alt = thumbnail.alt; + } + function updateMapMarkers(data) { // Clear existing markers markers.forEach(marker => marker.setMap(null)); @@ -218,7 +245,7 @@ // Create info window content const contentString = ` -
+

${item.jenis_aset} @@ -320,6 +347,23 @@

+ ${item.photos && item.photos.length > 0 ? ` + + ` : ''}