Skip to content

Commit 218331c

Browse files
authored
Chore/refactored results table (alexjustesen#2484)
Co-authored-by: Alex Justesen <[email protected]>
1 parent 30f04df commit 218331c

File tree

2 files changed

+40
-63
lines changed

2 files changed

+40
-63
lines changed

app/Filament/Resources/Results/Tables/ResultTable.php

Lines changed: 39 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Filament\Forms\Components\DatePicker;
1717
use Filament\Forms\Components\Textarea;
1818
use Filament\Support\Enums\Alignment;
19+
use Filament\Support\Icons\Heroicon;
1920
use Filament\Tables\Columns\IconColumn;
2021
use Filament\Tables\Columns\TextColumn;
2122
use Filament\Tables\Filters\Filter;
@@ -35,57 +36,66 @@ public static function table(Table $table): Table
3536
->label(__('general.id'))
3637
->toggleable(isToggledHiddenByDefault: false)
3738
->sortable(),
39+
40+
TextColumn::make('status')
41+
->label(__('general.status'))
42+
->badge()
43+
->toggleable(isToggledHiddenByDefault: false),
44+
3845
TextColumn::make('data.interface.externalIp')
3946
->label(__('results.ip_address'))
4047
->toggleable(isToggledHiddenByDefault: true)
4148
->sortable(query: function (Builder $query, string $direction): Builder {
4249
return $query->orderBy('data->interface->externalIp', $direction);
4350
}),
51+
4452
TextColumn::make('service')
4553
->label(__('results.service'))
4654
->toggleable(isToggledHiddenByDefault: true)
4755
->sortable(),
56+
4857
TextColumn::make('data.server.id')
4958
->label(__('results.server_id'))
5059
->toggleable(isToggledHiddenByDefault: false)
5160
->sortable(query: function (Builder $query, string $direction): Builder {
5261
return $query->orderBy('data->server->id', $direction);
5362
}),
54-
TextColumn::make('data.isp')
55-
->label(__('results.isp'))
56-
->toggleable(isToggledHiddenByDefault: true)
57-
->sortable(query: function (Builder $query, string $direction): Builder {
58-
return $query->orderBy('data->isp', $direction);
59-
}),
60-
TextColumn::make('data.server.location')
61-
->label(__('results.server_location'))
62-
->toggleable(isToggledHiddenByDefault: true)
63-
->sortable(query: function (Builder $query, string $direction): Builder {
64-
return $query->orderBy('data->server->location', $direction);
65-
}),
63+
6664
TextColumn::make('data.server.name')
6765
->label(__('results.server_name'))
6866
->toggleable(isToggledHiddenByDefault: false)
6967
->sortable(query: function (Builder $query, string $direction): Builder {
7068
return $query->orderBy('data->server->name', $direction);
7169
}),
70+
7271
TextColumn::make('download')
7372
->label(__('results.download'))
7473
->getStateUsing(fn (Result $record): ?string => ! blank($record->download) ? Number::toBitRate(bits: $record->download_bits, precision: 2) : null)
7574
->toggleable(isToggledHiddenByDefault: false)
7675
->sortable(),
76+
7777
TextColumn::make('upload')
7878
->label(__('results.upload'))
7979
->getStateUsing(fn (Result $record): ?string => ! blank($record->upload) ? Number::toBitRate(bits: $record->upload_bits, precision: 2) : null)
8080
->toggleable(isToggledHiddenByDefault: false)
8181
->sortable(),
82+
8283
TextColumn::make('ping')
8384
->label(__('results.ping'))
8485
->toggleable(isToggledHiddenByDefault: false)
8586
->sortable()
8687
->formatStateUsing(function ($state) {
8788
return number_format((float) $state, 0, '.', '').' ms';
8889
}),
90+
91+
TextColumn::make('data.packetLoss')
92+
->label(__('results.packet_loss'))
93+
->toggleable(isToggledHiddenByDefault: false)
94+
->sortable()
95+
->formatStateUsing(function ($state) {
96+
return number_format((float) $state, 2, '.', '').' %';
97+
}),
98+
8999
TextColumn::make('data.download.latency.jitter')
90100
->label(__('results.download_latency_jitter'))
91101
->toggleable(isToggledHiddenByDefault: true)
@@ -95,6 +105,7 @@ public static function table(Table $table): Table
95105
->formatStateUsing(function ($state) {
96106
return number_format((float) $state, 0, '.', '').' ms';
97107
}),
108+
98109
TextColumn::make('data.download.latency.high')
99110
->label(__('results.download_latency_high'))
100111
->toggleable(isToggledHiddenByDefault: true)
@@ -104,6 +115,7 @@ public static function table(Table $table): Table
104115
->formatStateUsing(function ($state) {
105116
return number_format((float) $state, 0, '.', '').' ms';
106117
}),
118+
107119
TextColumn::make('data.download.latency.low')
108120
->label(__('results.download_latency_low'))
109121
->toggleable(isToggledHiddenByDefault: true)
@@ -113,15 +125,7 @@ public static function table(Table $table): Table
113125
->formatStateUsing(function ($state) {
114126
return number_format((float) $state, 0, '.', '').' ms';
115127
}),
116-
TextColumn::make('data.download.latency.iqm')
117-
->label(__('results.download_latency_iqm'))
118-
->toggleable(isToggledHiddenByDefault: true)
119-
->sortable(query: function (Builder $query, string $direction): Builder {
120-
return $query->orderBy('data->download->latency->iqm', $direction);
121-
})
122-
->formatStateUsing(function ($state) {
123-
return number_format((float) $state, 0, '.', '').' ms';
124-
}),
128+
125129
TextColumn::make('data.upload.latency.jitter')
126130
->label(__('results.upload_latency_jitter'))
127131
->toggleable(isToggledHiddenByDefault: true)
@@ -131,6 +135,7 @@ public static function table(Table $table): Table
131135
->formatStateUsing(function ($state) {
132136
return number_format((float) $state, 0, '.', '').' ms';
133137
}),
138+
134139
TextColumn::make('data.upload.latency.high')
135140
->label(__('results.upload_latency_high'))
136141
->toggleable(isToggledHiddenByDefault: true)
@@ -140,6 +145,7 @@ public static function table(Table $table): Table
140145
->formatStateUsing(function ($state) {
141146
return number_format((float) $state, 0, '.', '').' ms';
142147
}),
148+
143149
TextColumn::make('data.upload.latency.low')
144150
->label(__('results.upload_latency_low'))
145151
->toggleable(isToggledHiddenByDefault: true)
@@ -149,58 +155,29 @@ public static function table(Table $table): Table
149155
->formatStateUsing(function ($state) {
150156
return number_format((float) $state, 0, '.', '').' ms';
151157
}),
152-
TextColumn::make('data.upload.latency.iqm')
153-
->label(__('results.upload_latency_iqm'))
154-
->toggleable(isToggledHiddenByDefault: true)
155-
->sortable(query: function (Builder $query, string $direction): Builder {
156-
return $query->orderBy('data->upload->latency->iqm', $direction);
157-
})
158-
->formatStateUsing(function ($state) {
159-
return number_format((float) $state, 0, '.', '').' ms';
160-
}),
161-
TextColumn::make('data.packetLoss')
162-
->label(__('results.packet_loss'))
163-
->toggleable(isToggledHiddenByDefault: true)
164-
->sortable()
165-
->formatStateUsing(function ($state) {
166-
return number_format((float) $state, 2, '.', '').' %';
167-
}),
168-
TextColumn::make('status')
169-
->label(__('general.status'))
170-
->badge()
158+
159+
IconColumn::make('healthy')
160+
->label(__('general.healthy'))
161+
->boolean()
162+
->trueIcon(Heroicon::OutlinedCheckCircle)
163+
->falseIcon(Heroicon::OutlinedExclamationCircle)
164+
->trueColor('success')
165+
->falseColor('warning')
171166
->toggleable(isToggledHiddenByDefault: false)
172-
->sortable(),
167+
->alignment(Alignment::Center),
168+
173169
IconColumn::make('scheduled')
174170
->label(__('results.scheduled'))
175171
->boolean()
176172
->toggleable(isToggledHiddenByDefault: true)
177173
->alignment(Alignment::Center),
178-
IconColumn::make('healthy')
179-
->label(__('general.healthy'))
180-
->boolean()
181-
->toggleable(isToggledHiddenByDefault: true)
182-
->sortable()
183-
->alignment(Alignment::Center),
184-
TextColumn::make('data.message')
185-
->label(__('results.error_message_title'))
186-
->limit(15)
187-
->tooltip(fn ($state) => $state)
188-
->toggleable(isToggledHiddenByDefault: true)
189-
->sortable(),
174+
190175
TextColumn::make('created_at')
191176
->label(__('general.created_at'))
192177
->dateTime(config('app.datetime_format'))
193178
->timezone(config('app.display_timezone'))
194-
->toggleable(isToggledHiddenByDefault: false)
195-
->sortable()
196-
->alignment(Alignment::End),
197-
TextColumn::make('updated_at')
198-
->label(__('general.updated_at'))
199-
->dateTime(config('app.datetime_format'))
200-
->timezone(config('app.display_timezone'))
201179
->toggleable(isToggledHiddenByDefault: true)
202-
->sortable()
203-
->alignment(Alignment::End),
180+
->sortable(),
204181
])
205182
->deferFilters(false)
206183
->deferColumnManager(false)

config/app.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@
149149
|
150150
*/
151151

152-
'datetime_format' => env('DATETIME_FORMAT', 'M. jS, Y g:ia'),
152+
'datetime_format' => env('DATETIME_FORMAT', 'M. j, Y g:ia'),
153153

154154
'display_timezone' => env('DISPLAY_TIMEZONE', 'UTC'),
155155

0 commit comments

Comments
 (0)