Skip to content

Commit fca913a

Browse files
authored
[Chore] Deprecate general settings public dashboard (alexjustesen#1333)
1 parent 4f84a6a commit fca913a

File tree

6 files changed

+38
-9
lines changed

6 files changed

+38
-9
lines changed

app/Console/Commands/UpdateGeneralSettings.php

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Illuminate\Console\Command;
99

1010
use function Laravel\Prompts\confirm;
11+
use function Laravel\Prompts\select;
1112
use function Laravel\Prompts\text;
1213

1314
class UpdateGeneralSettings extends Command
@@ -34,6 +35,7 @@ public function handle()
3435
$settings = new GeneralSettings();
3536

3637
$this->updateSiteName($settings);
38+
$this->updatePublicDashboard($settings);
3739
$this->updateTimeZone($settings);
3840
$this->updateSchedule($settings);
3941
$this->resetSevers($settings);
@@ -57,12 +59,32 @@ protected function resetSevers($settings): void
5759
}
5860
}
5961

62+
protected function updatePublicDashboard($settings): void
63+
{
64+
$publicDashboard = select(
65+
label: 'Make the dashboard public?',
66+
options: ['Yes', 'No'],
67+
default: 'Yes',
68+
required: true,
69+
);
70+
71+
if ($publicDashboard == 'Yes') {
72+
$settings->public_dashboard_enabled = true;
73+
74+
$settings->save();
75+
} else {
76+
$settings->public_dashboard_enabled = false;
77+
}
78+
79+
$settings->save();
80+
}
81+
6082
protected function updateSchedule($settings): void
6183
{
6284
$cron = text(
6385
label: 'What is the schedule?',
6486
placeholder: '0 * * * *',
65-
default: $settings->speedtest_schedule,
87+
default: $settings->speedtest_schedule ?? '0 * * * *',
6688
required: true,
6789
validate: fn (string $value) => match (true) {
6890
! CronExpression::isValidExpression($value) => 'The schedule expression is invalid.',

app/Filament/Pages/Dashboard.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
use Filament\Actions\ActionGroup;
1414
use Filament\Notifications\Notification;
1515
use Filament\Pages\Dashboard as BasePage;
16-
use Filament\Support\Enums\ActionSize;
1716
use Filament\Support\Enums\IconPosition;
1817
use Illuminate\Support\Arr;
1918

@@ -30,9 +29,11 @@ protected function getHeaderActions(): array
3029
return [
3130
Action::make('home')
3231
->label('Public Dashboard')
32+
->icon('heroicon-o-chart-bar')
33+
->iconPosition(IconPosition::Before)
3334
->color('gray')
34-
->hidden(fn (GeneralSettings $settings): bool => ! $settings->public_dashboard_enabled)
35-
->url('/'),
35+
->hidden(fn (): bool => ! config('speedtest.public_dashboard'))
36+
->url(shouldOpenInNewTab: true, url: '/'),
3637
ActionGroup::make([
3738
Action::make('ookla speedtest')
3839
->action(function (GeneralSettings $settings) {
@@ -55,9 +56,8 @@ protected function getHeaderActions(): array
5556
->dropdownPlacement('bottom-end')
5657
->label('Run Speedtest')
5758
->icon('heroicon-o-rocket-launch')
58-
->iconPosition(IconPosition::After)
59-
->hidden(! auth()->user()->is_admin)
60-
->size(ActionSize::Small),
59+
->iconPosition(IconPosition::Before)
60+
->hidden(! auth()->user()->is_admin),
6161
];
6262
}
6363

app/Filament/Pages/Settings/GeneralPage.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ public function form(Form $form): Form
5353
->helperText(new HtmlString('⚠️ DEPRECATED: Use <code>APP_NAME</code> environment variable.'))
5454
->columnSpanFull(),
5555
Forms\Components\Toggle::make('public_dashboard_enabled')
56-
->label('Public dashboard'),
56+
->label('Public dashboard')
57+
->disabled()
58+
->helperText(new HtmlString('⚠️ DEPRECATED: Use <code>PUBLIC_DASHBOARD</code> environment variable.')),
5759
])
5860
->compact()
5961
->columns([

app/Http/Controllers/HomeController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public function __invoke(Request $request)
1616
{
1717
$settings = new GeneralSettings();
1818

19-
if (! $settings->public_dashboard_enabled) {
19+
if (! config('speedtest.public_dashboard')) {
2020
return redirect()->route('filament.admin.auth.login');
2121
}
2222

app/Settings/GeneralSettings.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ class GeneralSettings extends Settings
2626

2727
public bool $db_has_timezone;
2828

29+
/**
30+
* @deprecated Use PUBLIC_DASHBOARD environment variable.
31+
*/
2932
public bool $public_dashboard_enabled;
3033

3134
public static function group(): string

config/speedtest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
'content_width' => env('CONTENT_WIDTH', '7xl'),
1717

18+
'public_dashboard' => env('PUBLIC_DASHBOARD', false),
19+
1820
/**
1921
* Polling
2022
*/

0 commit comments

Comments
 (0)