From b66b651a2438bc8b80cbfda919d0742764a4270c Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Wed, 27 Nov 2024 12:30:40 +0700 Subject: [PATCH] feat(application): membuat halaman dan update untuk setting aplikasi dan route model binding --- .../Admin/Setting/ApplicationController.php | 33 +++++++++ .../Admin/Setting/ApplicationRequest.php | 33 +++++++++ app/Providers/RouteServiceProvider.php | 2 + .../pages/admin/setting/application.blade.php | 67 +++++++++++++++++++ .../views/partials/admin/_sidebar.blade.php | 12 ++++ routes/web.php | 8 +++ 6 files changed, 155 insertions(+) create mode 100644 app/Http/Controllers/Admin/Setting/ApplicationController.php create mode 100644 app/Http/Requests/Admin/Setting/ApplicationRequest.php create mode 100644 resources/views/pages/admin/setting/application.blade.php diff --git a/app/Http/Controllers/Admin/Setting/ApplicationController.php b/app/Http/Controllers/Admin/Setting/ApplicationController.php new file mode 100644 index 0000000..5c719e4 --- /dev/null +++ b/app/Http/Controllers/Admin/Setting/ApplicationController.php @@ -0,0 +1,33 @@ + 'Aplikasi', + 'application' => Setting::with('attachment')->first(), + ]); + } + + public function update(Setting $setting, ApplicationRequest $request): RedirectResponse + { + $validatedData = $request->validated(); + $setting->update($validatedData); + + notify()->success('Data berhasil diperbarui', 'Berhasil'); + + return back(); + } +} diff --git a/app/Http/Requests/Admin/Setting/ApplicationRequest.php b/app/Http/Requests/Admin/Setting/ApplicationRequest.php new file mode 100644 index 0000000..9dd8ef4 --- /dev/null +++ b/app/Http/Requests/Admin/Setting/ApplicationRequest.php @@ -0,0 +1,33 @@ + ['required', 'string', 'max:30'], + 'email' => ['required', 'email', 'max:255'], + 'contact_number' => ['required', 'string', 'regex:/^\+?[0-9]{10,15}$/'], + 'description' => ['required', 'string', 'max:65535'], + ]; + } + + protected function failedValidation(Validator $validator): void + { + $this->handleValidationFailure($validator); + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 8e35b4f..12c50e6 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -9,6 +9,7 @@ use App\Models\Inventory; use App\Models\Payroll; use App\Models\Service; +use App\Models\Setting; use App\Models\Transaction; use App\Models\User; use Illuminate\Support\Facades\Route; @@ -38,5 +39,6 @@ public function boot(): void Route::bind('cash', fn (string $cash) => Cash::findOrFail(decryptId($cash))); Route::bind('inventory', fn (string $inventory) => Inventory::findOrFail(decryptId($inventory))); Route::bind('transaction', fn (string $transaction) => Transaction::findOrFail(decryptId($transaction))); + Route::bind('application', fn (string $application) => Setting::findOrFail(decryptId($application))); } } diff --git a/resources/views/pages/admin/setting/application.blade.php b/resources/views/pages/admin/setting/application.blade.php new file mode 100644 index 0000000..f011bf6 --- /dev/null +++ b/resources/views/pages/admin/setting/application.blade.php @@ -0,0 +1,67 @@ +@extends('layouts.admin') +@section('styles') + +@endsection +@section('app') +
+
+
+
+ @csrf + @method('put') +
+ + + @error('name') +
+ {{ $message }} +
+ @enderror +
+
+ + + @error('email') +
+ {{ $message }} +
+ @enderror +
+
+ + + @error('contact_number') +
+ {{ $message }} +
+ @enderror +
+
+ + + @error('description') +
+ {{ $message }} +
+ @enderror +
+
+ +
+
+
+
+
+@endsection +@section('afterScripts') + +@endsection diff --git a/resources/views/partials/admin/_sidebar.blade.php b/resources/views/partials/admin/_sidebar.blade.php index 2a5d914..8215798 100644 --- a/resources/views/partials/admin/_sidebar.blade.php +++ b/resources/views/partials/admin/_sidebar.blade.php @@ -134,6 +134,18 @@ Barang + +
diff --git a/routes/web.php b/routes/web.php index a7adf2d..73be892 100644 --- a/routes/web.php +++ b/routes/web.php @@ -12,6 +12,7 @@ use App\Http\Controllers\Admin\Master\CustomerController; use App\Http\Controllers\Admin\Master\ServiceController; use App\Http\Controllers\Admin\Master\UserController; +use App\Http\Controllers\Admin\Setting\ApplicationController; use Illuminate\Support\Facades\Route; Route::prefix('auth')->group(function () { @@ -116,4 +117,11 @@ Route::delete('delete/{inventory}', [InventoryController::class, 'delete'])->name('manage.inventory.delete'); }); }); + + Route::prefix('setting')->group(function () { + Route::prefix('application')->group(function () { + Route::get('/', [ApplicationController::class, 'index'])->name('setting.application'); + Route::put('update/{application}', [ApplicationController::class, 'update'])->name('setting.application.update'); + }); + }); });