diff --git a/app/Http/Controllers/AuditLogsController.php b/app/Http/Controllers/AuditLogsController.php index 176dfd1..648a321 100644 --- a/app/Http/Controllers/AuditLogsController.php +++ b/app/Http/Controllers/AuditLogsController.php @@ -36,7 +36,105 @@ return view('logs::audit'); } + + public function indexAdminKredit() + { + // Check if the authenticated user has the required permission to view audit logs + if (is_null($this->user) || !$this->user->can('audit-logs.read')) { + abort(403, 'Sorry! You are not allowed to view audit logs.'); + } + return view('logs::adminkredit'); + } + + public function datatableAdminKredit(Request $request) + { + // Check if the authenticated user has the required permission to view audit logs + if (is_null($this->user) || !$this->user->can('audit-logs.read')) { + abort(403, 'Sorry! You are not allowed to view audit logs.'); + } + + // Retrieve data from the database + $query = Activity::query() + ->where('log_name','ADK') + ->where('subject_type', 'LIKE', '%Dokumen%'); + + // Apply search filter if provided + if ($request->has('search') && !empty($request->get('search'))) { + $search = $request->get('search'); + $query->where(function ($q) use ($search) { + $q->where('log_name', 'LIKE', "%$search%") + ->orWhere('description', 'LIKE', "%$search%") + ->orWhere('subject_id', 'LIKE', "%$search%") + ->orWhere('subject_type', 'LIKE', "%$search%") + ->orWhere('causer_id', 'LIKE', "%$search%") + ->orWhere('properties', 'LIKE', "%$search%"); + }); + } + + // Apply sorting if provided + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } else { + // Default sorting by created_at descending + $query->orderBy('created_at', 'desc'); + } + + // Get the total count of records before pagination + $totalRecords = Activity::count(); + + // Get the filtered count before pagination + $filteredRecords = $query->count(); + + // Apply pagination if provided + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page'); + $size = $request->get('size'); + $offset = ($page - 1) * $size; // Calculate the offset + + $query->skip($offset)->take($size); + } + + // Get the data for the current page + $data = $query->get(); + + // Map causer_id to creator name + $data = $data->map(function ($item) { + // Create a new property for the creator's name + if ($item->causer_id && $item->causer_type === 'Modules\\Usermanagement\\Models\\User') { + // Try to find the user + $user = User::find($item->causer_id); + if ($user) { + $item->creator_name = $user->name; + } else { + $item->creator_name = 'Unknown User'; + } + } else { + $item->creator_name = 'System'; + } + + return $item; + }); + + // Calculate the page count + $pageCount = ceil($filteredRecords / ($request->get('size') ?: 1)); + + // Calculate the current page number + $currentPage = $request->get('page') ?: 1; + + // Return the response data as a JSON object + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $filteredRecords, + 'data' => $data, + ]); + } public function datatable(Request $request) { // Check if the authenticated user has the required permission to view audit logs diff --git a/module.json b/module.json index a8981e9..c968fbc 100644 --- a/module.json +++ b/module.json @@ -43,6 +43,18 @@ "roles": [ "administrator" ] + }, + + { + "title": "Dokumen ADK Logs", + "path": "logs.dokumen", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "adminkredit" + ] } ] } diff --git a/resources/views/adminkredit.blade.php b/resources/views/adminkredit.blade.php new file mode 100644 index 0000000..afa5f41 --- /dev/null +++ b/resources/views/adminkredit.blade.php @@ -0,0 +1,351 @@ +@extends('layouts.main') + +@section('breadcrumbs') +{{ Breadcrumbs::render('logs.audit') }} +@endsection + +@section('content') +
| + Log Type + + | ++ Subject Type + + | ++ Tipe Dokumen + + | + {{--+ Properties + + | --}} ++ Perubahan + + | ++ User Role + + | ++ Username + + | ++ Date/Time + + | +
|---|