diff --git a/app/Http/Controllers/Management/UserController.php b/app/Http/Controllers/Management/UserController.php index f92e540..8918052 100644 --- a/app/Http/Controllers/Management/UserController.php +++ b/app/Http/Controllers/Management/UserController.php @@ -9,6 +9,7 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use App\Models\User; +use App\Models\UserInstansi; use App\Models\Master\Group; class UserController extends Controller @@ -90,18 +91,19 @@ class UserController extends Controller { try { + // dd($request->all()); + $keyId = decode_id($request->secure_id); if(@$keyId){ Validator::make($request->all(), [ 'email' => 'required|unique:users,email,'.$keyId.'|email', - 'name' => 'required|max:50', + 'name' => 'required|max:255', 'group' => 'required', 'ms_instansi_id' => 'required', 'username' => 'required|unique:users,username,'.$keyId, - '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' => 'nullable|min:5|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(); @@ -110,22 +112,32 @@ class UserController extends Controller $user->email = $request->email; $user->username = $request->username; $user->ms_group_id = decode_id($request->group); - $user->ms_instansi_id = decode_id($request->ms_instansi_id); if(@$request->password){ $user->password = Hash::make($request->password); } $user->name = $request->name; $user->save(); + + // dd(decode_id($request->ms_instansi_id)); + + UserInstansi::updateOrCreate([ + 'user_id' => $user->id, + 'ms_instansi_id' => decode_id($request->ms_instansi_id), + ],[ + 'user_id' => $user->id, + 'ms_instansi_id' => decode_id($request->ms_instansi_id), + ]); + }else{ Validator::make($request->all(), [ 'email' => 'required|unique:users,email|email', - 'name' => 'required|max:50', + 'name' => 'required|max:255', 'group' => 'required', 'ms_instansi_id' => 'required', 'username' => 'required|unique:users,username', - 'password' => 'required|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' => 'required|min:5|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.min' => 'password Minimal 5 Karakter', 'password.max' => 'password Maksimal 15 Karakter', 'password.regex' => 'Format Kata Sandi harus mengandung minimal Huruf Besar, Huruf Kecil, Angka, Spesial Karakter', ])->validate(); @@ -134,12 +146,19 @@ class UserController extends Controller $user->email = $request->email; $user->username = $request->username; $user->ms_group_id = decode_id($request->group); - $user->ms_instansi_id = decode_id($request->ms_instansi_id); if(@$request->password){ $user->password = Hash::make($request->password); } $user->name = $request->name; $user->save(); + + UserInstansi::updateOrCreate([ + 'user_id' => $user->id, + 'ms_instansi_id' => decode_id($request->ms_instansi_id), + ],[ + 'user_id' => $user->id, + 'ms_instansi_id' => decode_id($request->ms_instansi_id), + ]); } return redirect()->back()->with([ @@ -186,6 +205,7 @@ class UserController extends Controller $data['route'] = $this->route; $data['keyId'] = $id; $data['item'] = User::where('id',$keyId)->first(); + $data['userInstansi'] = UserInstansi::where('user_id',$keyId)->first(); $data['group'] = Group::where('MsGroupId','!=',1)->get(); return view($this->template.'.form',$data); } diff --git a/app/Http/Controllers/Master/InstansiController.php b/app/Http/Controllers/Master/InstansiController.php index 00fd90e..4f66d7c 100644 --- a/app/Http/Controllers/Master/InstansiController.php +++ b/app/Http/Controllers/Master/InstansiController.php @@ -55,7 +55,7 @@ class InstansiController extends Controller $action .= ''; if((session('group_id') == 1) || (session('group_id') == 9)){ // $action .= ''; - // $action .= ''; + $action .= ''; } $action .= ''; } @@ -242,4 +242,13 @@ class InstansiController extends Controller { // } + + public function delete($id) + { + $keyId = decode_id($id); + + $user = Instansi::where('MsInstansiId',$keyId)->delete(); + + return response()->json(['success' => true,'message' => 'Berhasil update data','type' => 'success']); + } } diff --git a/app/Models/User.php b/app/Models/User.php index 7a5ad82..c1c1054 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -48,8 +48,5 @@ class User extends Authenticatable return $this->belongsTo(\App\Models\Master\Group::class,'ms_group_id','MsGroupId'); } - public function instansi() - { - return $this->belongsTo(\App\Models\Master\Instansi::class,'ms_instansi_id','MsInstansiId'); - } + } diff --git a/app/Models/UserInstansi.php b/app/Models/UserInstansi.php new file mode 100644 index 0000000..0171c6a --- /dev/null +++ b/app/Models/UserInstansi.php @@ -0,0 +1,20 @@ +belongsTo(\App\Models\Master\Instansi::class,'ms_instansi_id','MsInstansiId'); + } +} diff --git a/database/migrations/2025_06_23_020319_add_column_ms_instansi_user.php b/database/migrations/2025_10_20_033409_create_user_instansis_table.php similarity index 56% rename from database/migrations/2025_06_23_020319_add_column_ms_instansi_user.php rename to database/migrations/2025_10_20_033409_create_user_instansis_table.php index ee91d06..c55d751 100644 --- a/database/migrations/2025_06_23_020319_add_column_ms_instansi_user.php +++ b/database/migrations/2025_10_20_033409_create_user_instansis_table.php @@ -11,10 +11,14 @@ return new class extends Migration */ public function up(): void { - Schema::table('users', function (Blueprint $table) { - $table->integer('ms_instansi_id')->after('id')->default(1); + Schema::create('user_instansi', function (Blueprint $table) { + $table->id('UserInstansiId'); + $table->integer('user_id'); + $table->integer('ms_instansi_id'); + $table->timestampsTz(); $table->foreign('ms_instansi_id')->references('MsInstansiId')->on('ms_instansi')->cascadeOnDelete(); + $table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete(); }); } @@ -23,8 +27,6 @@ return new class extends Migration */ public function down(): void { - Schema::table('users', function (Blueprint $table) { - // - }); + Schema::dropIfExists('user_instansis'); } }; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 5c8be96..9778b86 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -5,9 +5,8 @@ namespace Database\Seeders; // use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; use Hash; -use App\Models\Master\Group; -use App\Models\Master\Instansi; use App\Models\User; +use App\Models\UserInstansi; class DatabaseSeeder extends Seeder { @@ -16,86 +15,6 @@ class DatabaseSeeder extends Seeder */ public function run(): void { - // \App\Models\User::factory(10)->create(); - - // \App\Models\User::factory()->create([ - // 'name' => 'Test User', - // 'email' => 'test@example.com', - // ]); - - $group = [ - ['name' => 'Administrator','alias' => 'administrator'], - ['name' => 'Dinas','alias' => 'dinas'], - ]; - - foreach($group as $valGroup){ - Group::updateOrCreate([ - 'name' => $valGroup['name'], - 'alias' => $valGroup['alias'], - ],[ - 'name' => $valGroup['name'], - 'alias' => $valGroup['alias'], - 'status' => 1, - ]); - } - $instansi = [ - ['type' => 'Biro' , 'name' => 'Biro Kepala Daerah'], - ['type' => 'Biro' , 'name' => 'Biro Kerjasama Daerah'], - ['type' => 'Biro' , 'name' => 'Biro Kesejahteraan Sosial'], - ['type' => 'Biro' , 'name' => 'Biro Organisasi Dan Reformasi Birokrasi'], - ['type' => 'Biro' , 'name' => 'Biro Pembangunan Dan Lingkungan Hidup'], - ['type' => 'Biro' , 'name' => 'Biro Pemerintahan'], - ['type' => 'Biro' , 'name' => 'Biro Pendidikan Dan Mental Spiritual'], - ['type' => 'Biro' , 'name' => 'Biro Perekonomian Dan Keuangan'], - ['type' => 'Biro' , 'name' => 'Biro Umum dan Administrasi Sekretariat Daerah'], - ['type' => 'Biro' , 'name' => 'Biro Hukum'], - ['type' => 'Badan' , 'name' => 'Badan Perencanaan Pembangunan Daerah (Bappeda)'], - ['type' => 'Badan' , 'name' => 'Badan Pengelola Keuangan Daerah (BPKD)'], - ['type' => 'Badan' , 'name' => 'Badan Pengelola Aset Daerah (BPAD)'], - ['type' => 'Badan' , 'name' => 'Badan Pendapatan Daerah (Bapenda)'], - ['type' => 'Badan' , 'name' => 'Badan Kesatuan Bangsa dan Politik (Kesbangpol)'], - ['type' => 'Badan' , 'name' => 'Badan Pembinaan Badan Usaha Milik Daerah (BPBUMD)'], - ['type' => 'Badan' , 'name' => 'Badan Kepegawaian Daerah (BKD)'], - ['type' => 'Badan' , 'name' => 'Badan Pengembangan Sumber Daya Manusia (BPSDM)'], - ['type' => 'Badan' , 'name' => 'Badan Penanggulangan Bencana Daerah (BPBD)'], - ['type' => 'Badan' , 'name' => 'Badan Pelayanan Pengadaan Barang dan Jasa (BPPBJ)'], - ['type' => 'Deputi' , 'name' => 'Deputi Bidang Tata Ruang dan Lingkungan Hidup'], - ['type' => 'Deputi' , 'name' => 'Deputi Bidang Pengendalian Kependudukan dan Permukiman'], - ['type' => 'Deputi' , 'name' => 'Deputi Bidang Industri, Perdagangan dan Transportasi'], - ['type' => 'Deputi' , 'name' => 'Deputi Bidang Budaya dan Pariwisata'], - ['type' => 'Dinas' , 'name' => 'Dinas Pendidikan'], - ['type' => 'Dinas' , 'name' => 'Dinas Kesehatan'], - ['type' => 'Dinas' , 'name' => 'Dinas Bina Marga'], - ['type' => 'Dinas' , 'name' => 'Dinas Sumber Daya Air'], - ['type' => 'Dinas' , 'name' => 'Dinas Cipta Karya, Tata Ruang dan Pertanahan'], - ['type' => 'Dinas' , 'name' => 'Dinas Perumahan Rakyat dan Kawasan Permukiman'], - ['type' => 'Dinas' , 'name' => 'Dinas Penanggulangan Kebakaran dan Penyelamatan'], - ['type' => 'Dinas' , 'name' => 'Dinas Sosial'], - ['type' => 'Dinas' , 'name' => 'Dinas Tenaga Kerja, Transmigrasi dan Energi'], - ['type' => 'Dinas' , 'name' => 'Dinas Pemberdayaan, Perlindungan Anak dan Pengendalian Penduduk'], - ['type' => 'Dinas' , 'name' => 'Dinas Ketahanan Pangan, Kelautan dan Pertanian'], - ['type' => 'Dinas' , 'name' => 'Dinas Lingkungan Hidup'], - ['type' => 'Dinas' , 'name' => 'Dinas Kependudukan dan Pencatatan Sipil'], - ['type' => 'Dinas' , 'name' => 'Dinas Perhubungan'], - ['type' => 'Dinas' , 'name' => 'Dinas Komunikasi, Informatika dan Statistik'], - ['type' => 'Dinas' , 'name' => 'Dinas Perindustrian, Perdagangan, Koperasi dan Usaha Kecil Menengah'], - ['type' => 'Dinas' , 'name' => 'Dinas Penanaman Modal dan Pelayanan Terpadu Satu Pintu'], - ['type' => 'Dinas' , 'name' => 'Dinas Pemuda dan Olahraga'], - ['type' => 'Dinas' , 'name' => 'Dinas Pariwisata dan Ekonomi Kreatif'], - ['type' => 'Dinas' , 'name' => 'Dinas Perpustakaan dan Kearsipan'], - ['type' => 'Dinas' , 'name' => 'Dinas Pertamanan dan Hutan Kota'], - ['type' => 'Dinas' , 'name' => 'Dinas Kebudayaan'], - ]; - - foreach($instansi as $dataInstansi){ - Instansi::updateOrCreate([ - 'parent' => $dataInstansi['type'], - 'name' => $dataInstansi['name'], - ],[ - 'parent' => $dataInstansi['type'], - 'name' => $dataInstansi['name'], - ]); - } User::updateOrCreate([ 'name' => 'Administrator', @@ -106,119 +25,8 @@ class DatabaseSeeder extends Seeder 'username' => 'administrator', 'email' => 'admindikplhd@dlh.go.id', 'ms_group_id' => '1', - 'ms_instansi_id' => '1', 'password' => Hash::make('##Dikplhd2025'), ]); - - - $menu = [ - [ - 'parent_id' => '0', - 'title' => 'Master Data', - 'module' => 'modules.master.*', - 'url' => '#', - 'menu_type' => 'sidebar', - 'menu_icon' => 'ri-database-2-line', - 'ordering' => '5', - 'status' => 'true', - 'created_by' => '1', - 'updated_by' => '0' - ],[ - 'parent_id' => '0', - 'title' => 'User & Hak Akses', - 'module' => 'modules.management.*', - 'url' => '#', - 'menu_type' => 'sidebar', - 'menu_icon' => 'ri-database-2-line', - 'ordering' => '5', - 'status' => 'true', - 'created_by' => '1', - 'updated_by' => '0' - ],[ - 'parent_id' => '2', - 'title' => 'Data Users', - 'module' => 'modules.management.user.*', - 'url' => 'management/user', - 'menu_type' => 'sidebar', - 'menu_icon' => 'ri-user-line', - 'ordering' => '1', - 'status' => 'true', - 'created_by' => '1', - 'updated_by' => '0' - ],[ - 'parent_id' => '2', - 'title' => 'Data Role User', - 'module' => 'modules.management.role.*', - 'url' => 'management/role', - 'menu_type' => 'sidebar', - 'menu_icon' => 'ri-share-line', - 'ordering' => '3', - 'status' => 'true', - 'created_by' => '1', - 'updated_by' => '0' - ],[ - 'parent_id' => '1', - 'title' => 'Data Instansi', - 'module' => 'modules.instansi.*', - 'url' => 'master/instansi', - 'menu_type' => 'sidebar', - 'menu_icon' => 'ri-home-line', - 'ordering' =>'1', - 'status' => 'true', - 'created_by' => '1', - 'updated_by' => '0' - ],[ - 'parent_id' => '0', - 'title' => 'Open Data', - 'module' => 'modules.opendata.*', - 'url' => '#', - 'menu_type' => 'sidebar', - 'menu_icon' => 'ri-database-2-line', - 'ordering' => '1', - 'status' => 'true', - 'created_by' => '1', - 'updated_by' => '0' - ],[ - 'parent_id' => '6', - 'title' => 'Dataset', - 'module' => 'modules.opendata.dataset.*', - 'url' => 'opendata/dataset', - 'menu_type' => 'sidebar', - 'menu_icon' => 'ri-database-2-line', - 'ordering' => '1', - 'status' => 'true', - 'created_by' => '1', - 'updated_by' => '0' - ], - ]; - - foreach($menu as $dataMenu){ - Menu::updateOrCreate([ - 'parent_id' => $dataMenu['parent_id'], - 'title' => $dataMenu['title'], - 'module' => $dataMenu['module'], - 'url' => $dataMenu['url'], - 'menu_type' => $dataMenu['menu_type'], - 'menu_icon' => $dataMenu['menu_icon'], - 'ordering' => $dataMenu['ordering'], - 'status' => $dataMenu['status'], - 'created_by' => $dataMenu['created_by'], - 'updated_by' => $dataMenu['updated_by'], - ],[ - 'parent_id' => $dataMenu['parent_id'], - 'title' => $dataMenu['title'], - 'module' => $dataMenu['module'], - 'url' => $dataMenu['url'], - 'menu_type' => $dataMenu['menu_type'], - 'menu_icon' => $dataMenu['menu_icon'], - 'ordering' => $dataMenu['ordering'], - 'status' => $dataMenu['status'], - 'created_by' => $dataMenu['created_by'], - 'updated_by' => $dataMenu['updated_by'], - ]); - } - - } } diff --git a/database/seeders/GroupSeeder.php b/database/seeders/GroupSeeder.php new file mode 100644 index 0000000..7b3b346 --- /dev/null +++ b/database/seeders/GroupSeeder.php @@ -0,0 +1,36 @@ + 'Administrator','alias' => 'administrator'], + ['name' => 'Admin TL','alias' => 'admin'], + ['name' => 'Lembaga / Badan Pemerintah Daerah','alias' => 'lembaga-daerah'], + ['name' => 'Lembaga Non-Kementerian / Badan Nasional','alias' => 'badan-nasional'], + ['name' => 'Biro / Sekretariat / Unit Pelayanan','alias' => 'biro'], + ['name' => 'Kementerian / Lembaga Pemerintah Pusat','alias' => 'kementrian'], + ]; + + foreach($group as $valGroup){ + Group::updateOrCreate([ + 'name' => $valGroup['name'], + 'alias' => $valGroup['alias'], + ],[ + 'name' => $valGroup['name'], + 'alias' => $valGroup['alias'], + 'status' => 1, + ]); + } + } +} diff --git a/database/seeders/InstansiSeeder.php b/database/seeders/InstansiSeeder.php new file mode 100644 index 0000000..d68caba --- /dev/null +++ b/database/seeders/InstansiSeeder.php @@ -0,0 +1,75 @@ + 'kementrian', 'name' => 'Dirjen Bina Marga'], + ['type' => 'kementrian', 'name' => 'Direktorat Pengelolaan Limbah B3 dan Non B3 Deputi PSLB3 KLHK'], + ['type' => 'kementrian', 'name' => 'BKSDA Jakarta'], + ['type' => 'kementrian', 'name' => 'Balai Taman Nasional Kepulauan Seribu'], + ['type' => 'kementrian', 'name' => 'BPH Migas'], + ['type' => 'kementrian', 'name' => 'DPHK'], + ['type' => 'kementrian', 'name' => 'DKTKE'], + ['type' => 'kementrian', 'name' => 'Pertamina MOR III'], + + // Biro / Sekretariat / Unit Pelayanan + ['type' => 'biro', 'name' => 'Unit Pelayanan Terpadu Satu Pintu KLH'], + ['type' => 'biro', 'name' => 'Biro Hukum'], + + // Lembaga Non-Kementerian / Badan Nasional + ['type' => 'badan-nasional', 'name' => 'BMKG Prov. DKI'], + ['type' => 'badan-nasional', 'name' => 'BPS Prov. DKI Jakarta'], + ['type' => 'badan-nasional', 'name' => 'PGN'], + ['type' => 'badan-nasional', 'name' => 'PHE ONWJ'], + ['type' => 'badan-nasional', 'name' => 'Pertamina Hulu Energi'], + ['type' => 'badan-nasional', 'name' => 'KAI Commuter'], + ['type' => 'badan-nasional', 'name' => 'BPH Migas'], + ['type' => 'badan-nasional', 'name' => 'Balai Taman Nasional'], + ['type' => 'badan-nasional', 'name' => 'BKSDA Jakarta'], + + // Lembaga / Badan Pemerintah Daerah + ['type' => 'lembaga-daerah', 'name' => 'Bappeda'], + ['type' => 'lembaga-daerah', 'name' => 'Bapenda'], + ['type' => 'lembaga-daerah', 'name' => 'BPBD'], + ['type' => 'lembaga-daerah', 'name' => 'DCKTRP'], + ['type' => 'lembaga-daerah', 'name' => 'DSDA'], + ['type' => 'lembaga-daerah', 'name' => 'DKPKP'], + ['type' => 'lembaga-daerah', 'name' => 'DPMPTSP'], + ['type' => 'lembaga-daerah', 'name' => 'Dinkes'], + ['type' => 'lembaga-daerah', 'name' => 'Dinas Dukcapil'], + ['type' => 'lembaga-daerah', 'name' => 'Dinas Bina Marga'], + ['type' => 'lembaga-daerah', 'name' => 'Dinas Gulkarmat'], + ['type' => 'lembaga-daerah', 'name' => 'Dinas Sosial'], + ['type' => 'lembaga-daerah', 'name' => 'Dishub'], + ['type' => 'lembaga-daerah', 'name' => 'Dinas Kominfotik'], + ['type' => 'lembaga-daerah', 'name' => 'DLH'], + ['type' => 'lembaga-daerah', 'name' => 'Paljaya'], + ['type' => 'lembaga-daerah', 'name' => 'PAM Jaya'], + ['type' => 'lembaga-daerah', 'name' => 'Transjakarta'], + ['type' => 'lembaga-daerah', 'name' => 'MRT Jakarta'], + ]; + + foreach($instansi as $dataInstansi){ + Instansi::updateOrCreate([ + 'parent' => $dataInstansi['type'], + 'name' => $dataInstansi['name'], + ],[ + 'parent' => $dataInstansi['type'], + 'name' => $dataInstansi['name'], + ]); + } + + } +} diff --git a/database/seeders/MenuSeeder.php b/database/seeders/MenuSeeder.php new file mode 100644 index 0000000..5eeab9f --- /dev/null +++ b/database/seeders/MenuSeeder.php @@ -0,0 +1,123 @@ + '0', + 'title' => 'Master Data', + 'module' => 'modules.master.*', + 'url' => '#', + 'menu_type' => 'sidebar', + 'menu_icon' => 'ri-database-2-line', + 'ordering' => '5', + 'status' => 'true', + 'created_by' => '1', + 'updated_by' => '0' + ],[ + 'parent_id' => '0', + 'title' => 'User & Hak Akses', + 'module' => 'modules.management.*', + 'url' => '#', + 'menu_type' => 'sidebar', + 'menu_icon' => 'ri-database-2-line', + 'ordering' => '5', + 'status' => 'true', + 'created_by' => '1', + 'updated_by' => '0' + ],[ + 'parent_id' => '2', + 'title' => 'Data Users', + 'module' => 'modules.management.user.*', + 'url' => 'management/user', + 'menu_type' => 'sidebar', + 'menu_icon' => 'ri-user-line', + 'ordering' => '1', + 'status' => 'true', + 'created_by' => '1', + 'updated_by' => '0' + ],[ + 'parent_id' => '2', + 'title' => 'Data Role User', + 'module' => 'modules.management.role.*', + 'url' => 'management/role', + 'menu_type' => 'sidebar', + 'menu_icon' => 'ri-share-line', + 'ordering' => '3', + 'status' => 'true', + 'created_by' => '1', + 'updated_by' => '0' + ],[ + 'parent_id' => '1', + 'title' => 'Data Instansi', + 'module' => 'modules.instansi.*', + 'url' => 'master/instansi', + 'menu_type' => 'sidebar', + 'menu_icon' => 'ri-home-line', + 'ordering' =>'1', + 'status' => 'true', + 'created_by' => '1', + 'updated_by' => '0' + ],[ + 'parent_id' => '0', + 'title' => 'Open Data', + 'module' => 'modules.opendata.*', + 'url' => '#', + 'menu_type' => 'sidebar', + 'menu_icon' => 'ri-database-2-line', + 'ordering' => '1', + 'status' => 'true', + 'created_by' => '1', + 'updated_by' => '0' + ],[ + 'parent_id' => '6', + 'title' => 'Dataset', + 'module' => 'modules.opendata.dataset.*', + 'url' => 'opendata/dataset', + 'menu_type' => 'sidebar', + 'menu_icon' => 'ri-database-2-line', + 'ordering' => '1', + 'status' => 'true', + 'created_by' => '1', + 'updated_by' => '0' + ], + ]; + + foreach($menu as $dataMenu){ + Menu::updateOrCreate([ + 'parent_id' => $dataMenu['parent_id'], + 'title' => $dataMenu['title'], + 'module' => $dataMenu['module'], + 'url' => $dataMenu['url'], + 'menu_type' => $dataMenu['menu_type'], + 'menu_icon' => $dataMenu['menu_icon'], + 'ordering' => $dataMenu['ordering'], + 'status' => $dataMenu['status'], + 'created_by' => $dataMenu['created_by'], + 'updated_by' => $dataMenu['updated_by'], + ],[ + 'parent_id' => $dataMenu['parent_id'], + 'title' => $dataMenu['title'], + 'module' => $dataMenu['module'], + 'url' => $dataMenu['url'], + 'menu_type' => $dataMenu['menu_type'], + 'menu_icon' => $dataMenu['menu_icon'], + 'ordering' => $dataMenu['ordering'], + 'status' => $dataMenu['status'], + 'created_by' => $dataMenu['created_by'], + 'updated_by' => $dataMenu['updated_by'], + ]); + } + } +} diff --git a/resources/views/modules/management/user/form.blade.php b/resources/views/modules/management/user/form.blade.php index e30c961..ec23645 100644 --- a/resources/views/modules/management/user/form.blade.php +++ b/resources/views/modules/management/user/form.blade.php @@ -19,21 +19,21 @@ @error('username') - {{$message}} + {{$message}} @enderror
@error('name') - {{$message}} + {{$message}} @enderror
- @error('name') - {{$message}} + @error('email') + {{$message}} @enderror
@@ -45,17 +45,22 @@ @endforeach @error('group') - {{$message}} + {{$message}} @enderror
@@ -63,12 +68,12 @@ @error('ms_instansi_id') - {{$message}} + {{$message}} @enderror @@ -78,7 +83,7 @@ @error('password') - {{$message}} + {{$message}} @enderror

@@ -131,8 +136,18 @@ }); }); - $(document).ready(function() { - + $('#togglePassword').on('click', function() { + let passwordField = $('#password'); + let icon = $(this).find('i'); + + // Cek apakah input saat ini bertipe password + if (passwordField.attr('type') === 'password') { + passwordField.attr('type', 'text'); // Ubah ke teks + icon.removeClass('ri-eye-line').addClass('ri-eye-2-line'); // Ganti ikon + } else { + passwordField.attr('type', 'password'); // Ubah ke password + icon.removeClass('ri-eye-2-line').addClass('ri-eye-line'); // Kembalikan ikon + } }); @endsection \ No newline at end of file diff --git a/routes/modules/modules.php b/routes/modules/modules.php index 797bd29..a779c0b 100644 --- a/routes/modules/modules.php +++ b/routes/modules/modules.php @@ -69,6 +69,7 @@ Route::name('master.')->prefix('master')->group(function () { Route::resource('/',InstansiController::class); Route::get('grid',[InstansiController::class,'grid'])->name('grid'); Route::get('update/{id?}',[InstansiController::class,'update'])->name('update'); + Route::get('delete/{id?}',[InstansiController::class,'delete'])->name('delete'); }); });