MIF_E31222882/resources/views/admin/venues/edit.blade.php

206 lines
12 KiB
PHP

@extends('layouts.admin')
@section('content')
<div class="p-6">
<!-- Header -->
<div class="mb-6">
<div class="flex items-center space-x-4">
<a href="{{ route('admin.venue.index') }}" class="text-gray-500 hover:text-gray-700">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7" />
</svg>
</a>
<div>
<h1 class="text-2xl font-bold text-gray-900">Edit Venue</h1>
<p class="text-gray-600 mt-1">Perbarui informasi venue Anda</p>
</div>
</div>
</div>
<!-- Alert Messages -->
@if(session('success'))
<div class="mb-6 bg-green-100 border border-green-400 text-green-700 px-4 py-3 rounded-lg">
{{ session('success') }}
</div>
@endif
@if(session('error'))
<div class="mb-6 bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded-lg">
{{ session('error') }}
</div>
@endif
<!-- Edit Form -->
<div class="bg-white rounded-lg shadow-sm border border-gray-200">
<form action="{{ route('admin.venue.update') }}" method="POST" enctype="multipart/form-data" class="p-6">
@csrf
@method('PUT')
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
<!-- Left Column -->
<div class="space-y-6">
<!-- Venue Name -->
<div>
<label for="name" class="block text-sm font-medium text-gray-700 mb-2">
Nama Venue <span class="text-red-500">*</span>
</label>
<input type="text" id="name" name="name" value="{{ old('name', $venue->name) }}"
class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 @error('name') border-red-500 @enderror"
placeholder="Masukkan nama venue">
@error('name')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
<!-- Address -->
<div>
<label for="address" class="block text-sm font-medium text-gray-700 mb-2">
Alamat <span class="text-red-500">*</span>
</label>
<textarea id="address" name="address" rows="3"
class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 @error('address') border-red-500 @enderror"
placeholder="Masukkan alamat lengkap venue">{{ old('address', $venue->address) }}</textarea>
@error('address')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
<!-- Phone -->
<div>
<label for="phone" class="block text-sm font-medium text-gray-700 mb-2">
Nomor Telepon
</label>
<input type="text" id="phone" name="phone" value="{{ old('phone', $venue->phone) }}"
class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 @error('phone') border-red-500 @enderror"
placeholder="Contoh: 08123456789">
@error('phone')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
<!-- Operating Hours -->
<div class="grid grid-cols-2 gap-4">
<div>
<label for="open_time" class="block text-sm font-medium text-gray-700 mb-2">
Jam Buka <span class="text-red-500">*</span>
</label>
<input type="time" id="open_time" name="open_time"
value="{{ old('open_time', $venue->open_time ? \Carbon\Carbon::parse($venue->open_time)->format('H:i') : '') }}"
class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 @error('open_time') border-red-500 @enderror">
@error('open_time')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
<div>
<label for="close_time" class="block text-sm font-medium text-gray-700 mb-2">
Jam Tutup <span class="text-red-500">*</span>
</label>
<input type="time" id="close_time" name="close_time"
value="{{ old('close_time', $venue->close_time ? \Carbon\Carbon::parse($venue->close_time)->format('H:i') : '') }}"
class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 @error('close_time') border-red-500 @enderror">
@error('close_time')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
</div>
</div>
<!-- Right Column -->
<div class="space-y-6">
<!-- Current Image -->
<div>
<label class="block text-sm font-medium text-gray-700 mb-2">
Foto Venue Saat Ini
</label>
<div class="w-full h-48 bg-gray-100 rounded-lg overflow-hidden">
@if($venue->image)
<img id="current-image" src="{{ asset('storage/' . $venue->image) }}"
alt="{{ $venue->name }}" class="w-full h-full object-cover">
@else
<div class="w-full h-full flex items-center justify-center text-gray-400">
<svg xmlns="http://www.w3.org/2000/svg" class="h-12 w-12" fill="none"
viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" />
</svg>
</div>
@endif
</div>
</div>
<!-- New Image Upload -->
<div>
<label for="image" class="block text-sm font-medium text-gray-700 mb-2">
Upload Foto Baru (Opsional)
</label>
<input type="file" id="image" name="image" accept="image/*" onchange="previewImage(this)"
class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 @error('image') border-red-500 @enderror">
@error('image')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
<p class="text-xs text-gray-500 mt-1">Format: JPEG, PNG, JPG, GIF. Maksimal 2MB</p>
<!-- Image Preview -->
<div id="image-preview" class="mt-4 hidden">
<p class="text-sm font-medium text-gray-700 mb-2">Preview Foto Baru:</p>
<div class="w-full h-48 bg-gray-100 rounded-lg overflow-hidden">
<img id="preview-img" src="" alt="Preview" class="w-full h-full object-cover">
</div>
</div>
</div>
</div>
</div>
<!-- Description -->
<div class="mt-6">
<label for="description" class="block text-sm font-medium text-gray-700 mb-2">
Deskripsi Venue
</label>
<textarea id="description" name="description" rows="4"
class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 @error('description') border-red-500 @enderror"
placeholder="Masukkan deskripsi venue (fasilitas, suasana, dll)">{{ old('description', $venue->description) }}</textarea>
@error('description')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
<!-- Action Buttons -->
<div class="flex items-center justify-end space-x-4 mt-8 pt-6 border-t border-gray-200">
<a href="{{ route('admin.venue.index') }}"
class="px-4 py-2 text-gray-700 bg-gray-100 hover:bg-gray-200 rounded-lg font-medium transition-colors">
Batal
</a>
<button type="submit"
class="px-6 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-lg font-medium transition-colors">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 inline mr-2" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" />
</svg>
Simpan Perubahan
</button>
</div>
</form>
</div>
</div>
<script>
function previewImage(input) {
const preview = document.getElementById('image-preview');
const previewImg = document.getElementById('preview-img');
if (input.files && input.files[0]) {
const reader = new FileReader();
reader.onload = function (e) {
previewImg.src = e.target.result;
preview.classList.remove('hidden');
}
reader.readAsDataURL(input.files[0]);
} else {
preview.classList.add('hidden');
}
}
</script>
@endsection