52 lines
1.3 KiB
PHP
52 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Staff;
|
|
|
|
use App\Http\Controllers\HashedStudyControllerBase;
|
|
use App\Services\AuditTrail\Activity;
|
|
use App\Services\AuditTrail\Category;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Str;
|
|
|
|
class AuditLogController extends HashedStudyControllerBase
|
|
{
|
|
public function popup()
|
|
{
|
|
$study = $this->getStudy();
|
|
$sql = <<<'SQL'
|
|
SELECT
|
|
aud.user_id,
|
|
usr.display_name AS user_name,
|
|
aud.category,
|
|
aud.activity,
|
|
aud.ip_addr,
|
|
aud.user_agent,
|
|
aud.orthanc_uuid,
|
|
aud.url,
|
|
aud.notes,
|
|
aud.created_at
|
|
FROM
|
|
audit_logs AS aud
|
|
INNER JOIN users AS usr ON aud.user_id = usr."id"
|
|
WHERE
|
|
aud.study_id = :id
|
|
ORDER BY
|
|
aud."id" DESC
|
|
SQL;
|
|
// $logs = DB::select($sql, ['id' => $study->id]);
|
|
$logs = DB::table('audit_logs')
|
|
->leftjoin('users', 'users.id', '=', 'audit_logs.user_id')
|
|
->selectRaw('users.display_name as user_name, audit_logs.*')
|
|
->orderBy('audit_logs.id')
|
|
->where('audit_logs.study_id', $study->id)
|
|
->get();
|
|
|
|
$logs->each(function ($log) {
|
|
$log->category_name = Category::from($log->category)->name;
|
|
$log->activity_name = Str::slug(Activity::from($log->activity)->name);
|
|
});
|
|
|
|
return view('staff.audit.popup', compact('study', 'logs'));
|
|
}
|
|
}
|