From da35703f75c40ab73b4a1ad3597a7f31fbceb1cc Mon Sep 17 00:00:00 2001 From: MartinOscar <40749467+rmartinoscar@users.noreply.github.com> Date: Thu, 8 May 2025 20:42:14 +0200 Subject: [PATCH] Hide `ChartWidgets` when `Server` isInConflictState or Offline (#1348) --- app/Filament/Server/Widgets/ServerCpuChart.php | 9 +++++++++ app/Filament/Server/Widgets/ServerMemoryChart.php | 9 +++++++++ app/Filament/Server/Widgets/ServerNetworkChart.php | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/app/Filament/Server/Widgets/ServerCpuChart.php b/app/Filament/Server/Widgets/ServerCpuChart.php index 2d6a52058..a9fd434f7 100644 --- a/app/Filament/Server/Widgets/ServerCpuChart.php +++ b/app/Filament/Server/Widgets/ServerCpuChart.php @@ -4,6 +4,7 @@ namespace App\Filament\Server\Widgets; use App\Models\Server; use Carbon\Carbon; +use Filament\Facades\Filament; use Filament\Support\RawJs; use Filament\Widgets\ChartWidget; use Illuminate\Support\Number; @@ -16,6 +17,14 @@ class ServerCpuChart extends ChartWidget public ?Server $server = null; + public static function canView(): bool + { + /** @var Server $server */ + $server = Filament::getTenant(); + + return !$server->isInConflictState() && !$server->retrieveStatus()->isOffline(); + } + protected function getData(): array { $period = auth()->user()->getCustomization()['console_graph_period'] ?? 30; diff --git a/app/Filament/Server/Widgets/ServerMemoryChart.php b/app/Filament/Server/Widgets/ServerMemoryChart.php index 858029c5b..704e61581 100644 --- a/app/Filament/Server/Widgets/ServerMemoryChart.php +++ b/app/Filament/Server/Widgets/ServerMemoryChart.php @@ -4,6 +4,7 @@ namespace App\Filament\Server\Widgets; use App\Models\Server; use Carbon\Carbon; +use Filament\Facades\Filament; use Filament\Support\RawJs; use Filament\Widgets\ChartWidget; use Illuminate\Support\Number; @@ -16,6 +17,14 @@ class ServerMemoryChart extends ChartWidget public ?Server $server = null; + public static function canView(): bool + { + /** @var Server $server */ + $server = Filament::getTenant(); + + return !$server->isInConflictState() && !$server->retrieveStatus()->isOffline(); + } + protected function getData(): array { $period = auth()->user()->getCustomization()['console_graph_period'] ?? 30; diff --git a/app/Filament/Server/Widgets/ServerNetworkChart.php b/app/Filament/Server/Widgets/ServerNetworkChart.php index 55abf1cb1..79c9a2d15 100644 --- a/app/Filament/Server/Widgets/ServerNetworkChart.php +++ b/app/Filament/Server/Widgets/ServerNetworkChart.php @@ -4,6 +4,7 @@ namespace App\Filament\Server\Widgets; use App\Models\Server; use Carbon\Carbon; +use Filament\Facades\Filament; use Filament\Support\RawJs; use Filament\Widgets\ChartWidget; @@ -15,6 +16,14 @@ class ServerNetworkChart extends ChartWidget public ?Server $server = null; + public static function canView(): bool + { + /** @var Server $server */ + $server = Filament::getTenant(); + + return !$server->isInConflictState() && !$server->retrieveStatus()->isOffline(); + } + protected function getData(): array { $previous = null;