Small changes for new client area (#751)

* add placeholder to allocation notes

* add button to open server in admin area

* use new client area for "console" button on EditServer

* hide schedule presets on view

* use arrow functions for auth checks

* add placeholder to schedules last run

* change icon of "open in admin"

* fix parentheses
This commit is contained in:
Boy132 2024-12-02 22:27:35 +01:00 committed by GitHub
parent 918ba02075
commit 1337767049
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 21 additions and 8 deletions

View File

@ -6,6 +6,7 @@ use App\Enums\ContainerStatus;
use App\Enums\ServerState;
use App\Filament\Resources\ServerResource;
use App\Filament\Resources\ServerResource\RelationManagers\AllocationsRelationManager;
use App\Filament\Server\Pages\Console;
use App\Models\Database;
use App\Models\DatabaseHost;
use App\Models\Egg;
@ -870,7 +871,7 @@ class EditServer extends EditRecord
Actions\Action::make('console')
->label('Console')
->icon('tabler-terminal')
->url(fn (Server $server) => "/server/$server->uuid_short"),
->url(fn (Server $server) => Console::getUrl(panel: 'server', tenant: $server)),
$this->getSaveFormAction()->formId('form'),
];

View File

@ -53,7 +53,7 @@ class Settings extends ServerFormPage
->schema([
TextInput::make('name')
->label('Server Name')
->disabled(!auth()->user()->can(Permission::ACTION_SETTINGS_RENAME, $server))
->disabled(fn () => !auth()->user()->can(Permission::ACTION_SETTINGS_RENAME, $server))
->required()
->columnSpan([
'default' => 1,
@ -66,7 +66,7 @@ class Settings extends ServerFormPage
Textarea::make('description')
->label('Server Description')
->hidden(!config('panel.editable_server_descriptions'))
->disabled(!auth()->user()->can(Permission::ACTION_SETTINGS_RENAME, $server))
->disabled(fn () => !auth()->user()->can(Permission::ACTION_SETTINGS_RENAME, $server))
->columnSpan([
'default' => 1,
'sm' => 2,
@ -168,7 +168,7 @@ class Settings extends ServerFormPage
->footerActions([
Action::make('reinstall')
->color('danger')
->disabled(!auth()->user()->can(Permission::ACTION_SETTINGS_REINSTALL, $server))
->disabled(fn () => !auth()->user()->can(Permission::ACTION_SETTINGS_REINSTALL, $server))
->label('Reinstall')
->requiresConfirmation()
->modalHeading('Are you sure you want to reinstall the server?')

View File

@ -62,7 +62,7 @@ class Startup extends ServerFormPage
->label('Docker Image')
->live()
->visible(fn (Server $server) => in_array($server->image, $server->egg->docker_images))
->disabled(!auth()->user()->can(Permission::ACTION_STARTUP_DOCKER_IMAGE, $server))
->disabled(fn () => !auth()->user()->can(Permission::ACTION_STARTUP_DOCKER_IMAGE, $server))
->afterStateUpdated(function ($state, Server $server) {
$original = $server->image;
$server->forceFill(['image' => $state])->saveOrFail();
@ -97,7 +97,7 @@ class Startup extends ServerFormPage
->label('')
->relationship('viewableServerVariables')
->grid()
->disabled(!auth()->user()->can(Permission::ACTION_STARTUP_UPDATE, $server))
->disabled(fn () => !auth()->user()->can(Permission::ACTION_STARTUP_UPDATE, $server))
->reorderable(false)->addable(false)->deletable(false)
->schema(function () {
$text = TextInput::make('variable_value')

View File

@ -36,7 +36,8 @@ class ListAllocations extends ListRecords
TextColumn::make('port'),
TextInputColumn::make('notes')
->disabled(fn () => !auth()->user()->can(Permission::ACTION_ALLOCATION_UPDATE, $server))
->label('Notes'),
->label('Notes')
->placeholder('No Notes'),
IconColumn::make('primary')
->icon(fn ($state) => match ($state) {
true => 'tabler-star-filled',

View File

@ -70,7 +70,7 @@ class EditFiles extends Page
->footerActions([
Action::make('save')
->label('Save Changes')
->authorize(auth()->user()->can(Permission::ACTION_FILE_UPDATE, $server))
->authorize(fn () => auth()->user()->can(Permission::ACTION_FILE_UPDATE, $server))
->icon('tabler-device-floppy')
->keyBindings('mod+s')
->action(function () use ($server) {

View File

@ -111,6 +111,7 @@ class ScheduleResource extends Resource
->default('*')
->required(),
Section::make('Presets')
->hiddenOn('view')
->schema([
Actions::make([
Action::make('hourly')

View File

@ -33,6 +33,7 @@ class ListSchedules extends ListRecords
->sortable(),
DateTimeColumn::make('last_run_at')
->label('Last run')
->placeholder('Never')
->since()
->sortable(),
DateTimeColumn::make('next_run_at')

View File

@ -4,6 +4,7 @@ namespace App\Providers\Filament;
use App\Filament\App\Resources\ServerResource\Pages\ListServers;
use App\Filament\Pages\Auth\Login;
use App\Filament\Resources\ServerResource\Pages\EditServer;
use App\Filament\Resources\UserResource\Pages\EditProfile;
use App\Http\Middleware\Activity\ServerSubject;
use App\Models\Server;
@ -12,6 +13,7 @@ use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\DisableBladeIconComponents;
use Filament\Http\Middleware\DispatchServingFilamentEvent;
use Filament\Navigation\MenuItem;
use Filament\Navigation\NavigationItem;
use Filament\Panel;
use Filament\PanelProvider;
use Filament\Support\Enums\MaxWidth;
@ -54,6 +56,13 @@ class ServerPanelProvider extends PanelProvider
->sort(5)
->visible(fn (): bool => auth()->user()->canAccessPanel(Filament::getPanel('admin'))),
])
->navigationItems([
NavigationItem::make('Open in Admin')
->url(fn () => EditServer::getUrl(['record' => Filament::getTenant()], panel: 'admin', tenant: null), true)
->visible(fn () => auth()->user()->can('view server', Filament::getTenant()))
->icon('tabler-arrow-back')
->sort(99),
])
->discoverResources(in: app_path('Filament/Server/Resources'), for: 'App\\Filament\\Server\\Resources')
->discoverPages(in: app_path('Filament/Server/Pages'), for: 'App\\Filament\\Server\\Pages')
->discoverWidgets(in: app_path('Filament/Server/Widgets'), for: 'App\\Filament\\Server\\Widgets')