Reservasi-Cafe/resources/views/admin/bestseller/index.blade.php

154 lines
7.4 KiB
PHP

@extends('layouts.admin.app')
@section('content')
<div class="container mx-auto px-4">
<div class="bg-white rounded-lg shadow-lg p-6">
<div class="flex justify-between items-center mb-6">
<h2 class="text-2xl font-bold text-gray-800">Bestseller Management</h2>
<button onclick="openModal()" class="bg-[#8B0000] hover:bg-red-900 text-white px-4 py-2 rounded">
Add New Bestseller
</button>
</div>
@if(session('success'))
<div class="bg-green-100 border border-green-400 text-green-700 px-4 py-3 rounded relative mb-4" role="alert">
<span class="block sm:inline">{{ session('success') }}</span>
</div>
@endif
<!-- Bestsellers Grid -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
@foreach($bestsellers as $bestseller)
<div class="bg-white rounded-lg shadow overflow-hidden">
<img src="{{ asset('storage/bestsellers/' . $bestseller->image) }}" alt="{{ $bestseller->name }}"
class="w-full h-48 object-cover">
<div class="p-4">
<h3 class="text-lg font-semibold text-gray-800">{{ $bestseller->name }}</h3>
<p class="text-gray-600 mt-2">{{ $bestseller->description }}</p>
<div class="mt-4 flex justify-end space-x-2">
<button onclick="openEditModal({{ $bestseller->id }}, '{{ $bestseller->name }}', '{{ $bestseller->description }}')"
class="bg-blue-500 hover:bg-blue-600 text-white px-3 py-1 rounded">
Edit
</button>
<form action="{{ url('/admin/bestseller/' . $bestseller->id) }}" method="POST" class="inline">
@csrf
@method('DELETE')
<button type="submit" onclick="return confirm('Are you sure?')"
class="bg-red-500 hover:bg-red-600 text-white px-3 py-1 rounded">
Delete
</button>
</form>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
<!-- Add Modal -->
<div id="addModal" class="fixed inset-0 bg-gray-600 bg-opacity-50 hidden">
<div class="modal-container bg-white w-11/12 md:max-w-md mx-auto rounded shadow-lg z-50 overflow-y-auto mt-20">
<div class="modal-content py-4 text-left px-6">
<div class="flex justify-between items-center pb-3">
<p class="text-2xl font-bold">Add New Bestseller</p>
<button onclick="closeModal()" class="text-black">&times;</button>
</div>
<form action="{{ url('/admin/bestseller') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2">Name</label>
<input type="text" name="name" required
class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline">
</div>
<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2">Description</label>
<textarea name="description" required rows="3"
class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline"></textarea>
</div>
<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2">Image</label>
<input type="file" name="image" required
class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline">
</div>
<div class="flex justify-end">
<button type="submit" class="bg-[#8B0000] hover:bg-red-900 text-white font-bold py-2 px-4 rounded">
Save
</button>
</div>
</form>
</div>
</div>
</div>
<!-- Edit Modal -->
<div id="editModal" class="fixed inset-0 bg-gray-600 bg-opacity-50 hidden">
<div class="modal-container bg-white w-11/12 md:max-w-md mx-auto rounded shadow-lg z-50 overflow-y-auto mt-20">
<div class="modal-content py-4 text-left px-6">
<div class="flex justify-between items-center pb-3">
<p class="text-2xl font-bold">Edit Bestseller</p>
<button onclick="closeEditModal()" class="text-black">&times;</button>
</div>
<form id="editForm" method="POST" enctype="multipart/form-data">
@csrf
@method('PUT')
<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2">Name</label>
<input type="text" name="name" id="editName" required
class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline">
</div>
<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2">Description</label>
<textarea name="description" id="editDescription" required rows="3"
class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline"></textarea>
</div>
<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2">Image</label>
<input type="file" name="image"
class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline">
</div>
<div class="flex justify-end">
<button type="submit" class="bg-blue-500 hover:bg-blue-600 text-white font-bold py-2 px-4 rounded">
Update
</button>
</div>
</form>
</div>
</div>
</div>
@push('scripts')
<script>
function openModal() {
document.getElementById('addModal').classList.remove('hidden');
}
function closeModal() {
document.getElementById('addModal').classList.add('hidden');
}
function openEditModal(id, name, description) {
document.getElementById('editModal').classList.remove('hidden');
document.getElementById('editName').value = name;
document.getElementById('editDescription').value = description;
document.getElementById('editForm').action = `/admin/bestseller/${id}`;
}
function closeEditModal() {
document.getElementById('editModal').classList.add('hidden');
}
// Close modals when clicking outside
window.onclick = function(event) {
let addModal = document.getElementById('addModal');
let editModal = document.getElementById('editModal');
if (event.target == addModal) {
closeModal();
}
if (event.target == editModal) {
closeEditModal();
}
}
</script>
@endpush
@endsection