From c80fa8ff401da4d69c66b7e059d5836ac5efa1d3 Mon Sep 17 00:00:00 2001 From: Alex Justesen Date: Sat, 8 Jun 2024 15:34:46 -0400 Subject: [PATCH 1/3] [Bug] Use table columns not attributes on results table (#1500) --- app/Filament/Resources/ResultResource.php | 33 ++++++++++++++--------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/app/Filament/Resources/ResultResource.php b/app/Filament/Resources/ResultResource.php index e50d95488..0b8cae2e8 100644 --- a/app/Filament/Resources/ResultResource.php +++ b/app/Filament/Resources/ResultResource.php @@ -121,7 +121,7 @@ public static function table(Table $table): Table Tables\Columns\TextColumn::make('id') ->label('ID') ->sortable(), - Tables\Columns\TextColumn::make('ip_address') + Tables\Columns\TextColumn::make('data.interface.externalIp') ->label('IP address') ->toggleable() ->toggledHiddenByDefault() @@ -132,13 +132,13 @@ public static function table(Table $table): Table ->toggleable() ->toggledHiddenByDefault() ->sortable(), - Tables\Columns\TextColumn::make('server_id') + Tables\Columns\TextColumn::make('data.server.id') ->label('Server ID') ->toggleable() ->sortable(query: function (Builder $query, string $direction): Builder { return $query->orderBy('data->server->id', $direction); }), - Tables\Columns\TextColumn::make('server_name') + Tables\Columns\TextColumn::make('data.server.name') ->toggleable() ->sortable(query: function (Builder $query, string $direction): Builder { return $query->orderBy('data->server->name', $direction); @@ -152,55 +152,64 @@ public static function table(Table $table): Table Tables\Columns\TextColumn::make('ping') ->toggleable() ->sortable(), - Tables\Columns\TextColumn::make('download_jitter') + Tables\Columns\TextColumn::make('data.download.latency.jitter') + ->label('Download jitter') ->toggleable() ->toggledHiddenByDefault() ->sortable(query: function (Builder $query, string $direction): Builder { return $query->orderBy('data->download->latency->jitter', $direction); }), - Tables\Columns\TextColumn::make('download_latency_high') + Tables\Columns\TextColumn::make('data.download.latency.high') + ->label('Download latency high') ->toggleable() ->toggledHiddenByDefault() ->sortable(query: function (Builder $query, string $direction): Builder { return $query->orderBy('data->download->latency->high', $direction); }), - Tables\Columns\TextColumn::make('download_latency_low') + Tables\Columns\TextColumn::make('data.download.latency.low') + ->label('Download latency low') ->toggleable() ->toggledHiddenByDefault() ->sortable(query: function (Builder $query, string $direction): Builder { return $query->orderBy('data->download->latency->low', $direction); }), - Tables\Columns\TextColumn::make('download_latency_iqm') + Tables\Columns\TextColumn::make('data.download.latency.iqm') + ->label('Download latency iqm') ->toggleable() ->toggledHiddenByDefault() ->sortable(query: function (Builder $query, string $direction): Builder { return $query->orderBy('data->download->latency->iqm', $direction); }), - Tables\Columns\TextColumn::make('upload_jitter') + Tables\Columns\TextColumn::make('data.upload.latency.jitter') + ->label('Upload jitter') ->toggleable() ->toggledHiddenByDefault() ->sortable(query: function (Builder $query, string $direction): Builder { return $query->orderBy('data->upload->latency->jitter', $direction); }), - Tables\Columns\TextColumn::make('upload_latency_high') + Tables\Columns\TextColumn::make('data.upload.latency.high') + ->label('Upload latency high') ->toggleable() ->toggledHiddenByDefault() ->sortable(query: function (Builder $query, string $direction): Builder { return $query->orderBy('data->upload->latency->high', $direction); }), - Tables\Columns\TextColumn::make('upload_latency_low') + Tables\Columns\TextColumn::make('data.upload.latency.low') + ->label('Upload latency low') ->toggleable() ->toggledHiddenByDefault() ->sortable(query: function (Builder $query, string $direction): Builder { return $query->orderBy('data->upload->latency->low', $direction); }), - Tables\Columns\TextColumn::make('upload_latency_iqm') + Tables\Columns\TextColumn::make('data.upload.latency.iqm') + ->label('Upload latency iqm') ->toggleable() ->toggledHiddenByDefault() ->sortable(query: function (Builder $query, string $direction): Builder { return $query->orderBy('data->upload->latency->iqm', $direction); }), - Tables\Columns\TextColumn::make('ping_jitter') + Tables\Columns\TextColumn::make('data.ping.jitter') + ->label('Ping jitter') ->toggleable() ->toggledHiddenByDefault() ->sortable(query: function (Builder $query, string $direction): Builder { From a92e2a22f33bd901a448f297ff328ca58e141e10 Mon Sep 17 00:00:00 2001 From: Alex Justesen Date: Sun, 9 Jun 2024 10:54:02 -0400 Subject: [PATCH 2/3] [Feature] Made checking for internet connection optional (#1507) --- app/Jobs/Speedtests/ExecuteOoklaSpeedtest.php | 51 +++++++++++-------- config/speedtest.php | 2 +- 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/app/Jobs/Speedtests/ExecuteOoklaSpeedtest.php b/app/Jobs/Speedtests/ExecuteOoklaSpeedtest.php index 2f7d056c5..6aed3e31b 100644 --- a/app/Jobs/Speedtests/ExecuteOoklaSpeedtest.php +++ b/app/Jobs/Speedtests/ExecuteOoklaSpeedtest.php @@ -42,26 +42,7 @@ public function __construct( */ public function handle(): void { - /** - * Check for an internet connection first. - */ - $ping = new Ping( - host: config('speedtest.ping_url'), - timeout: 3, - ); - - if ($ping->ping() === false) { - $this->result->update([ - 'data' => [ - 'type' => 'log', - 'level' => 'error', - 'message' => 'Could not resolve host.', - ], - 'status' => ResultStatus::Failed, - ]); - - SpeedtestFailed::dispatch($this->result); - + if (! $this->checkForInternetConnection()) { return; } @@ -104,4 +85,34 @@ public function handle(): void SpeedtestCompleted::dispatch($this->result); } + + protected function checkForInternetConnection(): bool + { + // Skip checking for internet connection if ping url isn't set (disabled) + if (blank(config('speedtest.ping_url'))) { + return true; + } + + $ping = new Ping( + host: config('speedtest.ping_url'), + timeout: 3, + ); + + if ($ping->ping() === false) { + $this->result->update([ + 'data' => [ + 'type' => 'log', + 'level' => 'error', + 'message' => 'Could not resolve host.', + ], + 'status' => ResultStatus::Failed, + ]); + + SpeedtestFailed::dispatch($this->result); + + return false; + } + + return true; + } } diff --git a/config/speedtest.php b/config/speedtest.php index 15398c7fc..0fc2abc86 100644 --- a/config/speedtest.php +++ b/config/speedtest.php @@ -29,7 +29,7 @@ /** * Speedtest settings. */ - 'ping_url' => env('SPEEDTEST_PING_URL', '1.1.1.1'), + 'ping_url' => env('SPEEDTEST_PING_URL'), 'schedule' => env('SPEEDTEST_SCHEDULE'), From 6de6f891b02841c69fe3cffac26cc082c3c98174 Mon Sep 17 00:00:00 2001 From: Alex Justesen Date: Sun, 9 Jun 2024 10:56:28 -0400 Subject: [PATCH 3/3] Release v0.20.4 (#1508) --- config/speedtest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/speedtest.php b/config/speedtest.php index 0fc2abc86..4b62be480 100644 --- a/config/speedtest.php +++ b/config/speedtest.php @@ -4,9 +4,9 @@ return [ - 'build_date' => Carbon::parse('2024-06-07'), + 'build_date' => Carbon::parse('2024-06-09'), - 'build_version' => 'v0.20.3', + 'build_version' => 'v0.20.4', /** * General settings.