diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index 22364de..041aa34 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -22,12 +22,15 @@ class DashboardController extends Controller $authMapping = auth()->user()?->dataUser?->mappingUnitKerjaPegawai[0]; $authUnitKerja = $authMapping->objectunitkerjapegawaifk; $authSubUnitKerja = $authMapping->objectsubunitkerjapegawaifk; + + $allAkses = AksesFile::where(['statusenabled' => true, 'pegawai_id' => auth()->user()?->dataUser->id])->first(); $payload = [ 'title' => 'Dashboard', 'katDok' => $katDok, 'klasifikasiDok' => $klasifikasiDok, 'authUnitKerja' => $authUnitKerja, 'authSubUnitKerja' => $authSubUnitKerja, + 'allAkses' => $allAkses ?? null ]; return view('dashboard.index', $payload); } @@ -78,6 +81,7 @@ class DashboardController extends Controller DB::connection('dbDirectory')->beginTransaction(); try { $datas = request()->input('data'); + $result = []; foreach($datas as $index => $value){ $file = request()->file("data.$index.file"); $payload = [ @@ -93,12 +97,13 @@ class DashboardController extends Controller Storage::disk('file_directory')->put($imageName, file_get_contents($file)); $payload['file'] =$imageName; } - FileDirectory::create($payload); + $saved = FileDirectory::create($payload); } DB::connection('dbDirectory')->commit(); return response()->json([ 'status' => true, 'message' => 'Data berhasil disimpan', + 'data' => count($result) == 1 ? $result[0] : $result ], 200); } catch (\Throwable $th) { DB::connection('dbDirectory')->rollBack(); diff --git a/public/file/ChatGPT Image Sep 3, 2025, 10_03_15 AM.png b/public/file/ChatGPT Image Sep 3, 2025, 10_03_15 AM.png new file mode 100644 index 0000000..b493792 Binary files /dev/null and b/public/file/ChatGPT Image Sep 3, 2025, 10_03_15 AM.png differ diff --git a/public/file/Draft-Point-Reward-IfbboKsH2-2I9w.pdf b/public/file/Draft-Point-Reward-IfbboKsH2-2I9w.pdf new file mode 100644 index 0000000..22eb153 Binary files /dev/null and b/public/file/Draft-Point-Reward-IfbboKsH2-2I9w.pdf differ diff --git a/public/file/WhatsApp Image 2025-08-19 at 15.44.52_fa672dde.jpg b/public/file/WhatsApp Image 2025-08-19 at 15.44.52_fa672dde.jpg new file mode 100644 index 0000000..ad71654 Binary files /dev/null and b/public/file/WhatsApp Image 2025-08-19 at 15.44.52_fa672dde.jpg differ diff --git a/public/js/dashboard/action.js b/public/js/dashboard/action.js index 4058b80..405e74c 100644 --- a/public/js/dashboard/action.js +++ b/public/js/dashboard/action.js @@ -23,14 +23,17 @@ formCreate.on('submit', function(e){ background: "linear-gradient(to right, #00b09b, #96c93d)", // hijau gradasi color: "#fff", } - }).showToast(); $("#col_add_file").html(''); colCount = 1; // reset counter formCreate.find('input[type="text"], input[type="file"]').val(''); formCreate.find('select').val(null).trigger('change'); - index() + if(!$("#klasifikasi_dok").val() || !$("#kategori_dok").val() || !$("#unit_kerja").val() || !$("#sub_unit_kerja").val()){ + index() + }else{ + searchData() + } modalCreate.removeEventListener('hidden.bs.modal', handler); }; modalCreate.addEventListener('hidden.bs.modal', handler); diff --git a/public/js/dashboard/functions.js b/public/js/dashboard/functions.js index d441c73..74c34f2 100644 --- a/public/js/dashboard/functions.js +++ b/public/js/dashboard/functions.js @@ -46,8 +46,11 @@ $(document).ready(function() { $('.klasifikasi_dok').select2(); $('.kategori_dok').select2(); - - selectOptionUnitKerja(0) + if(allAkses){ + selectOptionUnitKerjaV1(0) + }else{ + selectOptionUnitKerjaV2(0) + } }); function addForm(){ @@ -97,7 +100,11 @@ function addForm(){ ` col.append(html) - selectOptionUnitKerja(colCount) + if(allAkses){ + selectOptionUnitKerjaV1(colCount) + }else{ + selectOptionUnitKerjaV2(colCount) + } colCount++; } @@ -108,7 +115,7 @@ function removeCol(count){ } -function selectOptionUnitKerja(colCount) { +function selectOptionUnitKerjaV1(colCount) { let selectUnit = $(`#select_id_unit_kerja_${colCount}`); let selectSubUnit = $(`#select_id_sub_unit_kerja_${colCount}`); @@ -161,3 +168,57 @@ function selectOptionUnitKerja(colCount) { }); } + + +function selectOptionUnitKerjaV2(colCount) { + let selectUnit = $(`#select_id_unit_kerja_${colCount}`); + let selectSubUnit = $(`#select_id_sub_unit_kerja_${colCount}`); + + // Kosongkan dulu + selectUnit.empty().append(''); + selectSubUnit.empty().append(''); + + // Load semua unit kerja tanpa ajax + $.ajax({ + url: '/select-unit-kerja', // endpoint tetap sama + method: 'GET', + success: function(response) { + if (response?.data) { + response.data.forEach(unit => { + const option = new Option(unit.name, unit.id, false, false); + $(option).data('sub_units', unit.sub_unit_kerja); // simpan sub unit di data attribute + selectUnit.append(option); + }); + } + } + }); + + // Inisialisasi select2 tanpa ajax + selectUnit.select2({ + placeholder: '-- Pilih Unit Kerja --', + allowClear: true, + width: '100%', + dropdownParent: selectUnit.parent() + }); + + selectSubUnit.select2({ + placeholder: '-- Pilih Sub Unit Kerja --', + allowClear: true, + width: '100%', + dropdownParent: selectSubUnit.parent() + }); + + // Event ketika unit kerja dipilih + selectUnit.on('change', function () { + const selectedOption = $(this).find(':selected'); + const subUnits = selectedOption.data('sub_units') || []; + + selectSubUnit.empty().append(''); + + if (subUnits.length > 0) { + subUnits.forEach(sub => { + selectSubUnit.append(``); + }); + } + }); +} diff --git a/public/js/dashboard/index.js b/public/js/dashboard/index.js index 0432aa1..b8d4a86 100644 --- a/public/js/dashboard/index.js +++ b/public/js/dashboard/index.js @@ -49,7 +49,6 @@ function renderTree(units, katDok) { `).join('')} `; - } function index(kategori_dok = null, unitKerja = null, subUnitKerja = null, klasifikasi_id = null) { diff --git a/resources/views/dashboard/index.blade.php b/resources/views/dashboard/index.blade.php index c2e83a2..a1241a3 100644 --- a/resources/views/dashboard/index.blade.php +++ b/resources/views/dashboard/index.blade.php @@ -143,6 +143,8 @@