From 09e45443a890a77df51b51b5152a60a8fd3f49ae Mon Sep 17 00:00:00 2001 From: root Date: Sat, 30 May 2026 23:22:03 +0800 Subject: [PATCH] feat(siren): show last data received timestamp in Active column Active column now uses COALESCE to show the most recent timestamp from siren, rainfall, or waterlevel data for each siren station. --- src/app/Http/Controllers/SirenController.php | 7 ++++++- src/resources/views/layout/siren/home.blade.php | 17 +++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/app/Http/Controllers/SirenController.php b/src/app/Http/Controllers/SirenController.php index b274efc4..6a1ad119 100644 --- a/src/app/Http/Controllers/SirenController.php +++ b/src/app/Http/Controllers/SirenController.php @@ -18,7 +18,12 @@ class SirenController extends Controller station.name, station.district, latest_siren.active_time, - latest_siren.level + latest_siren.level, + COALESCE( + latest_siren.active_time, + (SELECT MAX(r.timestamp) FROM rainfall r WHERE r.stationid = station.stationid), + (SELECT MAX(w.datetime) FROM waterlevel w WHERE w.stationid = station.stationid) + ) AS last_updated FROM station LEFT JOIN LATERAL ( SELECT s.active_time, s.level diff --git a/src/resources/views/layout/siren/home.blade.php b/src/resources/views/layout/siren/home.blade.php index 641eb9bd..971bb871 100644 --- a/src/resources/views/layout/siren/home.blade.php +++ b/src/resources/views/layout/siren/home.blade.php @@ -9,7 +9,7 @@ - @if ($sirenData->isNotEmpty()) +@if ($sirenData->isNotEmpty()) @@ -24,19 +24,21 @@ @foreach ($sirenData as $row) @php - + - $level = match ($row ->level) { + $level = match ($row->level) { 'N' => __('messages.Normal') , 'H' => __('messages.danger') , 'L' => __('messages.warning') , + null => __('messages.Normal') , default => '-' }; - $btnClass = match ($row ->level) { + $btnClass = match ($row->level) { 'N' => 'btn-secondary' , 'H' => 'btn-danger' , 'L' => 'btn-warning' , + null => 'btn-secondary' , default => 'btn-secondary' }; @@ -44,8 +46,8 @@ @endphp - - + + @@ -53,10 +55,9 @@ @endforeach - +
{{$row ->name}}{{$row ->active_time}}{{ $row->last_updated ? \Carbon\Carbon::parse($row->last_updated)->format('d/m/Y H:i:s') : '-' }}
- @else