From 59f0760e9899e6385da7aceab8ae0166262e41d6 Mon Sep 17 00:00:00 2001 From: ilhamwara Date: Thu, 20 Feb 2025 16:02:01 +0700 Subject: [PATCH] update --- app/Helpers/custom.php | 64 +++- .../Auth/CustomLoginController.php | 9 +- app/Http/Controllers/HomeController.php | 9 +- .../Management/AksesController.php | 341 ++++++++++++++++++ .../Controllers/Management/RoleController.php | 4 +- app/Http/Controllers/ProfileController.php | 20 + app/Models/Log.php | 24 ++ app/Models/ProfileSekolah.php | 5 + app/Models/User.php | 5 + .../2025_02_20_093001_create_logs_table.php | 35 ++ public/assets/css/app.bundle.css | 10 +- public/assets/css/themes/cust-theme-2.css | 22 +- public/assets/css/themes/cust-theme-3.css | 22 +- public/assets/css/themes/cust-theme-6.css | 22 +- public/assets/css/themes/cust-theme-7.css | 22 +- public/assets/css/vendors.bundle.css | 18 +- public/assets/js/app.bundle.js | 2 +- .../statistics_peity/statistics_peity.hbs | 2 +- public/assets/src/js/_get/app.get.colors.js | 2 +- resources/views/layouts/master.blade.php | 7 + .../dashboard/admin.blade.php} | 0 .../views/modules/dashboard/sekolah.blade.php | 146 ++++++++ .../management/role/akses/form.blade.php | 296 +++++++++++++++ .../modules/management/user/index.blade.php | 2 +- .../profile/admin.blade.php} | 0 .../views/modules/profile/sekolah.blade.php | 250 +++++++++++++ routes/modules/modules.php | 13 +- 27 files changed, 1279 insertions(+), 73 deletions(-) create mode 100644 app/Http/Controllers/Management/AksesController.php create mode 100644 app/Http/Controllers/ProfileController.php create mode 100644 app/Models/Log.php create mode 100644 database/migrations/2025_02_20_093001_create_logs_table.php rename resources/views/{home.blade.php => modules/dashboard/admin.blade.php} (100%) create mode 100644 resources/views/modules/dashboard/sekolah.blade.php create mode 100644 resources/views/modules/management/role/akses/form.blade.php rename resources/views/{profile.blade.php => modules/profile/admin.blade.php} (100%) create mode 100644 resources/views/modules/profile/sekolah.blade.php diff --git a/app/Helpers/custom.php b/app/Helpers/custom.php index d35c96c..f309e0a 100644 --- a/app/Helpers/custom.php +++ b/app/Helpers/custom.php @@ -3,6 +3,68 @@ use App\Models\Master\MasterMenu; use App\Models\Master\MasterAccessMenu; +if (!function_exists('taskLabel')) { + /** + * @param $val + * + * @return string + */ + function taskLabel($val) + { + if ($val == 'store') { + $task = 'save'; + } elseif ($val == 'save_permission') { + $task = 'save group access'; + } elseif ($val == 'destroy') { + $task = 'delete'; + } elseif ($val == 'batch') { + $task = 'delete'; + } else { + $task = $val; + } + + return $task; + } +} + + +if (!function_exists('logActivity')) { + /** + * @param $request + * @param $note + */ + function logActivity($request, $note) + { + $repository = app(\App\Models\Log::class); + $data = [ + 'module' => $request->route()->getAction('prefix'), + 'task' => taskLabel($request->route()->getActionMethod()), + 'user_id' => session('uid'), + 'ipaddress' => $request->getClientIp(), + 'useragent' => $request->header('User-Agent'), + 'note' => $note, + 'created_at' => \Carbon\Carbon::now() + ]; + + if (session('superuser') == false) + $repository->create($data); + } +} + + +if (!function_exists('trimId')) { + /** + * @param $val + * @return array + */ + function trimId($val) + { + $string = explode('+', $val); + return $string; + } +} + + if (!function_exists('dateTime')) { /** * make secure id @@ -112,7 +174,7 @@ if (!function_exists('renderMenu')) { function renderMenu() { - $parent = MasterMenu::where('status',true)->where('menu_type','sidebar')->where('parent_id',0)->get(); + $parent = MasterMenu::where('status',true)->where('menu_type','sidebar')->where('parent_id',0)->orderBy('ordering','ASC')->get(); $html = ''; foreach ($parent as $p1) { // echo $p1->MsMenuId.'
'; diff --git a/app/Http/Controllers/Auth/CustomLoginController.php b/app/Http/Controllers/Auth/CustomLoginController.php index de56c7f..3e0cec6 100644 --- a/app/Http/Controllers/Auth/CustomLoginController.php +++ b/app/Http/Controllers/Auth/CustomLoginController.php @@ -30,6 +30,7 @@ class CustomLoginController extends Controller $user = User::where('username', $credentials['email'])->first(); if ($user && Hash::check($credentials['password'], $user->password)) { + // dd($user->group); Auth::attempt(['username' => $request->email, 'password' => $request->password]); $session = [ @@ -37,13 +38,15 @@ class CustomLoginController extends Controller 'name' => $user->name, 'email' => $user->email, 'npsn' => @$user->sekolah->npsn, - 'ms_tingkat_sekolah_id' => @$user->sekolah->ms_tingkat_sekolah_id, + 'tingkat_sekolah' => @$user->sekolah->tingkat->name, 'status_sekolah' => @$user->sekolah->status_sekolah, 'alamat_sekolah' => @$user->sekolah->alamat_sekolah, 'kontak_person' => @$user->sekolah->kontak_person, 'telp' => @$user->sekolah->telp, 'currYear' => date('Y'), 'group_id' => @$user->ms_group_id, + 'group_alias' => @$user->group->alias, + 'group_name' => @$user->group->name, ]; session($session); @@ -69,13 +72,15 @@ class CustomLoginController extends Controller 'name' => $user->name, 'email' => $user->email, 'npsn' => @$user->sekolah->npsn, - 'ms_tingkat_sekolah_id' => @$user->sekolah->ms_tingkat_sekolah_id, + 'tingkat_sekolah' => @$user->sekolah->tingkat->name, 'status_sekolah' => @$user->sekolah->status_sekolah, 'alamat_sekolah' => @$user->sekolah->alamat_sekolah, 'kontak_person' => @$user->sekolah->kontak_person, 'telp' => @$user->sekolah->telp, 'currYear' => date('Y'), 'group_id' => @$user->ms_group_id, + 'group_alias' => @$user->group->alias, + 'group_name' => @$user->group->name, ]; session($session); diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index bb63742..6f058af 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -6,6 +6,8 @@ use Illuminate\Http\Request; class HomeController extends Controller { + protected $template = 'modules.dashboard'; + /** * Create a new controller instance. * @@ -29,6 +31,11 @@ class HomeController extends Controller public function dashboard() { $data['title'] = 'Dashboard'; - return view('home',$data); + $data['group'] = session('group_alias'); + if(session('group_alias') == 'sekolah'){ + return view($this->template.'.sekolah', $data); + }else{ + return view($this->template.'.admin', $data); + } } } diff --git a/app/Http/Controllers/Management/AksesController.php b/app/Http/Controllers/Management/AksesController.php new file mode 100644 index 0000000..0fb3891 --- /dev/null +++ b/app/Http/Controllers/Management/AksesController.php @@ -0,0 +1,341 @@ +route.'.'.$prefix; + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + permission('is_update', $this->getRoute(), false, 'module'); + $id = decode_id($request->group_id); + // dd($id); + $_read = []; + if ($request->has('is_read')) { + foreach ($request->input('is_read') as $val) { + $_read[] = ['ms_menu_id' => $val]; + } + } + + $_create = []; + if ($request->has('is_create')) { + foreach ($request->input('is_create') as $val) { + $_create[] = ['ms_menu_id' => $val]; + } + } + + $_update = []; + if ($request->has('is_update')) { + foreach ($request->input('is_update') as $val) { + $_update[] = ['ms_menu_id' => $val]; + } + } + + $_delete = []; + if ($request->has('is_delete')) { + foreach ($request->input('is_delete') as $val) { + $_delete[] = ['ms_menu_id' => $val]; + } + } + + $_download = []; + if ($request->has('is_download')) { + foreach ($request->input('is_download') as $val) { + $_download[] = ['ms_menu_id' => $val]; + } + } + + $merged = array_merge($_read, $_create, $_update, $_delete, $_download); + $result = []; + foreach ($merged as $key => $data) { + $access = trimId($data['ms_menu_id']); + $module = MasterMenu::find($access[1]); + if (isset($result[$access[1]])) { + $result[$access[1]][$access[0]] = 1; + } else { + $result[$access[1]] = ['ms_menu_id' => intval($access[1]), $access[0] => 1, 'ms_group_id' => intval($id), 'module' => $module->module, 'menu_group' => $request->input('menu_group')]; + } + } + + /** + * Merge all privileges into json + */ + $group = MasterGroup::find(intval($id)); + if ($merged) { + $current = MasterAccessMenu::where('menu_group',$request->input('menu_group'))->where('ms_group_id',intval($id))->get(); + $insert = null; + if ($current->count() > 0) { + $deletedRows = MasterAccessMenu::where('menu_group',$request->input('menu_group'))->where('ms_group_id',intval($id))->delete(); + if ($deletedRows) { + foreach ($result as $val) { + $insert = MasterAccessMenu::create($val); + } + } + } else { + foreach ($result as $val) { + $insert = MasterAccessMenu::create($val); + } + } + + if ($insert) { + logActivity($request, __('Edit',['val' => strtolower(__('module.group.access.title',['val' => $group->name]))])); + return redirect('management/role/')->with('message', __('Berhasil Update Data')) + ->with('type', 'success'); + } else { + throw new GeneralException(__('Maaf Terjadi Kesalahan')); + } + } else { + $current = MasterAccessMenu::where('menu_group',$request->input('menu_group'))->where('ms_group_id', intval($id))->count(); + if ($current > 0) { + MasterAccessMenu::where('menu_group', $request->input('menu_group'))->where('ms_group_id', intval($id))->delete(); + logActivity($request, __('Delete',['val' => strtolower(__('Title',['val' => $group->name]))])); + return redirect('management/role/')->with('message', __('Berhasil Update Data')) + ->with('type', 'success'); + } else { + throw new GeneralException(__('Maaf Terjadi Kesalahan')); + } + } + } + + /** + * Display the specified resource. + */ + public function show(string $id) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + $data['key'] = decode_id($id); + $data['id'] = decode_id($id); + $data['group'] = MasterGroup::where('MsGroupId',decode_id($id))->first(); + + $data['breadcrumbs'] = [ + ['name' => 'Dashboard','url' => url('dashboard')], + ['name' => 'Management & Akses Role'], + ['name' => 'Data Role','url' => url('management/role/')], + ['name' => 'Role '.$data['group']->name,'active' => true], + ]; + + $data['type'] = 'sidebar'; + // $data['groupMenus'] = MasterMenu::where('status',true)->get(); + $data['menu'] = $this->getMenu($data['key'], $data['type']); + $data['title'] = $this->title.' '.$data['group']->name; + $data['route'] = $this->route; + return view($this->template.'.form',$data); + } + + public function getMenuByParentPosition($id, $type, $active = [1]) + { + return MasterMenu::where('parent_id', '=', $id) + ->where('menu_type', '=', $type) + ->whereIn('status', $active) + ->orderBy('ordering') + ->get(); + } + + public function getParentByType($type) + { + return MasterMenu::where('parent_id', '=', 0) + ->where('menu_type', '=', $type) + ->orderBy('ordering') + ->get(); + } + + public function getMenuByParent($id, $active = [1]) + { + return MasterMenu::where('parent_id', '=', $id) + ->whereIn('status', $active) + ->orderBy('ordering') + ->get(); + } + + /** + * @param $id + * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|null|object + */ + public function getActiveById($id) + { + return MasterMenu::where('ms_menu_id', '=' , $id) + ->where('status', '=' , true) + ->first(); + } + + /** + * Get all active menu by menu position + * + * @param $type + * @return mixed + */ + public function getActiveByPosition($type) + { + return MasterMenu::where('menu_type', '=' , $type) + ->where('status', '=' , true) + ->orderBy('ordering') + ->get(); + } + + /** + * @param $type + * @return \Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Eloquent\Model[] + */ + public function getParentByTypeStatus($type) + { + return MasterMenu::where('parent_id', '=', 0) + ->where('menu_type', '=', $type) + ->where('status','=',true) + ->orderBy('ordering') + ->get(); + } + + public function getMenu($id, $type) + { + $parent = $this->getMenuByParentPosition(0,$type); + $_parent = []; + foreach ($parent as $row) { + $lev1 = $this->getMenuByParent($row->MsMenuId); + $_lev1 = []; + foreach ($lev1 as $l1) { + $lev2 = $this->getMenuByParent($l1->MsMenuId); + $_lev2 = []; + foreach ($lev2 as $l2) { + $lev3 = $this->getMenuByParent($l2->MsMenuId); + $_lev3 = []; + foreach ($lev3 as $l3) { + $lev4 = $this->getMenuByParent($l3->MsMenuId); + $_lev4 = []; + foreach ($lev4 as $l4) { + $lev4Access = MasterAccessMenu::where('ms_group_id', '=', $id)->where('ms_menu_id', '=', $l4->MsMenuId)->first(); + $_lev4[] = [ + 'id' => $l4->MsMenuId, + 'title' => $l4->title, + 'ordering' => $l4->ordering, + 'checked' => [ + "is_create" => $lev4Access ? $lev4Access->is_create : 0, + "is_read" => $lev4Access ? $lev4Access->is_read : 0, + "is_update" => $lev4Access ? $lev4Access->is_update : 0, + "is_delete" => $lev4Access ? $lev4Access->is_delete : 0, + "is_download" => $lev4Access ? $lev4Access->is_download : 0, + ] + ]; + } + $lev3Access = MasterAccessMenu::where('ms_group_id', '=', $id)->where('ms_menu_id', '=', $l3->MsMenuId)->first(); + $_lev3[] = [ + 'id' => $l3->MsMenuId, + 'title' => $l3->title . (!!$l3->meta_title?" ##Meta: ". $l3->meta_title:""), + 'ordering' => $l3->ordering, + 'level4' => $_lev4, + 'checked' => [ + "is_create" => $lev3Access ? $lev3Access->is_create : 0, + "is_read" => $lev3Access ? $lev3Access->is_read : 0, + "is_update" => $lev3Access ? $lev3Access->is_update : 0, + "is_delete" => $lev3Access ? $lev3Access->is_delete : 0, + "is_download" => $lev3Access ? $lev3Access->is_download : 0, + ] + ]; + } + $lev2Access = MasterAccessMenu::where('ms_group_id', '=', $id)->where('ms_menu_id', '=', $l2->MsMenuId)->first(); + $_lev2[] = [ + 'id' => $l2->MsMenuId, + 'title' => $l2->title . " (".(!!$l2->meta_title?$l2->meta_title."@":""). "url:" . $l2->url.")", + 'ordering' => $l2->ordering, + 'level3' => $_lev3, + 'checked' => [ + "is_create" => $lev2Access ? $lev2Access->is_create : 0, + "is_read" => $lev2Access ? $lev2Access->is_read : 0, + "is_update" => $lev2Access ? $lev2Access->is_update : 0, + "is_delete" => $lev2Access ? $lev2Access->is_delete : 0, + "is_download" => $lev2Access ? $lev2Access->is_download : 0, + ] + ]; + } + + $lev1Access = MasterAccessMenu::where('ms_group_id', '=', $id)->where('ms_menu_id', '=', $l1->MsMenuId)->first(); + $_lev1[] = [ + 'id' => $l1->MsMenuId, + 'title' => $l1->title, + 'ordering' => $l1->ordering, + 'level2' => $_lev2, + 'checked' => [ + "is_create" => $lev1Access ? $lev1Access->is_create : 0, + "is_read" => $lev1Access ? $lev1Access->is_read : 0, + "is_update" => $lev1Access ? $lev1Access->is_update : 0, + "is_delete" => $lev1Access ? $lev1Access->is_delete : 0, + "is_download" => $lev1Access ? $lev1Access->is_download : 0, + ] + ]; + } + + $parentAccess = MasterAccessMenu::where('ms_group_id', '=', $id)->where('ms_menu_id', '=', $row->MsMenuId)->first(); + $_parent[] = [ + 'id' => $row->MsMenuId, + 'title' => $row->title, + 'ordering' => $row->ordering, + 'level1' => $_lev1, + 'checked' => [ + "is_create" => $parentAccess ? $parentAccess->is_create : 0, + "is_read" => $parentAccess ? $parentAccess->is_read : 0, + "is_update" => $parentAccess ? $parentAccess->is_update : 0, + "is_delete" => $parentAccess ? $parentAccess->is_delete : 0, + "is_download" => $parentAccess ? $parentAccess->is_download : 0, + ] + ]; + + } + + return $_parent; + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, string $id) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(string $id) + { + // + } +} diff --git a/app/Http/Controllers/Management/RoleController.php b/app/Http/Controllers/Management/RoleController.php index 9fd17a6..7c1df56 100644 --- a/app/Http/Controllers/Management/RoleController.php +++ b/app/Http/Controllers/Management/RoleController.php @@ -40,8 +40,8 @@ class RoleController extends Controller $action = ''; if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){ - $action .= ''; - $action .= ''; + $action .= ''; + $action .= ''; // $action .= ''; } diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php new file mode 100644 index 0000000..2247c5e --- /dev/null +++ b/app/Http/Controllers/ProfileController.php @@ -0,0 +1,20 @@ +template.'.sekolah', $data); + }else{ + return view($this->template.'.admin', $data); + } + } +} diff --git a/app/Models/Log.php b/app/Models/Log.php new file mode 100644 index 0000000..954f2bd --- /dev/null +++ b/app/Models/Log.php @@ -0,0 +1,24 @@ +belongsTo('App\Models\User','id','user_id'); + } +} diff --git a/app/Models/ProfileSekolah.php b/app/Models/ProfileSekolah.php index 2706a7e..d548a4c 100644 --- a/app/Models/ProfileSekolah.php +++ b/app/Models/ProfileSekolah.php @@ -20,4 +20,9 @@ class ProfileSekolah extends Model 'kontak_person', 'telp', ]; + + public function tingkat() + { + return $this->belongsTo(\App\Models\Master\MasterTingkatSekolah::class,'ms_tingkat_sekolah_id','MsTingkatSekolahId'); + } } diff --git a/app/Models/User.php b/app/Models/User.php index e3ef034..b0d0c71 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -49,4 +49,9 @@ class User extends Authenticatable { return $this->belongsTo(ProfileSekolah::class,'id','user_id'); } + + public function group() + { + return $this->belongsTo(\App\Models\Master\MasterGroup::class,'ms_group_id','MsGroupId'); + } } diff --git a/database/migrations/2025_02_20_093001_create_logs_table.php b/database/migrations/2025_02_20_093001_create_logs_table.php new file mode 100644 index 0000000..9dfb3bb --- /dev/null +++ b/database/migrations/2025_02_20_093001_create_logs_table.php @@ -0,0 +1,35 @@ +bigIncrements('MsLogId'); + $table->string('module',200)->nullable(); + $table->string('task',100)->nullable(); + $table->unsignedBigInteger('user_id')->index()->nullable(); + $table->ipAddress('ipaddress')->nullable(); + $table->mediumText('useragent')->nullable(); + $table->mediumText('note')->nullable(); + $table->timestamps(); + + $table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('logs'); + } +}; diff --git a/public/assets/css/app.bundle.css b/public/assets/css/app.bundle.css index 0058cb3..cea3476 100644 --- a/public/assets/css/app.bundle.css +++ b/public/assets/css/app.bundle.css @@ -633,7 +633,7 @@ RESULT: --theme-success-400: #21dfcb; --theme-success-500: #3A7D44; --theme-success-600: #1ab3a3; - --theme-success-700: #179c8e; + --theme-success-700: #3A7D44; --theme-success-800: #13867a; --theme-success-900: #107066; --theme-info-50: #9acffa; @@ -2989,8 +2989,8 @@ html body { box-shadow: 0 2px 6px 0 rgba(134, 142, 150, 0.5); } .btn-success { - -webkit-box-shadow: 0 2px 6px 0 rgba(29, 201, 183, 0.5); - box-shadow: 0 2px 6px 0 rgba(29, 201, 183, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-info { -webkit-box-shadow: 0 2px 6px 0 rgba(33, 150, 243, 0.5); @@ -7198,7 +7198,7 @@ html:not(.root-text-sm):not(.root-text-lg):not(.root-text-xl) [data-class="root- color: white; } .bg-success-700 { - background-color: #179c8e; + background-color: #3A7D44; color: white; } .bg-success-700:hover { color: white; } @@ -7237,7 +7237,7 @@ html:not(.root-text-sm):not(.root-text-lg):not(.root-text-xl) [data-class="root- color: #1ab3a3; } .color-success-700 { - color: #179c8e; } + color: #3A7D44; } .color-success-800 { color: #13867a; } diff --git a/public/assets/css/themes/cust-theme-2.css b/public/assets/css/themes/cust-theme-2.css index 9ea5374..c957609 100644 --- a/public/assets/css/themes/cust-theme-2.css +++ b/public/assets/css/themes/cust-theme-2.css @@ -766,8 +766,8 @@ html body { box-shadow: 0 2px 6px 0 rgba(108, 117, 125, 0.5); } .btn-success { - -webkit-box-shadow: 0 2px 6px 0 rgba(29, 201, 183, 0.5); - box-shadow: 0 2px 6px 0 rgba(29, 201, 183, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-info { -webkit-box-shadow: 0 2px 6px 0 rgba(33, 150, 243, 0.5); @@ -1302,7 +1302,7 @@ code { color: white; } .bg-success-700 { - background-color: #179c8e; + background-color: #3A7D44; color: white; } .bg-success-700:hover { color: white; } @@ -1341,7 +1341,7 @@ code { color: #1ab3a3; } .color-success-700 { - color: #179c8e; } + color: #3A7D44; } .color-success-800 { color: #13867a; } @@ -1795,11 +1795,11 @@ code { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } .btn-success:hover { color: #fff; - background-color: #18a899; - border-color: #179c8e; } + background-color: #3A7D44; + border-color: #3A7D44; } .btn-success:focus, .btn-success.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); - box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-success.disabled, .btn-success:disabled { color: #fff; background-color: #3A7D44; @@ -1807,12 +1807,12 @@ code { .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle { color: #fff; - background-color: #179c8e; + background-color: #3A7D44; border-color: #159184; } .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); - box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-info { color: #fff; diff --git a/public/assets/css/themes/cust-theme-3.css b/public/assets/css/themes/cust-theme-3.css index 251c5f1..a35f57e 100644 --- a/public/assets/css/themes/cust-theme-3.css +++ b/public/assets/css/themes/cust-theme-3.css @@ -766,8 +766,8 @@ html body { box-shadow: 0 2px 6px 0 rgba(108, 117, 125, 0.5); } .btn-success { - -webkit-box-shadow: 0 2px 6px 0 rgba(29, 201, 183, 0.5); - box-shadow: 0 2px 6px 0 rgba(29, 201, 183, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-info { -webkit-box-shadow: 0 2px 6px 0 rgba(33, 150, 243, 0.5); @@ -1302,7 +1302,7 @@ code { color: white; } .bg-success-700 { - background-color: #179c8e; + background-color: #3A7D44; color: white; } .bg-success-700:hover { color: white; } @@ -1341,7 +1341,7 @@ code { color: #1ab3a3; } .color-success-700 { - color: #179c8e; } + color: #3A7D44; } .color-success-800 { color: #13867a; } @@ -1795,11 +1795,11 @@ code { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } .btn-success:hover { color: #fff; - background-color: #18a899; - border-color: #179c8e; } + background-color: #3A7D44; + border-color: #3A7D44; } .btn-success:focus, .btn-success.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); - box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-success.disabled, .btn-success:disabled { color: #fff; background-color: #3A7D44; @@ -1807,12 +1807,12 @@ code { .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle { color: #fff; - background-color: #179c8e; + background-color: #3A7D44; border-color: #159184; } .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); - box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-info { color: #fff; diff --git a/public/assets/css/themes/cust-theme-6.css b/public/assets/css/themes/cust-theme-6.css index 4a2d952..34ea594 100644 --- a/public/assets/css/themes/cust-theme-6.css +++ b/public/assets/css/themes/cust-theme-6.css @@ -766,8 +766,8 @@ html body { box-shadow: 0 2px 6px 0 rgba(108, 117, 125, 0.5); } .btn-success { - -webkit-box-shadow: 0 2px 6px 0 rgba(29, 201, 183, 0.5); - box-shadow: 0 2px 6px 0 rgba(29, 201, 183, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-info { -webkit-box-shadow: 0 2px 6px 0 rgba(33, 150, 243, 0.5); @@ -1302,7 +1302,7 @@ code { color: white; } .bg-success-700 { - background-color: #179c8e; + background-color: #3A7D44; color: white; } .bg-success-700:hover { color: white; } @@ -1341,7 +1341,7 @@ code { color: #1ab3a3; } .color-success-700 { - color: #179c8e; } + color: #3A7D44; } .color-success-800 { color: #13867a; } @@ -1795,11 +1795,11 @@ code { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } .btn-success:hover { color: #fff; - background-color: #18a899; - border-color: #179c8e; } + background-color: #3A7D44; + border-color: #3A7D44; } .btn-success:focus, .btn-success.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); - box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-success.disabled, .btn-success:disabled { color: #fff; background-color: #3A7D44; @@ -1807,12 +1807,12 @@ code { .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle { color: #fff; - background-color: #179c8e; + background-color: #3A7D44; border-color: #159184; } .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); - box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-info { color: #fff; diff --git a/public/assets/css/themes/cust-theme-7.css b/public/assets/css/themes/cust-theme-7.css index f5b8e28..8b06aa1 100644 --- a/public/assets/css/themes/cust-theme-7.css +++ b/public/assets/css/themes/cust-theme-7.css @@ -766,8 +766,8 @@ html body { box-shadow: 0 2px 6px 0 rgba(108, 117, 125, 0.5); } .btn-success { - -webkit-box-shadow: 0 2px 6px 0 rgba(29, 201, 183, 0.5); - box-shadow: 0 2px 6px 0 rgba(29, 201, 183, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-info { -webkit-box-shadow: 0 2px 6px 0 rgba(33, 150, 243, 0.5); @@ -1302,7 +1302,7 @@ code { color: white; } .bg-success-700 { - background-color: #179c8e; + background-color: #3A7D44; color: white; } .bg-success-700:hover { color: white; } @@ -1341,7 +1341,7 @@ code { color: #1ab3a3; } .color-success-700 { - color: #179c8e; } + color: #3A7D44; } .color-success-800 { color: #13867a; } @@ -1795,11 +1795,11 @@ code { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } .btn-success:hover { color: #fff; - background-color: #18a899; - border-color: #179c8e; } + background-color: #3A7D44; + border-color: #3A7D44; } .btn-success:focus, .btn-success.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); - box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-success.disabled, .btn-success:disabled { color: #fff; background-color: #3A7D44; @@ -1807,12 +1807,12 @@ code { .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle { color: #fff; - background-color: #179c8e; + background-color: #3A7D44; border-color: #159184; } .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); - box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-info { color: #fff; diff --git a/public/assets/css/vendors.bundle.css b/public/assets/css/vendors.bundle.css index ac4fdf8..f9ef434 100644 --- a/public/assets/css/vendors.bundle.css +++ b/public/assets/css/vendors.bundle.css @@ -2316,11 +2316,11 @@ fieldset:disabled a.btn { border-color: #3A7D44; } .btn-success:hover { color: #fff; - background-color: #18a899; - border-color: #179c8e; } + background-color: #3A7D44; + border-color: #3A7D44; } .btn-success:focus, .btn-success.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); - box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-success.disabled, .btn-success:disabled { color: #fff; background-color: #3A7D44; @@ -2328,12 +2328,12 @@ fieldset:disabled a.btn { .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle { color: #fff; - background-color: #179c8e; + background-color: #3A7D44; border-color: #159184; } .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); - box-shadow: 0 0 0 0.2rem rgba(63, 209, 194, 0.5); } + -webkit-box-shadow: #3A7D44; + box-shadow: #3A7D44; } .btn-info { color: #fff; @@ -4279,7 +4279,7 @@ input[type="button"].btn-block { background-color: #3A7D44; } a.badge-success:hover, a.badge-success:focus { color: #fff; - background-color: #179c8e; } + background-color: #3A7D44; } a.badge-success:focus, a.badge-success.focus { outline: 0; -webkit-box-shadow: 0 0 0 0.2rem rgba(29, 201, 183, 0.5); @@ -5465,7 +5465,7 @@ button.bg-secondary:focus { a.bg-success:hover, a.bg-success:focus, button.bg-success:hover, button.bg-success:focus { - background-color: #179c8e !important; } + background-color: #3A7D44 !important; } .bg-info { background-color: #2196F3 !important; } diff --git a/public/assets/js/app.bundle.js b/public/assets/js/app.bundle.js index 96e8613..7d9a749 100644 --- a/public/assets/js/app.bundle.js +++ b/public/assets/js/app.bundle.js @@ -16,7 +16,7 @@ var myapp_get_color = { success_400: '#21dfcb', success_500: '#3A7D44', success_600: '#1ab3a3', - success_700: '#179c8e', + success_700: '#3A7D44', success_800: '#13867a', success_900: '#107066', info_50: '#9acffa', diff --git a/public/assets/src/content/statistics/statistics_peity/statistics_peity.hbs b/public/assets/src/content/statistics/statistics_peity/statistics_peity.hbs index 2ecdf86..7efe053 100644 --- a/public/assets/src/content/statistics/statistics_peity/statistics_peity.hbs +++ b/public/assets/src/content/statistics/statistics_peity/statistics_peity.hbs @@ -114,7 +114,7 @@
- 5,3,2,-1,-3,-2,2,3,5,2 + 5,3,2,-1,-3,-2,2,3,5,2
1,4,4,7,5,9,10,4,4,7,5,9,10 diff --git a/public/assets/src/js/_get/app.get.colors.js b/public/assets/src/js/_get/app.get.colors.js index 7655673..6aaeb62 100644 --- a/public/assets/src/js/_get/app.get.colors.js +++ b/public/assets/src/js/_get/app.get.colors.js @@ -16,7 +16,7 @@ var myapp_get_color = { success_400: '#21dfcb', success_500: '#3A7D44', success_600: '#1ab3a3', - success_700: '#179c8e', + success_700: '#3A7D44', success_800: '#13867a', success_900: '#107066', info_50: '#9acffa', diff --git a/resources/views/layouts/master.blade.php b/resources/views/layouts/master.blade.php index 174cafa..eab32e8 100644 --- a/resources/views/layouts/master.blade.php +++ b/resources/views/layouts/master.blade.php @@ -103,6 +103,13 @@ + @yield('page-js') diff --git a/resources/views/home.blade.php b/resources/views/modules/dashboard/admin.blade.php similarity index 100% rename from resources/views/home.blade.php rename to resources/views/modules/dashboard/admin.blade.php diff --git a/resources/views/modules/dashboard/sekolah.blade.php b/resources/views/modules/dashboard/sekolah.blade.php new file mode 100644 index 0000000..56c15a1 --- /dev/null +++ b/resources/views/modules/dashboard/sekolah.blade.php @@ -0,0 +1,146 @@ +@extends('layouts.master') + +@section('page-css') + + +@endsection +@section('content') +
+

+ Dashboard +

+
+
+
+
+
+
+
+
    +
  • +
     Registrasi Akun
    +
  • +
  • +
     Melengkapi Data Profile
    +
  • +
  • +
     Mengisi Kuesioner Leveling
    +
  • +
  • +
     Menunggu Diusulkan CSA
    +
  • +
  • +
     Melengkapi Data CSA
    +
  • +
+
+
+
+
+
+
+ +
+
+
+

Level 4

+
+
+
+ +

{{session('name')}}

+
NPSN: {{session('npsn')}}
+ {{session('tingkat_sekolah')}} + {{session('status_sekolah')}} + +
+
+
ALAMAT
+
+
+

{{session('alamat_sekolah')}}

+
+
+
+
+
KONTAK
+
+
+ +
+
+ {{session('kontak_person')}}
+ {{session('telp')}} +
+
+
+
+
+
+
+
+
+
+

Status Usulan

+

Sekolah diusulan untuk menjadi CSA (Calon Sekolah Adiwiyata) Nasional

+ Silahkan lengkapi data pada menu Usulan Adiwiyata. +
+
+ + + + + + + + + + + + +
Penghargaan TerakhirTanggal Penetapan SKLampiran SK
+ + +
Adiwiyata Provinsi
+ SK Gubernur DKI Nomor 276 Tahun 2023 +
2023-04-13 --
+
+
+
+
+
+
+
+
+@endsection +@section('page-js') + +@endsection \ No newline at end of file diff --git a/resources/views/modules/management/role/akses/form.blade.php b/resources/views/modules/management/role/akses/form.blade.php new file mode 100644 index 0000000..9d3c640 --- /dev/null +++ b/resources/views/modules/management/role/akses/form.blade.php @@ -0,0 +1,296 @@ +@extends('layouts.master') +@section('breadcrumbs') + +@endsection +@section('content') +
+
+
+
+ {{$title}} +
+
+ {{csrf_field()}} +
+
+
+ + + + + + + + + + + + + + @foreach($menu as $key1 => $parent) + + + + + + + + + + + @if($parent['level1']) + @foreach($parent['level1'] as $key2 => $level1) + + + + + + + + + + + + @if($level1['level2']) + @foreach($level1['level2'] as $key3 => $level2) + + + + + + + + + + @if($level2['level3']) + @foreach($level2['level3'] as $key4 => $level3) + + + + + + + + + + @if($level3['level4']) + @foreach($level3['level4'] as $key5 => $level4) + + + + + + + + + + @endforeach + @endif + @endforeach + @endif + @endforeach + @endif + @endforeach + @endif + @endforeach + +
#Menu
+ @if(count($parent['level1']) > 0) + + + + @endif + {{$parent['title']}} + + + + + + + + + +
+ @if(count($level1['level2']) > 0)@endif + --- {{$level1['title']}} + + + + + + + + + +
+ @if(count($level2['level3']) > 0)@endif + ------ {{$level2['title']}} + + + + + + + + + +
+ @if(count($level3['level4']) > 0)@endif + --------- {{$level3['title']}} + + + + + + + + + +
+ {{$level4['id']}} + ------------ {{$level4['title']}} + + + + + + + + + +
+ +
+
+
+ +
+
+
+
+@endsection +@section('page-js') + +@endsection \ No newline at end of file diff --git a/resources/views/modules/management/user/index.blade.php b/resources/views/modules/management/user/index.blade.php index 2c1b4e5..493aab0 100644 --- a/resources/views/modules/management/user/index.blade.php +++ b/resources/views/modules/management/user/index.blade.php @@ -45,7 +45,7 @@ data-id-field="id" id="grid-data"> - + # No Name diff --git a/resources/views/profile.blade.php b/resources/views/modules/profile/admin.blade.php similarity index 100% rename from resources/views/profile.blade.php rename to resources/views/modules/profile/admin.blade.php diff --git a/resources/views/modules/profile/sekolah.blade.php b/resources/views/modules/profile/sekolah.blade.php new file mode 100644 index 0000000..5dca37c --- /dev/null +++ b/resources/views/modules/profile/sekolah.blade.php @@ -0,0 +1,250 @@ +@extends('layouts.master') + +@section('page-css') + + +@endsection +@section('content') +
+

+ {{$title}} +

+
+
+
+
+
+
+
+
+
+ +
+
+
+

Level 4

+
+
+
+ +

{{session('name')}}

+
NPSN: {{session('npsn')}}
+ {{session('tingkat_sekolah')}} + {{session('status_sekolah')}} + +
+
+
ALAMAT
+
+
+

{{session('alamat_sekolah')}}

+
+
+
+
+
KONTAK
+
+
+ +
+
+ {{session('kontak_person')}}
+ {{session('telp')}} +
+
+
+
+
+ {{csrf_field()}} +
+
+
+ +
+
+ + + + + + + + + + + + +
Penghargaan TerakhirTanggal Penetapan SKLampiran SK
+ + +
Adiwiyata Provinsi
+ SK Gubernur DKI Nomor 276 Tahun 2023 +
2023-04-13 --
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Data Jumlah
Jumlah Peserta Didik + +
Jumlah Tenaga Pendidik + +
Jumlah Tenaga kependidikan + +
Jumlah Warga Sekolah Lainnya + +
Jumlah Biopori + +
Jumlah Sumur Resapan + +
Jumlah Pohon/Tanaman yang ditanam dan tumbuh + +
+
+
+ + + + + + + + + + + + + + +
Penghematan air sebelum dan setelah melaksanakan gerakan PBLHS :
Sebelum melaksanakan gerakan PBLHS
(Meter Kubik/Bulan)
+ +
Setelah melaksanakan gerakan PBLHS
(Meter Kubik/Bulan dalam Tahun ajaran 2022/2023)
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Penghematan listrik sebelum dan setelah melaksanakan gerakan PBLHS :
Sebelum melaksanakan gerakan PBLHS
(KWH/Bulan)
+
+ +
Setelah melaksanakan gerakan PBLHS
(KWH/Bulan dalam Tahun ajaran 2022/2023)
+ +
Luas ruangan ber AC + +
Luas ruangan non AC + +
Jumlah Kader + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+@endsection +@section('page-js') + +@endsection \ No newline at end of file diff --git a/routes/modules/modules.php b/routes/modules/modules.php index 7ebcfc8..4672eee 100644 --- a/routes/modules/modules.php +++ b/routes/modules/modules.php @@ -3,17 +3,15 @@ use Illuminate\Support\Facades\Route; use App\Http\Middleware\Session; use App\Http\Controllers\HomeController; +use App\Http\Controllers\ProfileController; use App\Http\Controllers\Master\IndikatorController; use App\Http\Controllers\Master\KomponenController; use App\Http\Controllers\Management\UserController; use App\Http\Controllers\Management\RoleController; +use App\Http\Controllers\Management\AksesController; Route::get('dashboard',[HomeController::class,'dashboard'])->name('dashboard'); - -Route::get('/profile-sekolah', function () { - $data['title'] = 'Profile Sekolah'; - return view('profile',$data); -})->name('profile.*'); +Route::get('profile-sekolah',[ProfileController::class,'index'])->name('profile.index'); Route::name('master.')->prefix('master')->group(function () { Route::resource('indikator',IndikatorController::class); @@ -29,6 +27,11 @@ Route::name('management.')->prefix('management')->group(function () { Route::name('role.')->prefix('role')->group(function () { Route::resource('/',RoleController::class); Route::get('grid',[RoleController::class,'grid'])->name('grid'); + + Route::name('akses.')->prefix('akses')->group(function () { + Route::resource('/',AksesController::class); + Route::get('{id}/edit',[AksesController::class,'edit'])->name('edit'); + }); });