mirror of
https://github.com/pelican-dev/panel.git
synced 2025-09-08 08:08:54 +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)
|
->formatStateUsing(fn ($state): bool => (bool) $state)
|
||||||
->afterStateUpdated(fn ($state, Set $set) => $set('APP_DEBUG', (bool) $state))
|
->afterStateUpdated(fn ($state, Set $set) => $set('APP_DEBUG', (bool) $state))
|
||||||
->default(env('APP_DEBUG', config('app.debug'))),
|
->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()
|
Group::make()
|
||||||
->columns(2)
|
->columns(2)
|
||||||
|
@ -29,7 +29,7 @@ class EggResource extends Resource
|
|||||||
|
|
||||||
public static function getNavigationGroup(): ?string
|
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
|
public static function getNavigationLabel(): string
|
||||||
|
@ -40,7 +40,8 @@ class NodeResource extends Resource
|
|||||||
|
|
||||||
public static function getNavigationGroup(): ?string
|
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
|
public static function getNavigationBadge(): ?string
|
||||||
|
@ -59,7 +59,7 @@ class RoleResource extends Resource
|
|||||||
|
|
||||||
public static function getNavigationGroup(): ?string
|
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
|
public static function getNavigationBadge(): ?string
|
||||||
|
@ -43,7 +43,7 @@ class ServerResource extends Resource
|
|||||||
|
|
||||||
public static function getNavigationGroup(): ?string
|
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
|
public static function getNavigationBadge(): ?string
|
||||||
|
@ -56,7 +56,7 @@ class UserResource extends Resource
|
|||||||
|
|
||||||
public static function getNavigationGroup(): ?string
|
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
|
public static function getNavigationBadge(): ?string
|
||||||
|
@ -471,6 +471,14 @@ class EditProfile extends BaseEditProfile
|
|||||||
'grid' => trans('profile.grid'),
|
'grid' => trans('profile.grid'),
|
||||||
'table' => trans('profile.table'),
|
'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'))
|
Section::make(trans('profile.console'))
|
||||||
->collapsible()
|
->collapsible()
|
||||||
@ -628,9 +636,10 @@ class EditProfile extends BaseEditProfile
|
|||||||
'console_rows' => $data['console_rows'],
|
'console_rows' => $data['console_rows'],
|
||||||
'console_graph_period' => $data['console_graph_period'],
|
'console_graph_period' => $data['console_graph_period'],
|
||||||
'dashboard_layout' => $data['dashboard_layout'],
|
'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);
|
$data['customization'] = json_encode($moarbetterdata);
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
@ -645,6 +654,7 @@ class EditProfile extends BaseEditProfile
|
|||||||
$data['console_rows'] = $moarbetterdata['console_rows'] ?? 30;
|
$data['console_rows'] = $moarbetterdata['console_rows'] ?? 30;
|
||||||
$data['console_graph_period'] = $moarbetterdata['console_graph_period'] ?? 30;
|
$data['console_graph_period'] = $moarbetterdata['console_graph_period'] ?? 30;
|
||||||
$data['dashboard_layout'] = $moarbetterdata['dashboard_layout'] ?? 'grid';
|
$data['dashboard_layout'] = $moarbetterdata['dashboard_layout'] ?? 'grid';
|
||||||
|
$data['top_navigation'] = $moarbetterdata['top_navigation'] ?? false;
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ class AdminPanelProvider extends PanelProvider
|
|||||||
->brandLogo(config('app.logo'))
|
->brandLogo(config('app.logo'))
|
||||||
->brandLogoHeight('2rem')
|
->brandLogoHeight('2rem')
|
||||||
->favicon(config('app.favicon', '/pelican.ico'))
|
->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'))
|
->maxContentWidth(config('panel.filament.display-width', 'screen-2xl'))
|
||||||
->login(Login::class)
|
->login(Login::class)
|
||||||
->passwordReset()
|
->passwordReset()
|
||||||
|
@ -34,7 +34,7 @@ class AppPanelProvider extends PanelProvider
|
|||||||
->brandLogo(config('app.logo'))
|
->brandLogo(config('app.logo'))
|
||||||
->brandLogoHeight('2rem')
|
->brandLogoHeight('2rem')
|
||||||
->favicon(config('app.favicon', '/pelican.ico'))
|
->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'))
|
->maxContentWidth(config('panel.filament.display-width', 'screen-2xl'))
|
||||||
->navigation(false)
|
->navigation(false)
|
||||||
->profile(EditProfile::class, false)
|
->profile(EditProfile::class, false)
|
||||||
|
@ -41,7 +41,7 @@ class ServerPanelProvider extends PanelProvider
|
|||||||
->brandLogo(config('app.logo'))
|
->brandLogo(config('app.logo'))
|
||||||
->brandLogoHeight('2rem')
|
->brandLogoHeight('2rem')
|
||||||
->favicon(config('app.favicon', '/pelican.ico'))
|
->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'))
|
->maxContentWidth(config('panel.filament.display-width', 'screen-2xl'))
|
||||||
->login(Login::class)
|
->login(Login::class)
|
||||||
->passwordReset()
|
->passwordReset()
|
||||||
|
@ -50,7 +50,6 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
'filament' => [
|
'filament' => [
|
||||||
'top-navigation' => env('FILAMENT_TOP_NAVIGATION', false),
|
|
||||||
'display-width' => env('FILAMENT_WIDTH', 'screen-2xl'),
|
'display-width' => env('FILAMENT_WIDTH', 'screen-2xl'),
|
||||||
'avatar-provider' => env('FILAMENT_AVATAR_PROVIDER', 'gravatar'),
|
'avatar-provider' => env('FILAMENT_AVATAR_PROVIDER', 'gravatar'),
|
||||||
'uploadable-avatars' => env('FILAMENT_UPLOADABLE_AVATARS', false),
|
'uploadable-avatars' => env('FILAMENT_UPLOADABLE_AVATARS', false),
|
||||||
|
@ -58,4 +58,7 @@ return [
|
|||||||
'seconds' => 'Seconds',
|
'seconds' => 'Seconds',
|
||||||
'graph_period' => 'Graph Period',
|
'graph_period' => 'Graph Period',
|
||||||
'graph_period_helper' => 'The amount of data points, seconds, shown on the console graphs.',
|
'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