From 7dabc26b0f974afbdc68edeb4139c5f422e4fa73 Mon Sep 17 00:00:00 2001 From: Ananda Zakia S <117088186+zakiaass@users.noreply.github.com> Date: Wed, 27 Dec 2023 14:06:43 +0700 Subject: [PATCH] Commit User Profile dan CRUD Kriteria --- app/Http/Controllers/CriteriaController.php | 30 +++- app/Http/Controllers/UserController.php | 46 +++++ app/Http/Kernel.php | 4 +- app/Http/Middleware/PreventBackHistory.php | 24 +++ app/Models/Criteria.php | 1 + ...23_12_26_053623_create_criterias_table.php | 2 +- resources/views/dashboard/index.blade.php | 25 ++- resources/views/kriteria/index.blade.php | 122 +++++++++++-- resources/views/layout/main.blade.php | 2 +- resources/views/layout/navbar.blade.php | 2 +- resources/views/layout/page.blade.php | 30 ---- resources/views/user/user-profile.blade.php | 162 ++++++++++++++++++ routes/web.php | 14 +- 13 files changed, 404 insertions(+), 60 deletions(-) create mode 100644 app/Http/Controllers/UserController.php create mode 100644 app/Http/Middleware/PreventBackHistory.php delete mode 100644 resources/views/layout/page.blade.php create mode 100644 resources/views/user/user-profile.blade.php diff --git a/app/Http/Controllers/CriteriaController.php b/app/Http/Controllers/CriteriaController.php index 6f7ebb7..bc91cc7 100644 --- a/app/Http/Controllers/CriteriaController.php +++ b/app/Http/Controllers/CriteriaController.php @@ -4,6 +4,7 @@ use App\Models\Criteria; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; +use PhpParser\Node\NullableType; use RealRashid\SweetAlert\Facades\Alert; class CriteriaController extends Controller @@ -22,7 +23,7 @@ public function index() */ public function create() { - // + } /** @@ -30,7 +31,7 @@ public function create() */ public function store(Request $request) { - $validator = Validator::make($request->all(), [ + $validator = Validator::make($request->only('nama', 'prioritas'), [ 'nama' => 'required', 'prioritas' => 'required', ]); @@ -44,7 +45,7 @@ public function store(Request $request) 'prioritas'=>$request->prioritas, ]); - return redirect()->route('kriteria.index')->with('success', 'Tambah Data Berhasil!'); + return redirect()->route('kriteria.index')->with('success', 'Data Kriteria Berhasil Ditambah!'); } /** @@ -60,7 +61,8 @@ public function show(string $id) */ public function edit(string $id) { - // + $kriteria = Criteria::findOrFail($id); + return view('kriteria.edit', compact('kriteria')); } /** @@ -68,7 +70,20 @@ public function edit(string $id) */ public function update(Request $request, string $id) { - // + // $kriteria = Criteria::findorfail($id); + // $kriteria->update($request->all()); + + // return redirect('kriteria')->with('success', 'Data Kriteria Berhasil Diperbarui!'); + + $validatedData = $request->validate([ + 'nama' => 'required', + 'prioritas' => 'required', + ]); + + $kriteria = Criteria::findOrFail($id); + $kriteria->update($validatedData); + + return redirect()->route('kriteria.index')->with('success', 'Data Kriteria Berhasil Diperbarui!'); } /** @@ -76,6 +91,9 @@ public function update(Request $request, string $id) */ public function destroy(string $id) { - // + $kriteria = Criteria::findorfail($id); + $kriteria->delete(); + + return back()->with('info', 'Data Kriteria Berhasil Dihapus!'); } } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php new file mode 100644 index 0000000..7455f4d --- /dev/null +++ b/app/Http/Controllers/UserController.php @@ -0,0 +1,46 @@ +all(), [ + 'name' => ['required', 'min:3', 'max:225'], + 'username' => ['required', 'min:3', 'max:10'], + 'email' => 'required|email', + ], [ + 'required' => ':attribute harus diisi.', + 'email' => ':attribute harus berupa email yang valid.', + 'min' => 'panjang :attribute minimal :min karakter.', + ]); + + if ($validator->fails()) { + return response()->json([ + 'error' => true, + 'message' => Str::ucfirst($validator->errors()->first()), + 'data' => null + ]); + } + + $user = User::findOrFail(Auth::user()->id); + $user->update([ + 'name' => $request->name, + 'username' => $request->username, + 'email' => $request->email, + ]); + return redirect('user-profile')->with('success', 'Profile Berhasil Diperbarui!'); + } +} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index f9b7293..7ff24ae 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -36,7 +36,8 @@ class Kernel extends HttpKernel \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, - + \App\Http\Middleware\PreventBackHistory::class, + ], 'api' => [ @@ -65,6 +66,7 @@ class Kernel extends HttpKernel 'signed' => \App\Http\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + 'PreventBackHistory' =>\App\Http\Middleware\PreventBackHistory::class, ]; protected $routeMiddleware = [ diff --git a/app/Http/Middleware/PreventBackHistory.php b/app/Http/Middleware/PreventBackHistory.php new file mode 100644 index 0000000..1aeb30b --- /dev/null +++ b/app/Http/Middleware/PreventBackHistory.php @@ -0,0 +1,24 @@ +header('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0') + ->header('Pragma', 'no-cache') + ->header('Expires', '0'); + } +} diff --git a/app/Models/Criteria.php b/app/Models/Criteria.php index 13d5a0e..5b3a1f8 100644 --- a/app/Models/Criteria.php +++ b/app/Models/Criteria.php @@ -7,6 +7,7 @@ class Criteria extends Model { + protected $guarded = ['id']; protected $fillable = ['nama' , 'prioritas' .'bobot']; public function SubCriteria() { diff --git a/database/migrations/2023_12_26_053623_create_criterias_table.php b/database/migrations/2023_12_26_053623_create_criterias_table.php index 5e71c4a..d524912 100644 --- a/database/migrations/2023_12_26_053623_create_criterias_table.php +++ b/database/migrations/2023_12_26_053623_create_criterias_table.php @@ -14,7 +14,7 @@ public function up(): void Schema::create('criterias', function (Blueprint $table) { $table->id(); $table->string('nama'); - $table->integer('prioritas'); + $table->string('prioritas'); $table->string('bobot'); $table->timestamps(); }); diff --git a/resources/views/dashboard/index.blade.php b/resources/views/dashboard/index.blade.php index 3c34c77..a9d6d0f 100644 --- a/resources/views/dashboard/index.blade.php +++ b/resources/views/dashboard/index.blade.php @@ -1,21 +1,30 @@ @extends('layout.main') @section('body') + @php + $menu = 'Dashboard'; + $pageTitle = 'Home'; + @endphp @include('layout.navbar') @include('layout.sidebar')
-
-
-
-
-

- Welcome Back! -
{{ auth()->user()->name }}
-

+
+
+
+
+
+

+ Welcome Back! +
{{ auth()->user()->name }}
+

+
+
@endsection diff --git a/resources/views/kriteria/index.blade.php b/resources/views/kriteria/index.blade.php index 8e3854d..bc2283c 100644 --- a/resources/views/kriteria/index.blade.php +++ b/resources/views/kriteria/index.blade.php @@ -5,14 +5,32 @@ $pageTitle = 'Data Kriteria'; @endphp - @include('layout.page') - @include('layout.navbar') - @include('layout.sidebar') +@include('layout.navbar') +@include('layout.sidebar') {{-- Main Content --}}
-
+
+

Data Kriteria

@@ -42,13 +60,10 @@ {{ $criteria->prioritas }} {{ $criteria->bobot }} - - - @@ -60,6 +75,9 @@
+
@@ -84,7 +102,7 @@
- +
Tolong isi Nama Kriteria!
@@ -109,11 +127,93 @@
+ + {{-- Modal Edit --}} + + + + + + @endsection diff --git a/resources/views/layout/main.blade.php b/resources/views/layout/main.blade.php index 2c2db87..dcb61cb 100644 --- a/resources/views/layout/main.blade.php +++ b/resources/views/layout/main.blade.php @@ -4,7 +4,7 @@ - DeskApp + SIPEX diff --git a/resources/views/layout/navbar.blade.php b/resources/views/layout/navbar.blade.php index 3909bda..c5e0886 100644 --- a/resources/views/layout/navbar.blade.php +++ b/resources/views/layout/navbar.blade.php @@ -48,7 +48,7 @@ Hi, {{ Auth::user()->username }}