diff --git a/app/Filament/Admin/Pages/Settings.php b/app/Filament/Admin/Pages/Settings.php index 8ddc63204..9a7ca051d 100644 --- a/app/Filament/Admin/Pages/Settings.php +++ b/app/Filament/Admin/Pages/Settings.php @@ -169,16 +169,6 @@ class Settings extends Page implements HasForms ->formatStateUsing(fn ($state): bool => (bool) $state) ->afterStateUpdated(fn ($state, Set $set) => $set('APP_DEBUG', (bool) $state)) ->default(env('APP_DEBUG', config('app.debug'))), - ToggleButtons::make('FILAMENT_TOP_NAVIGATION') - ->label(trans('admin/setting.general.navigation')) - ->inline() - ->options([ - false => trans('admin/setting.general.sidebar'), - true => trans('admin/setting.general.topbar'), - ]) - ->formatStateUsing(fn ($state): bool => (bool) $state) - ->afterStateUpdated(fn ($state, Set $set) => $set('FILAMENT_TOP_NAVIGATION', (bool) $state)) - ->default(env('FILAMENT_TOP_NAVIGATION', config('panel.filament.top-navigation'))), ]), Group::make() ->columns(2) diff --git a/app/Filament/Admin/Resources/EggResource.php b/app/Filament/Admin/Resources/EggResource.php index b7743ba2e..6f5eafa76 100644 --- a/app/Filament/Admin/Resources/EggResource.php +++ b/app/Filament/Admin/Resources/EggResource.php @@ -29,7 +29,7 @@ class EggResource extends Resource public static function getNavigationGroup(): ?string { - return config('panel.filament.top-navigation', false) ? null : trans('admin/dashboard.server'); + return !empty(auth()->user()->getCustomization()['top_navigation']) ? false : trans('admin/dashboard.server'); } public static function getNavigationLabel(): string diff --git a/app/Filament/Admin/Resources/NodeResource.php b/app/Filament/Admin/Resources/NodeResource.php index 1b47ccdfe..757bde676 100644 --- a/app/Filament/Admin/Resources/NodeResource.php +++ b/app/Filament/Admin/Resources/NodeResource.php @@ -40,7 +40,8 @@ class NodeResource extends Resource public static function getNavigationGroup(): ?string { - return config('panel.filament.top-navigation', false) ? null : trans('admin/dashboard.server'); + return !empty(auth()->user()->getCustomization()['top_navigation']) ? false : trans('admin/dashboard.server'); + } public static function getNavigationBadge(): ?string diff --git a/app/Filament/Admin/Resources/RoleResource.php b/app/Filament/Admin/Resources/RoleResource.php index 6f213f86b..c63ddfecf 100644 --- a/app/Filament/Admin/Resources/RoleResource.php +++ b/app/Filament/Admin/Resources/RoleResource.php @@ -59,7 +59,7 @@ class RoleResource extends Resource public static function getNavigationGroup(): ?string { - return config('panel.filament.top-navigation', false) ? trans('admin/dashboard.advanced') : trans('admin/dashboard.user'); + return !empty(auth()->user()->getCustomization()['top_navigation']) ? trans('admin/dashboard.advanced') : trans('admin/dashboard.user'); } public static function getNavigationBadge(): ?string diff --git a/app/Filament/Admin/Resources/ServerResource.php b/app/Filament/Admin/Resources/ServerResource.php index 3be48e7b7..5c4235f29 100644 --- a/app/Filament/Admin/Resources/ServerResource.php +++ b/app/Filament/Admin/Resources/ServerResource.php @@ -43,7 +43,7 @@ class ServerResource extends Resource public static function getNavigationGroup(): ?string { - return config('panel.filament.top-navigation', false) ? null : trans('admin/dashboard.server'); + return !empty(auth()->user()->getCustomization()['top_navigation']) ? false : trans('admin/dashboard.server'); } public static function getNavigationBadge(): ?string diff --git a/app/Filament/Admin/Resources/UserResource.php b/app/Filament/Admin/Resources/UserResource.php index f811749f8..52087987f 100644 --- a/app/Filament/Admin/Resources/UserResource.php +++ b/app/Filament/Admin/Resources/UserResource.php @@ -56,7 +56,7 @@ class UserResource extends Resource public static function getNavigationGroup(): ?string { - return config('panel.filament.top-navigation', false) ? null : trans('admin/dashboard.user'); + return !empty(auth()->user()->getCustomization()['top_navigation']) ? false : trans('admin/dashboard.user'); } public static function getNavigationBadge(): ?string diff --git a/app/Filament/Pages/Auth/EditProfile.php b/app/Filament/Pages/Auth/EditProfile.php index d38d0e1da..8056dc2e2 100644 --- a/app/Filament/Pages/Auth/EditProfile.php +++ b/app/Filament/Pages/Auth/EditProfile.php @@ -471,6 +471,14 @@ class EditProfile extends BaseEditProfile 'grid' => trans('profile.grid'), 'table' => trans('profile.table'), ]), + ToggleButtons::make('top_navigation') + ->label(trans('profile.navigation')) + ->inline() + ->required() + ->options([ + true => trans('profile.top'), + false => trans('profile.side'), + ]), ]), Section::make(trans('profile.console')) ->collapsible() @@ -628,9 +636,10 @@ class EditProfile extends BaseEditProfile 'console_rows' => $data['console_rows'], 'console_graph_period' => $data['console_graph_period'], 'dashboard_layout' => $data['dashboard_layout'], + 'top_navigation' => $data['top_navigation'], ]; - unset($data['console_font'],$data['console_font_size'], $data['console_rows'], $data['dashboard_layout']); + unset($data['console_font'],$data['console_font_size'], $data['console_rows'], $data['dashboard_layout'], $data['top_navigation']); $data['customization'] = json_encode($moarbetterdata); return $data; @@ -645,6 +654,7 @@ class EditProfile extends BaseEditProfile $data['console_rows'] = $moarbetterdata['console_rows'] ?? 30; $data['console_graph_period'] = $moarbetterdata['console_graph_period'] ?? 30; $data['dashboard_layout'] = $moarbetterdata['dashboard_layout'] ?? 'grid'; + $data['top_navigation'] = $moarbetterdata['top_navigation'] ?? false; return $data; } diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index 5233d0a5e..45dffd344 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -37,7 +37,7 @@ class AdminPanelProvider extends PanelProvider ->brandLogo(config('app.logo')) ->brandLogoHeight('2rem') ->favicon(config('app.favicon', '/pelican.ico')) - ->topNavigation(config('panel.filament.top-navigation', false)) + ->topNavigation(fn () => auth()->user()->getCustomization()['top_navigation'] ?? false) ->maxContentWidth(config('panel.filament.display-width', 'screen-2xl')) ->login(Login::class) ->passwordReset() diff --git a/app/Providers/Filament/AppPanelProvider.php b/app/Providers/Filament/AppPanelProvider.php index bfc500f25..c2e83e97f 100644 --- a/app/Providers/Filament/AppPanelProvider.php +++ b/app/Providers/Filament/AppPanelProvider.php @@ -34,7 +34,7 @@ class AppPanelProvider extends PanelProvider ->brandLogo(config('app.logo')) ->brandLogoHeight('2rem') ->favicon(config('app.favicon', '/pelican.ico')) - ->topNavigation(config('panel.filament.top-navigation', false)) + ->topNavigation(fn () => auth()->user()->getCustomization()['top_navigation'] ?? false) ->maxContentWidth(config('panel.filament.display-width', 'screen-2xl')) ->navigation(false) ->profile(EditProfile::class, false) diff --git a/app/Providers/Filament/ServerPanelProvider.php b/app/Providers/Filament/ServerPanelProvider.php index 990f21316..9339a871c 100644 --- a/app/Providers/Filament/ServerPanelProvider.php +++ b/app/Providers/Filament/ServerPanelProvider.php @@ -41,7 +41,7 @@ class ServerPanelProvider extends PanelProvider ->brandLogo(config('app.logo')) ->brandLogoHeight('2rem') ->favicon(config('app.favicon', '/pelican.ico')) - ->topNavigation(config('panel.filament.top-navigation', false)) + ->topNavigation(fn () => auth()->user()->getCustomization()['top_navigation'] ?? false) ->maxContentWidth(config('panel.filament.display-width', 'screen-2xl')) ->login(Login::class) ->passwordReset() diff --git a/config/panel.php b/config/panel.php index 504092db4..ddb6aed2c 100644 --- a/config/panel.php +++ b/config/panel.php @@ -50,7 +50,6 @@ return [ ], 'filament' => [ - 'top-navigation' => env('FILAMENT_TOP_NAVIGATION', false), 'display-width' => env('FILAMENT_WIDTH', 'screen-2xl'), 'avatar-provider' => env('FILAMENT_AVATAR_PROVIDER', 'gravatar'), 'uploadable-avatars' => env('FILAMENT_UPLOADABLE_AVATARS', false), diff --git a/lang/en/profile.php b/lang/en/profile.php index 9614c4c5c..e0d2085cd 100644 --- a/lang/en/profile.php +++ b/lang/en/profile.php @@ -58,4 +58,7 @@ return [ 'seconds' => 'Seconds', 'graph_period' => 'Graph Period', 'graph_period_helper' => 'The amount of data points, seconds, shown on the console graphs.', + 'navigation' => 'Navigation Type', + 'top' => 'Topbar', + 'side' => 'Sidebar', ];