From bf1e3ff8c7202c3630760e4ee69d249ec25c511f Mon Sep 17 00:00:00 2001 From: Dr Masroor Ehsan Date: Tue, 21 Jan 2025 14:44:55 +0600 Subject: [PATCH] FIX #13 - UA table --- .../Controllers/Staff/AuditLogController.php | 32 ++++++------------- app/Services/BrowserService.php | 1 + resources/views/staff/audit/popup.blade.php | 17 +++++++--- 3 files changed, 22 insertions(+), 28 deletions(-) diff --git a/app/Http/Controllers/Staff/AuditLogController.php b/app/Http/Controllers/Staff/AuditLogController.php index 0fb8428..e960241 100644 --- a/app/Http/Controllers/Staff/AuditLogController.php +++ b/app/Http/Controllers/Staff/AuditLogController.php @@ -13,37 +13,23 @@ 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.*') + ->leftjoin('user_agents', 'user_agents.id', '=', 'audit_logs.user_agent_id') + ->selectRaw('users.display_name as user_name, audit_logs.created_at as log_time, audit_logs.*, user_agents.*') ->orderByDesc('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); + $log->activity_name = Str::of(Activity::from($log->activity)->name)->slug('-')->replace('-', ' ')->title(); + if (filled($log->user_agent)) { + $log->browser = "Browser: {$log->browser_name}\nDevice: {$log->device_type}\nPlatform: {$log->platform}"; + } else { + $log->browser = null; + } }); return view('staff.audit.popup', compact('study', 'logs')); diff --git a/app/Services/BrowserService.php b/app/Services/BrowserService.php index e178751..8c04870 100644 --- a/app/Services/BrowserService.php +++ b/app/Services/BrowserService.php @@ -41,6 +41,7 @@ public static function upsertBrowser(?string $ua = null): int 'browser_version' => $browser->browserVersion(), 'platform' => $browser->platformFamily(), 'platform_version' => $browser->platformVersion(), + 'created_at' => now(), ]; DB::table('user_agents')->insert($params); diff --git a/resources/views/staff/audit/popup.blade.php b/resources/views/staff/audit/popup.blade.php index 149176d..2ee07fa 100644 --- a/resources/views/staff/audit/popup.blade.php +++ b/resources/views/staff/audit/popup.blade.php @@ -1,14 +1,21 @@ - + +
@foreach ($logs as $log) - + - - + +
{{ $log->created_at }}{{ $log->log_time }} {{ $log->user_name }}{{ $log->category_name }} {{ $log->activity_name }}{{ $log->ip_addr }} {{ $log->notes }} - @include('_partials._img-tooltip', ['src' => asset('imgs/browser_64.png'), 'tip' => $log->user_agent, 'class' => 'msg-icon']) + @isset($log->ip_addr) + {{ $log->ip_addr }} + @endisset + {{ $log->category_name }} + @isset($log->browser) + @include('_partials._img-tooltip', ['src' => asset('imgs/browser_64.png'), 'tip' => $log->browser, 'class' => 'msg-icon']) + @endisset @isset($log->url)