mirror of
https://github.com/pelican-dev/panel.git
synced 2025-09-07 13:08:36 +02:00
Allow user selectable navigation type (#1572)
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
This commit is contained in:
parent
75863c50d1
commit
36863f94c0
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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()
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
@ -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),
|
||||
|
@ -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',
|
||||
];
|
||||
|
Loading…
x
Reference in New Issue
Block a user