From 97231df91d36d3143fdc72cc1f5b7a454bb5f635 Mon Sep 17 00:00:00 2001 From: Sean Poynter-Smith Date: Thu, 26 Jun 2025 16:41:59 +0100 Subject: [PATCH 1/7] Add localization management settings and update navigation --- resources/lang/en/navigation.php | 1 + resources/lang/en/settings.php | 9 ++- src/Filament/Pages/Settings/ManageCachet.php | 16 ------ .../Pages/Settings/ManageLocalization.php | 55 +++++++++++++++++++ src/Settings/AppSettings.php | 2 + 5 files changed, 65 insertions(+), 18 deletions(-) create mode 100644 src/Filament/Pages/Settings/ManageLocalization.php diff --git a/resources/lang/en/navigation.php b/resources/lang/en/navigation.php index 3b8cb537..c14ca0f8 100644 --- a/resources/lang/en/navigation.php +++ b/resources/lang/en/navigation.php @@ -6,6 +6,7 @@ 'items' => [ 'manage_cachet' => 'Manage Cachet', 'manage_customization' => 'Manage Customization', + 'manage_localization' => 'Manage Localization', 'manage_theme' => 'Manage Theme', 'manage_api_keys' => 'Manage API Keys', 'manage_webhooks' => 'Manage Webhooks', diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php index ed892360..007f17f8 100644 --- a/resources/lang/en/settings.php +++ b/resources/lang/en/settings.php @@ -4,7 +4,6 @@ 'manage_cachet' => [ 'site_name_label' => 'Site Name', 'about_this_site_label' => 'About This Site', - 'timezone_label' => 'Timezone', 'incident_days_label' => 'Incident Days', 'major_outage_threshold_label' => 'Major Outage Threshold', 'refresh_rate_label' => 'Automatically Refresh Page', @@ -12,7 +11,6 @@ 'recent_incidents_days_suffix_days' => 'days', 'toggles' => [ 'support_cachet' => 'Support Cachet', - 'show_timezone' => 'Show Timezone', 'show_dashboard_link' => 'Show Dashboard Link', 'display_graphs' => 'Display Graphs', 'enable_external_dependencies' => 'Enable External Dependencies', @@ -27,6 +25,13 @@ 'footer_label' => 'Custom Footer HTML', 'stylesheet_label' => 'Custom CSS', ], + 'manage_localization' => [ + 'locale_label' => 'Locale', + 'timezone_label' => 'Timezone', + 'toggles' => [ + 'show_timezone' => 'Show Timezone', + ], + ], 'manage_theme' => [ 'app_banner_label' => 'Banner Image', 'status_page_accent' => [ diff --git a/src/Filament/Pages/Settings/ManageCachet.php b/src/Filament/Pages/Settings/ManageCachet.php index 73f7949e..97cc58f3 100644 --- a/src/Filament/Pages/Settings/ManageCachet.php +++ b/src/Filament/Pages/Settings/ManageCachet.php @@ -36,20 +36,6 @@ public function form(Form $form): Form ->label(__('cachet::settings.manage_cachet.about_this_site_label')) ->columnSpanFull(), - Forms\Components\Select::make('timezone') - ->label(__('cachet::settings.manage_cachet.timezone_label')) - ->options(fn () => collect(timezone_identifiers_list()) - ->mapToGroups( - fn ($timezone) => [ - Str::of($timezone) - ->before('/') - ->toString() => [$timezone => $timezone], - ] - ) - ->map(fn ($group) => $group->collapse())) - ->searchable() - ->suffixIcon('heroicon-o-globe-alt'), - Forms\Components\TextInput::make('incident_days') ->numeric() ->label(__('cachet::settings.manage_cachet.incident_days_label')) @@ -73,8 +59,6 @@ public function form(Form $form): Form ->step(1) ->suffix(__('cachet::settings.manage_cachet.refresh_rate_label_input_suffix_seconds')), - Forms\Components\Toggle::make('show_timezone') - ->label(__('cachet::settings.manage_cachet.toggles.show_timezone')), Forms\Components\Toggle::make('only_disrupted_days') ->label(__('cachet::settings.manage_cachet.toggles.only_show_disrupted_days')), Forms\Components\Toggle::make('dashboard_login_link') diff --git a/src/Filament/Pages/Settings/ManageLocalization.php b/src/Filament/Pages/Settings/ManageLocalization.php new file mode 100644 index 00000000..2d115a05 --- /dev/null +++ b/src/Filament/Pages/Settings/ManageLocalization.php @@ -0,0 +1,55 @@ +schema([ + Forms\Components\Section::make()->columns(2)->schema([ + Forms\Components\Select::make('locale') + ->label(__('cachet::settings.manage_localization.locale_label')) + ->options([ + 'en' => 'English', + ])->searchable() + ->suffixIcon('heroicon-o-language'), + + Forms\Components\Select::make('timezone') + ->label(__('cachet::settings.manage_localization.timezone_label')) + ->options(fn () => collect(timezone_identifiers_list()) + ->mapToGroups( + fn ($timezone) => [ + Str::of($timezone) + ->before('/') + ->toString() => [$timezone => $timezone], + ] + ) + ->map(fn ($group) => $group->collapse())) + ->searchable() + ->suffixIcon('heroicon-o-globe-alt'), + + Forms\Components\Toggle::make('show_timezone') + ->label(__('cachet::settings.manage_localization.toggles.show_timezone')), + ]), + ]); + } +} diff --git a/src/Settings/AppSettings.php b/src/Settings/AppSettings.php index c77e89b3..cc4a1929 100644 --- a/src/Settings/AppSettings.php +++ b/src/Settings/AppSettings.php @@ -14,6 +14,8 @@ class AppSettings extends Settings public bool $show_support = true; + public string $locale = 'en'; + public string $timezone = 'UTC'; public bool $show_timezone = false; From 3308af74788d6b94f2350e01779eb4a4d2a4d2e0 Mon Sep 17 00:00:00 2001 From: spoyntersmith <22387308+spoyntersmith@users.noreply.github.com> Date: Thu, 26 Jun 2025 15:42:26 +0000 Subject: [PATCH 2/7] Fix code styling --- src/Filament/Pages/Settings/ManageCachet.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Filament/Pages/Settings/ManageCachet.php b/src/Filament/Pages/Settings/ManageCachet.php index 97cc58f3..1c7c57c3 100644 --- a/src/Filament/Pages/Settings/ManageCachet.php +++ b/src/Filament/Pages/Settings/ManageCachet.php @@ -6,7 +6,6 @@ use Filament\Forms; use Filament\Forms\Form; use Filament\Forms\Get; -use Illuminate\Support\Str; use function __; From 70d388a8aa9957aee5086a8e076a13bd32f42cc4 Mon Sep 17 00:00:00 2001 From: Sean Poynter-Smith Date: Thu, 26 Jun 2025 16:42:32 +0100 Subject: [PATCH 3/7] Run Pint --- src/Filament/Pages/Settings/ManageCachet.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Filament/Pages/Settings/ManageCachet.php b/src/Filament/Pages/Settings/ManageCachet.php index 97cc58f3..1c7c57c3 100644 --- a/src/Filament/Pages/Settings/ManageCachet.php +++ b/src/Filament/Pages/Settings/ManageCachet.php @@ -6,7 +6,6 @@ use Filament\Forms; use Filament\Forms\Form; use Filament\Forms\Get; -use Illuminate\Support\Str; use function __; From 0d5e63f2351a076aefa785d2bdc65c71d1399251 Mon Sep 17 00:00:00 2001 From: Sean Poynter-Smith Date: Thu, 26 Jun 2025 16:54:38 +0100 Subject: [PATCH 4/7] Update localization settings to use AppSettings and add Spanish option --- src/Filament/Pages/Settings/ManageLocalization.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Filament/Pages/Settings/ManageLocalization.php b/src/Filament/Pages/Settings/ManageLocalization.php index 2d115a05..bf5ef958 100644 --- a/src/Filament/Pages/Settings/ManageLocalization.php +++ b/src/Filament/Pages/Settings/ManageLocalization.php @@ -2,6 +2,7 @@ namespace Cachet\Filament\Pages\Settings; +use Cachet\Settings\AppSettings; use Cachet\Settings\CustomizationSettings; use Filament\Forms; use Filament\Forms\Form; @@ -9,7 +10,7 @@ class ManageLocalization extends SettingsPage { - protected static string $settings = CustomizationSettings::class; + protected static string $settings = AppSettings::class; public static function getNavigationGroup(): ?string { @@ -29,6 +30,7 @@ public function form(Form $form): Form Forms\Components\Select::make('locale') ->label(__('cachet::settings.manage_localization.locale_label')) ->options([ + 'es' => 'Spanish', 'en' => 'English', ])->searchable() ->suffixIcon('heroicon-o-language'), From 34ec3a46f5e65578ca4b87d63d3c8f1c2f5d9555 Mon Sep 17 00:00:00 2001 From: spoyntersmith <22387308+spoyntersmith@users.noreply.github.com> Date: Thu, 26 Jun 2025 15:56:21 +0000 Subject: [PATCH 5/7] Fix code styling --- src/Filament/Pages/Settings/ManageLocalization.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Filament/Pages/Settings/ManageLocalization.php b/src/Filament/Pages/Settings/ManageLocalization.php index bf5ef958..8570eb46 100644 --- a/src/Filament/Pages/Settings/ManageLocalization.php +++ b/src/Filament/Pages/Settings/ManageLocalization.php @@ -3,7 +3,6 @@ namespace Cachet\Filament\Pages\Settings; use Cachet\Settings\AppSettings; -use Cachet\Settings\CustomizationSettings; use Filament\Forms; use Filament\Forms\Form; use Illuminate\Support\Str; From d1eead286b66fb945eb47fbc3584e8892f5ebdc8 Mon Sep 17 00:00:00 2001 From: Sean Poynter-Smith Date: Thu, 26 Jun 2025 17:11:47 +0100 Subject: [PATCH 6/7] Run Pint --- src/Filament/Pages/Settings/ManageLocalization.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Filament/Pages/Settings/ManageLocalization.php b/src/Filament/Pages/Settings/ManageLocalization.php index bf5ef958..8570eb46 100644 --- a/src/Filament/Pages/Settings/ManageLocalization.php +++ b/src/Filament/Pages/Settings/ManageLocalization.php @@ -3,7 +3,6 @@ namespace Cachet\Filament\Pages\Settings; use Cachet\Settings\AppSettings; -use Cachet\Settings\CustomizationSettings; use Filament\Forms; use Filament\Forms\Form; use Illuminate\Support\Str; From 654a80b0c0923c9765c62d1d0964da7c2a56b74e Mon Sep 17 00:00:00 2001 From: Sean Poynter-Smith Date: Thu, 26 Jun 2025 17:19:55 +0100 Subject: [PATCH 7/7] Update locale options to use supported locales configuration --- src/Filament/Pages/Settings/ManageLocalization.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Filament/Pages/Settings/ManageLocalization.php b/src/Filament/Pages/Settings/ManageLocalization.php index 8570eb46..0dfce4e3 100644 --- a/src/Filament/Pages/Settings/ManageLocalization.php +++ b/src/Filament/Pages/Settings/ManageLocalization.php @@ -28,10 +28,11 @@ public function form(Form $form): Form Forms\Components\Section::make()->columns(2)->schema([ Forms\Components\Select::make('locale') ->label(__('cachet::settings.manage_localization.locale_label')) - ->options([ - 'es' => 'Spanish', - 'en' => 'English', - ])->searchable() + ->options( + config('cachet.supported_locales', [ + 'en' => 'English', + ]) + )->searchable() ->suffixIcon('heroicon-o-language'), Forms\Components\Select::make('timezone')