diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 2f085ac..f4c90db 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -39,7 +39,6 @@ class AuthController extends Controller $request->session()->regenerate(); return redirect()->intended('/'); } - // ===================== // Login Admin // ===================== diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index 625af0b..938eb08 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -147,7 +147,7 @@ class DashboardController extends Controller $user = auth()->user(); $isAdmin = auth('admin')->check(); $pegawaiId = $user?->dataUser?->id; - + $unitIds = []; if (!$isAdmin) { if (!$pegawaiId) { @@ -226,7 +226,6 @@ class DashboardController extends Controller ->where('statusenabled', true) ->where('status_action', 'approved'); - if (!$isAdmin) { if (in_array(22, $unitIds, true)) { // akses semua unit } elseif (($user?->username === 'admin.turt')) { @@ -234,7 +233,6 @@ class DashboardController extends Controller } else { $baseQuery = $baseQuery->whereIn('id_unit_kerja', $unitIds); } - } $query = (clone $baseQuery) ->when(!empty($kategoriIds) || !empty($kategoriTypes) || !empty($kategoriHukumValues), function ($q) use ($kategoriIds, $kategoriTypes, $kategoriHukumValues) { @@ -963,22 +961,25 @@ class DashboardController extends Controller } $user = auth()->user()->dataUser; + if($user){ $mapping = MappingUnitKerjaPegawai::where('statusenabled', true) ->where('objectpegawaifk', $user->id)->where('isprimary', true) ->first(); - LogActivity::create([ - 'file_directory_id' => $id, - 'pegawai_id_entry' => $user->id, - 'pegawai_nama_entry' => $user->namalengkap, - 'entry_at' => now(), - 'action_type' => 'Download Dokumen', - 'no_dokumen' => $data->no_dokumen, - 'file' => $data->file, - 'statusenabled' => true, - 'mod_change' => null, - 'id_unit_kerja' => $mapping ? $mapping->objectunitkerjapegawaifk : null, - 'id_sub_unit_kerja' => $mapping ? $mapping->objectsubunitkerjapegawaifk : null, - ]); + LogActivity::create([ + 'file_directory_id' => $id, + 'pegawai_id_entry' => $user->id, + 'pegawai_nama_entry' => $user->namalengkap, + 'entry_at' => now(), + 'action_type' => 'Download Dokumen', + 'no_dokumen' => $data->no_dokumen, + 'file' => $data->file, + 'statusenabled' => true, + 'mod_change' => null, + 'id_unit_kerja' => $mapping ? $mapping->objectunitkerjapegawaifk : null, + 'id_sub_unit_kerja' => $mapping ? $mapping->objectsubunitkerjapegawaifk : null, + ]); + } + $tempDir = storage_path('app/temp'); if (!is_dir($tempDir)) { @@ -2711,7 +2712,20 @@ class DashboardController extends Controller { $keyword = $request->query('keyword'); $perPage = (int) $request->query('per_page', 10); - $query = FileDirectory::where('statusenabled', true) + $perPage = max(1, min(100, $perPage)); + + $query = FileDirectory::query() + ->select([ + 'file_directory_id', + 'nama_dokumen', + 'no_dokumen', + 'file', + 'entry_at', + 'id_unit_kerja', + 'is_akre', + ]) + ->with(['unit:id,name']) + ->where('statusenabled', true) ->where('status_action', 'approved') ->where('is_akre', true); @@ -2723,7 +2737,9 @@ class DashboardController extends Controller ->orWhere('file', 'ILIKE', "%{$keyword}%"); // Cari juga berdasarkan nama file di path }); }); - $data = $query->orderBy('entry_at', 'desc')->paginate($perPage); + $data = $query + ->orderBy('entry_at', 'desc') + ->paginate($perPage); return response()->json([ 'status' => true, @@ -2731,10 +2747,14 @@ class DashboardController extends Controller 'data' => $data->items(), 'pagination' => [ 'current_page' => $data->currentPage(), + 'next_page' => $data->hasMorePages() ? $data->currentPage() + 1 : null, + 'prev_page' => $data->currentPage() > 1 ? $data->currentPage() - 1 : null, 'total' => $data->total(), 'per_page' => $data->perPage(), 'last_page' => $data->lastPage(), 'has_more' => $data->hasMorePages(), + 'from' => $data->firstItem(), + 'to' => $data->lastItem(), ] ]); } diff --git a/resources/views/dataAkreditasi/index.blade.php b/resources/views/dataAkreditasi/index.blade.php index ecda413..e322e78 100644 --- a/resources/views/dataAkreditasi/index.blade.php +++ b/resources/views/dataAkreditasi/index.blade.php @@ -144,6 +144,8 @@ let expandedFolders = new Set(); let searchTimer; const btn = document.getElementById('btnDownloadMultiple'); + const tableState = { page: 1, pageSize: 10, lastPage: 1, total: 0, from: 0, to: 0, search: '' }; + const paginationEl = document.getElementById('paginationControls'); // === INITIALIZATION === document.addEventListener('DOMContentLoaded', () => { fetchData(); @@ -156,6 +158,7 @@ document.getElementById('tableSearch').addEventListener('input', (e) => { clearTimeout(searchTimer); searchTimer = setTimeout(() => { + tableState.page = 1; fetchData(e.target.value, 1); }, 500); }); @@ -163,7 +166,8 @@ // Per Page Change document.getElementById('tablePageSize').addEventListener('change', (e) => { const keyword = document.getElementById('tableSearch').value; - fetchData(keyword,1); + tableState.page = 1; + fetchData(keyword, 1); }); // Check All Rows @@ -185,7 +189,11 @@ */ function fetchData(keyword = '', page = 1) { const tbody = document.getElementById('tableDataAkreditasi'); - const perPage = document.getElementById('tablePageSize').value; + const perPage = parseInt(document.getElementById('tablePageSize').value, 10) || 10; + + tableState.search = keyword; + tableState.pageSize = perPage; + tableState.page = page; tbody.innerHTML = '