update
parent
5b884e595e
commit
288e32dcbe
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ class InstansiController extends Controller
|
|||
$action .= '<a href="'.url('master/instansi/update/'.encode_id($row->MsInstansiId)).'" data-toggle="tooltip" title="Edit Data" class="btn btn-sm btn-block bg-primary"><i class="ri-pencil-line text-white"></i></a>';
|
||||
if((session('group_id') == 1) || (session('group_id') == 9)){
|
||||
// $action .= '<a href="#" data-href="'.url('management/user/forcelogin/'.encode_id($row->id)).'" data-toggle="tooltip" title="Force Login" class="forcelogin btn btn-sm btn-block bg-success"><i class="ri-user-2-line text-white"></i></a>';
|
||||
// $action .= '<a href="#" data-href="'.url('management/user/delete/'.encode_id($row->id)).'" data-toggle="tooltip" title="Hapus Data" class="remove_data btn btn-sm btn-block bg-danger"><i class="ri-delete-bin-line text-white"></i></a>';
|
||||
$action .= '<a href="#" data-href="'.url('master/instansi/delete/'.encode_id($row->MsInstansiId)).'" data-toggle="tooltip" title="Hapus Data" class="remove_data btn btn-sm btn-block bg-danger"><i class="ri-delete-bin-line text-white"></i></a>';
|
||||
}
|
||||
$action .= '</div>';
|
||||
}
|
||||
|
|
@ -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']);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class UserInstansi extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $table = 'user_instansi';
|
||||
protected $primaryKey = 'UserInstansiId';
|
||||
protected $guarded = [];
|
||||
|
||||
public function instansi()
|
||||
{
|
||||
return $this->belongsTo(\App\Models\Master\Instansi::class,'ms_instansi_id','MsInstansiId');
|
||||
}
|
||||
}
|
||||
|
|
@ -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');
|
||||
}
|
||||
};
|
||||
|
|
@ -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'],
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Models\Master\Group;
|
||||
|
||||
class GroupSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$group = [
|
||||
['name' => '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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Models\Master\Instansi;
|
||||
|
||||
class InstansiSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$instansi = [
|
||||
// Kementerian / Lembaga Pemerintah Pusat
|
||||
['type' => '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'],
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Models\Master\Menu;
|
||||
|
||||
class MenuSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$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'],
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -19,21 +19,21 @@
|
|||
<label class="mb-3">Username</label>
|
||||
<input type="text" value="{{@$item->username ? @$item->username : old('username')}}" name="username" class="form-input @error('username') is-invalid @enderror" placeholder="Masukan username" required>
|
||||
@error('username')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
<span class="p-2 bg-danger text-white rounded mt-1" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="mb-3">Nama</label>
|
||||
<input type="text" value="{{@$item->name ? @$item->name : old('name')}}" name="name" class="form-input @error('name') is-invalid @enderror" placeholder="Masukan Nama" required>
|
||||
@error('name')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
<span class="p-2 bg-danger text-white rounded mt-1" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="mb-3">Email</label>
|
||||
<input type="email" name="email" value="{{@$item->email ? @$item->email : old('email')}}" id="emailverify" class="form-input @error('email') is-invalid @enderror" placeholder="Masukan Email Aktif" required>
|
||||
@error('name')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@error('email')
|
||||
<span class="p-2 bg-danger text-white rounded mt-1" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
|
|
@ -45,17 +45,22 @@
|
|||
@endforeach
|
||||
</select>
|
||||
@error('group')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
<span class="p-2 bg-danger text-white rounded mt-1" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="mb-3">Jenis Instansi</label>
|
||||
<select name="type" id="type" class="form-input @error('type') is-invalid @enderror" required>
|
||||
<option value="">-Pilih Jenis Instansi-</option>
|
||||
<option {{@$item->instansi->parent == 'Biro' ? 'selected' : '' }} value="Biro">Biro</option>
|
||||
<option {{@$item->instansi->parent == 'Badan' ? 'selected' : '' }} value="Badan">Badan</option>
|
||||
<option {{@$item->instansi->parent == 'Deputi' ? 'selected' : '' }} value="Deputi">Deputi</option>
|
||||
<option {{@$item->instansi->parent == 'Dinas' ? 'selected' : '' }} value="Dinas">Dinas</option>
|
||||
@foreach($group as $data_group)
|
||||
<option {{ @$item->ms_group_id == $data_group->MsGroupId ? 'selected' : '' }} value="{{ $data_group->alias }}">{{ $data_group->name }}</option>
|
||||
@endforeach
|
||||
@error('type')
|
||||
<span class="p-2 bg-danger text-white rounded mt-1" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
{{-- <option {{@$item->instansi->parent == 'Badan' ? 'selected' : '' }} value="Badan">Badan</option> --}}
|
||||
{{-- <option {{@$item->instansi->parent == 'Deputi' ? 'selected' : '' }} value="Deputi">Deputi</option> --}}
|
||||
{{-- <option {{@$item->instansi->parent == 'Dinas' ? 'selected' : '' }} value="Dinas">Dinas</option> --}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
|
@ -63,12 +68,12 @@
|
|||
<label class="mb-3">Instansi</label>
|
||||
<select name="ms_instansi_id" data-trigger id="ms_instansi_id" class="form-input @error('ms_instansi_id') is-invalid @enderror" required>
|
||||
<option value="">-Pilih Jenis Instansi-</option>
|
||||
@if(@$item)
|
||||
<option selected value="{{encode_id(@$item->ms_instansi_id)}}">{{@$item->instansi->name}}</option>
|
||||
@if(@$userInstansi)
|
||||
<option selected value="{{encode_id(@$userInstansi->ms_instansi_id)}}">{{@$userInstansi->instansi->name}}</option>
|
||||
@endif
|
||||
</select>
|
||||
@error('ms_instansi_id')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
<span class="p-2 bg-danger text-white rounded mt-1" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
|
|
@ -78,7 +83,7 @@
|
|||
<label class="mb-3">Password Baru</label>
|
||||
<input type="password" id="password" autocomplete="new-password" name="password" class="form-input @error('password') is-invalid @enderror" placeholder="Masukan Password Minimm 8 characters">
|
||||
@error('password')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
<span class="p-2 bg-danger text-white rounded mt-1" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
<button class="btn bg-secondary my-2 text-white" type="button" id="togglePassword"><i class="ri-eye-line"></i> Lihat Password</button>
|
||||
<p>
|
||||
|
|
@ -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
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
|
@ -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');
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue