From 1ccfbfa336fc045f2382210282e3b668362b63b8 Mon Sep 17 00:00:00 2001 From: Stephen Gesityan Date: Tue, 13 May 2025 00:19:34 +0700 Subject: [PATCH] Modif Fungsi create edit delete meja di admin --- .../Controllers/admin/TableController.php | 7 +++ app/Http/Controllers/pages/HomeController.php | 22 ++++++++- resources/views/admin/tables/create.blade.php | 10 +++++ resources/views/admin/tables/edit.blade.php | 12 +++++ resources/views/pages/home.blade.php | 45 +++++++------------ routes/web.php | 2 +- 6 files changed, 66 insertions(+), 32 deletions(-) diff --git a/app/Http/Controllers/admin/TableController.php b/app/Http/Controllers/admin/TableController.php index 1b2f680..454d8fe 100644 --- a/app/Http/Controllers/admin/TableController.php +++ b/app/Http/Controllers/admin/TableController.php @@ -56,6 +56,7 @@ public function store(Request $request) 'name' => 'required|string|max:255', 'brand' => 'required|string|max:255', 'status' => 'required|in:Available,Booked,Unavailable', + 'price_per_hour' => 'required|numeric|min:0', ]); if ($validator->fails()) { @@ -68,6 +69,7 @@ public function store(Request $request) 'name' => $request->name, 'brand' => $request->brand, 'status' => $request->status, + 'price_per_hour' => $request->price_per_hour, 'venue_id' => auth()->user()->venue_id, ]); @@ -100,6 +102,7 @@ public function update(Request $request, $id) 'name' => 'required|string|max:255', 'brand' => 'required|string|max:255', 'status' => 'required|in:Available,Booked,Unavailable', + 'price_per_hour' => 'required|numeric|min:0', ]); if ($validator->fails()) { @@ -114,6 +117,7 @@ public function update(Request $request, $id) 'name' => $request->name, 'brand' => $request->brand, 'status' => $request->status, + 'price_per_hour' => $request->price_per_hour, ]); return redirect()->route('admin.tables.index') @@ -129,6 +133,9 @@ public function update(Request $request, $id) public function destroy($id) { $table = Table::where('venue_id', auth()->user()->venue_id)->findOrFail($id); + + $table->bookings()->delete(); + $table->delete(); return redirect()->route('admin.tables.index') diff --git a/app/Http/Controllers/pages/HomeController.php b/app/Http/Controllers/pages/HomeController.php index 3ffcf2a..c8bea99 100644 --- a/app/Http/Controllers/pages/HomeController.php +++ b/app/Http/Controllers/pages/HomeController.php @@ -13,8 +13,26 @@ class HomeController extends Controller // $this->middleware('auth'); // } - public function index() { - $venues = Venue::paginate(10); + public function index(Request $request) { + // Start with base query + $query = Venue::query(); + + // Search by venue name + if ($request->filled('name')) { + $query->where('name', 'like', '%' . $request->input('name') . '%'); + } + + // Filter by city/location (assuming this is based on address) + if ($request->filled('location')) { + $query->where('address', 'like', '%' . $request->input('location') . '%'); + } + + // Paginate the results + $venues = $query->paginate(6); + + // Retain the search parameters for pagination links + $venues->appends($request->only(['name', 'location'])); + return view('pages.home', compact('venues')); } } diff --git a/resources/views/admin/tables/create.blade.php b/resources/views/admin/tables/create.blade.php index 0a66e2c..1d3c8ab 100644 --- a/resources/views/admin/tables/create.blade.php +++ b/resources/views/admin/tables/create.blade.php @@ -37,6 +37,16 @@ class="w-full border border-gray-300 rounded-lg px-4 py-2 focus:outline-none foc

{{ $message }}

@enderror +
+ + + @error('price_per_hour') +

{{ $message }}

+ @enderror +
diff --git a/resources/views/admin/tables/edit.blade.php b/resources/views/admin/tables/edit.blade.php index c57aa8b..f8ae5ef 100644 --- a/resources/views/admin/tables/edit.blade.php +++ b/resources/views/admin/tables/edit.blade.php @@ -36,6 +36,18 @@ class="w-full border border-gray-300 rounded-lg px-4 py-2 focus:outline-none foc

{{ $message }}

@enderror
+ +
+ + + @error('price_per_hour') +

{{ $message }}

+ @enderror +
diff --git a/resources/views/pages/home.blade.php b/resources/views/pages/home.blade.php index 7973caa..fefb6dc 100644 --- a/resources/views/pages/home.blade.php +++ b/resources/views/pages/home.blade.php @@ -13,66 +13,49 @@
-
+
- + placeholder="Cari nama venue" value="{{ request('name') }}">
- -
-
- - - - -
-
- + placeholder="Pilih Kota" value="{{ request('location') }}">
-
-
+
Menampilkan:
-

6

-

venue tersedia

+

{{ $venues->total() }}

+

venue tersedia


-
-

Urutkan berdasarkan: Harga - terendah

-
+ {{-- Pagination Links --}} +
+ {{ $venues->links() }} +
+
@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 5fd3768..9bb5f89 100644 --- a/routes/web.php +++ b/routes/web.php @@ -21,7 +21,7 @@ // Rute custom untuk verifikasi email Route::get('/email/verified', [VerificationController::class, 'verified'])->name('verification.verified'); -Route::get('/', [HomeController::class, "index"])->name('index'); +Route::get('/', [HomeController::class, "index"])->name('home'); Route::get('/venue/{venueName}', [VenueController::class, "venue"])->name('venue'); // Changed routes for the new booking flow