From a738b1d63b79db152f919725003b99eb39c01db5 Mon Sep 17 00:00:00 2001 From: Ilham Wara Nugroho Date: Tue, 30 Sep 2025 09:41:44 +0700 Subject: [PATCH] update --- app/Http/Controllers/ProfileController.php | 66 ++++++ resources/views/include/header.blade.php | 11 +- .../views/modules/dashboard/sekolah.blade.php | 6 +- .../views/modules/profile/profile.blade.php | 192 ++++++++++++++++++ routes/modules/modules.php | 2 + 5 files changed, 267 insertions(+), 10 deletions(-) create mode 100644 resources/views/modules/profile/profile.blade.php diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index d44f9a8..220dcf2 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -12,13 +12,79 @@ use App\Models\Kuesioner; use App\Models\KuesionerLog; use App\Models\Master\Sekolah; use App\Models\Master\Provinsi; +use App\Models\Master\MasterGroup; +use App\Models\Master\Kabupaten; use App\Models\SK; +use App\Models\User; class ProfileController extends Controller { protected $template = 'modules.profile'; protected $route = 'modules.profile'; + function profile(){ + permission('is_read', $this->route, 'module',true); + + $data['breadcrumbs'] = [ + ['name' => 'Dashboard','url' => url('dashboard')], + ['name' => 'Profile','active' => true], + ]; + $data['title'] = 'Profile'; + $data['route'] = $this->route; + $data['keyId'] = encode_id(auth()->user()->id); + $data['item'] = User::with('profile')->where('id',auth()->user()->id)->first(); + $data['group'] = MasterGroup::where('MsGroupId','!=',1)->get(); + $data['kabupaten'] = Kabupaten::all(); + return view($this->template.'.profile', $data); + } + + function profileStore(Request $request) { + try { + + $keyId = decode_id($request->secure_id); + + if(@$keyId){ + + Validator::make($request->all(), [ + 'name' => 'required', + 'status_sekolah' => 'required', + 'alamat_sekolah' => 'required', + 'kontak_person' => 'required', + 'telp' => 'required', + 'password' => 'nullable|min:8|max:15|regex:/[a-z]/|regex:/[A-Z]/|regex:/[0-9]/|regex:/[@$!%*#?&]/', //min 8 char, maks 15 char, min 1 symbol, min 1 uppercase, min 1 lowercase, 1 number + ],[ + 'password.min' => 'password Minimal 8 Karakter', + 'password.max' => 'password Maksimal 15 Karakter', + 'password.regex' => 'Format Kata Sandi harus mengandung minimal Huruf Besar, Huruf Kecil, Angka, Spesial Karakter', + ])->validate(); + + $profile = Profile::where('npsn',auth()->user()->profile->npsn)->first(); + $profile->alamat_sekolah = $request->alamat_sekolah; + $profile->kontak_person = $request->kontak_person; + $profile->telp = $request->telp; + $profile->save(); + + $user = User::find($keyId); + if(@$request->password){ + $user->password = Hash::make($request->password); + } + $user->name = $request->name; + $user->save(); + } + + return redirect()->back()->with([ + 'message' => 'Berhasil update data', + 'type' => 'success', + ]); + + } catch (Exception $e) { + return redirect()->back()->with([ + 'message' => $e->getMessage(), + 'type' => "error" + ]); + } + } + public function index() { permission('is_read', $this->route, 'module',true); diff --git a/resources/views/include/header.blade.php b/resources/views/include/header.blade.php index c2f110b..0a69f45 100644 --- a/resources/views/include/header.blade.php +++ b/resources/views/include/header.blade.php @@ -12,7 +12,7 @@
- +
@@ -41,15 +41,12 @@ - - Data Diri - - - Settings + + Data Diri - Logout + Logout diff --git a/resources/views/modules/dashboard/sekolah.blade.php b/resources/views/modules/dashboard/sekolah.blade.php index fa72ca3..d588ba7 100644 --- a/resources/views/modules/dashboard/sekolah.blade.php +++ b/resources/views/modules/dashboard/sekolah.blade.php @@ -100,7 +100,7 @@
-
Level {{@levelAdiwiyata(session('npsn'))}}
+
Level {{@levelAdiwiyata(session('npsn'))}}
@@ -178,7 +178,7 @@
-
Status Usulan
+
Riwayat Usulan
@@ -256,7 +256,7 @@ {{@$sk->tanggal_penetapan}} @if(@$sk) - SK Adiwiyata + SK Adiwiyata @endif diff --git a/resources/views/modules/profile/profile.blade.php b/resources/views/modules/profile/profile.blade.php new file mode 100644 index 0000000..4d03127 --- /dev/null +++ b/resources/views/modules/profile/profile.blade.php @@ -0,0 +1,192 @@ +@extends('layouts.master') +@section('breadcrumbs') + +@endsection +@section('content') +
+
+
+
+ {{$title}} +
+
+ {{csrf_field()}} +
+
+
+ +
+ +
+
+ +
+ + @error('npsn') + {{$message}} + @enderror + Pastikan NPSN Telah Sesuai +
+
+
+
+
+ +
+ + @error('name') + {{$message}} + @enderror +
+
+
+
+
+ +
+ + @error('tingkat_sekolah') + {{$message}} + @enderror +
+
+
+
+
+ +
+ + @error('status_sekolah') + {{$message}} + @enderror +
+
+
+
+
+ +
+ + @error('alamat_sekolah') + {{$message}} + @enderror +
+
+
+
+
+ +
+ + @error('kontak_person') + {{$message}} + @enderror +
+
+
+
+
+ +
+ + @error('telp') + {{$message}} + @enderror +
+
+
+
+
+ +
+ + @error('email') + {{$message}} + @enderror + * Pastikan email benar dan aktif, akses aplikasi akan dikirim ke email yang didaftarkan. +
+
+
+
+
+ +
+
+ +
+ +
+
+ @error('password') + {{$message}} + @enderror +
+ Kata Sandi harus mengandung Minimal 8 karakter, maksimal 15 karakter,
setidaknya 1 huruf kecil dan huruf besar, angka dan simbol +
+
+
+
+
+
+ +
+
+
+
+@endsection +@section('page-js') + +@endsection \ No newline at end of file diff --git a/routes/modules/modules.php b/routes/modules/modules.php index c269c7a..ab68a2a 100644 --- a/routes/modules/modules.php +++ b/routes/modules/modules.php @@ -28,6 +28,8 @@ use App\Http\Controllers\Modules\Konten\KegiatanController; Route::get('dashboard',[HomeController::class,'dashboard'])->name('dashboard'); Route::get('dashboard/gridUsulan',[HomeController::class,'gridUsulan'])->name('gridUsulan'); +Route::get('profile',[ProfileController::class,'profile'])->name('profile'); +Route::post('profile-store',[ProfileController::class,'profileStore'])->name('profileStore'); Route::get('profile-sekolah',[ProfileController::class,'index'])->name('profile.index'); Route::get('profile-sekolah/grid',[ProfileController::class,'grid'])->name('profile.grid'); Route::post('profile-sekolah',[ProfileController::class,'store'])->name('profile.store');