Files
hpt_inventory/app/Http/Controllers/ActivityLogsController.php
2026-06-10 16:42:20 +07:00

75 lines
1.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Spatie\Activitylog\Models\Activity;
use Yajra\DataTables\Facades\DataTables;
use App\Models\User;
class ActivityLogsController extends Controller
{
public function index()
{
$users = User::select('id','name')->get();
return view('audit-logs.index',compact('users'));
}
public function data(Request $request)
{
$query = Activity::with('causer')->orderBy('created_at','desc');
if($request->event){
$query->where('description',$request->event);
}
if($request->user_id){
$query->where('causer_id',$request->user_id);
}
if($request->date_from){
$query->whereDate('created_at','>=',$request->date_from);
}
if($request->date_to){
$query->whereDate('created_at','<=',$request->date_to);
}
return DataTables::of($query)
->addColumn('module', function ($log) {
return class_basename($log->subject_type);
})
->addColumn('user', function ($log) {
return $log->causer->name ?? 'System';
})
->editColumn('created_at', function ($log) {
return '<span title="'.$log->created_at.'">
'.$log->created_at->diffForHumans().'
</span>';
})
->addColumn('action', function ($log) {
return '<button class="btn btn-sm btn-inverse-info rounded-25 view-log"
data-description="'.$log->description.'"
data-user="'.($log->causer->name ?? 'System').'"
data-time="'.$log->created_at.'"
data-module="'.class_basename($log->subject_type).'"
data-log=\''.json_encode($log->properties).'\'>
<span class="fa fa-file-text-o"></span>
</button>';
})
->rawColumns(['created_at','action'])
->make(true);
}
}