From 250d293edfee3bcda55460767969c14430bcd97b Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 23 Jun 2025 09:17:43 -0400 Subject: [PATCH] Disaster Recovery v4 --- app/Exceptions/Handler.php | 6 +++--- app/Extensions/Features/GSLToken.php | 3 ++- app/Extensions/OAuth/Providers/DiscordProvider.php | 3 +-- app/Filament/Admin/Pages/Dashboard.php | 2 +- app/Filament/Admin/Pages/Health.php | 2 +- app/Filament/Admin/Pages/Settings.php | 3 ++- app/Filament/Admin/Resources/ApiKeyResource.php | 14 ++++---------- .../Admin/Resources/DatabaseHostResource.php | 7 +++---- .../RelationManagers/DatabasesRelationManager.php | 9 +++++++-- app/Filament/Admin/Resources/EggResource.php | 4 +--- app/Filament/Admin/Resources/MountResource.php | 5 ++--- app/Filament/Admin/Resources/NodeResource.php | 4 +--- .../Resources/NodeResource/Pages/EditNode.php | 10 ++++++---- .../AllocationsRelationManager.php | 2 +- .../RelationManagers/NodesRelationManager.php | 2 +- app/Filament/Admin/Resources/RoleResource.php | 7 +++---- app/Filament/Admin/Resources/ServerResource.php | 4 +--- .../Resources/ServerResource/Pages/EditServer.php | 6 +++--- app/Filament/Admin/Resources/UserResource.php | 6 ++---- app/Filament/Admin/Resources/WebhookResource.php | 5 ++--- app/Filament/App/Resources/ServerResource.php | 1 - app/Filament/Server/Components/SmallStatBlock.php | 10 +++++----- app/Filament/Server/Pages/Settings.php | 2 +- app/Filament/Server/Pages/Startup.php | 2 +- app/Filament/Server/Resources/ActivityResource.php | 3 +-- .../Server/Resources/AllocationResource.php | 3 +-- app/Filament/Server/Resources/BackupResource.php | 5 ++--- app/Filament/Server/Resources/DatabaseResource.php | 3 +-- app/Filament/Server/Resources/FileResource.php | 3 +-- app/Filament/Server/Resources/ScheduleResource.php | 5 ++--- app/Filament/Server/Resources/UserResource.php | 3 +-- app/Livewire/AlertBanner.php | 3 +-- app/Livewire/Installer/Steps/QueueStep.php | 9 ++++++--- app/Models/Backup.php | 2 +- app/Models/User.php | 2 +- app/Providers/AppServiceProvider.php | 1 - app/Rules/Port.php | 2 +- app/Traits/Filament/CanModifyForm.php | 4 ++-- app/Traits/Services/ValidatesValidationRules.php | 2 +- 39 files changed, 76 insertions(+), 93 deletions(-) diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 09ba0c12e..18c09cc5f 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -120,7 +120,7 @@ class Handler extends ExceptionHandler /** * Render an exception into an HTTP response. * - * @param Request $request + * @param Request $request * * @throws Throwable */ @@ -146,7 +146,7 @@ class Handler extends ExceptionHandler * Transform a validation exception into a consistent format to be returned for * calls to the API. * - * @param Request $request + * @param Request $request */ public function invalidJson($request, ValidationException $exception): JsonResponse { @@ -260,7 +260,7 @@ class Handler extends ExceptionHandler /** * Convert an authentication exception into an unauthenticated response. * - * @param Request $request + * @param Request $request */ protected function unauthenticated($request, AuthenticationException $exception): JsonResponse|RedirectResponse { diff --git a/app/Extensions/Features/GSLToken.php b/app/Extensions/Features/GSLToken.php index 9a3cc75ad..60cb12b7a 100644 --- a/app/Extensions/Features/GSLToken.php +++ b/app/Extensions/Features/GSLToken.php @@ -12,6 +12,7 @@ use Exception; use Filament\Actions\Action; use Filament\Facades\Filament; use Filament\Forms\Components\TextInput; +use Filament\Infolists\Components\TextEntry; use Filament\Notifications\Notification; use Illuminate\Database\Eloquent\Builder; use Illuminate\Foundation\Application; @@ -60,7 +61,7 @@ class GSLToken extends FeatureProvider ->modalSubmitActionLabel('Update GSL Token') ->disabledSchema(fn () => !auth()->user()->can(Permission::ACTION_STARTUP_UPDATE, $server)) ->schema([ - Placeholder::make('info') + TextEntry::make('info') ->label(new HtmlString(Blade::render('You can either generate a new one and enter it below or leave the field blank to remove it completely.'))), TextInput::make('gsltoken') ->label('GSL Token') diff --git a/app/Extensions/OAuth/Providers/DiscordProvider.php b/app/Extensions/OAuth/Providers/DiscordProvider.php index e9dd471e2..74bb78d7f 100644 --- a/app/Extensions/OAuth/Providers/DiscordProvider.php +++ b/app/Extensions/OAuth/Providers/DiscordProvider.php @@ -9,7 +9,6 @@ use Illuminate\Foundation\Application; use Illuminate\Support\Facades\Blade; use Illuminate\Support\HtmlString; use SocialiteProviders\Discord\Provider; -use Webbingbrasil\FilamentCopyActions\Forms\Actions\CopyAction; final class DiscordProvider extends OAuthProvider { @@ -43,7 +42,7 @@ final class DiscordProvider extends OAuthProvider ->label('Redirect URL') ->dehydrated() ->disabled() - ->hintAction(fn (string $state) => request()->isSecure() ? CopyAction::make()->copyable($state) : null) + //TODO ->hintAction(fn (string $state) => request()->isSecure() ? CopyAction::make()->copyable($state) : null) ->formatStateUsing(fn () => url('/auth/oauth/callback/discord')), ]), ], parent::getSetupSteps()); diff --git a/app/Filament/Admin/Pages/Dashboard.php b/app/Filament/Admin/Pages/Dashboard.php index 30622aadd..41bd33c1d 100644 --- a/app/Filament/Admin/Pages/Dashboard.php +++ b/app/Filament/Admin/Pages/Dashboard.php @@ -7,7 +7,7 @@ use Filament\Pages\Dashboard as BaseDashboard; class Dashboard extends BaseDashboard { - protected static string | \BackedEnum | null $navigationIcon = 'tabler-layout-dashboard'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-layout-dashboard'; private SoftwareVersionService $softwareVersionService; diff --git a/app/Filament/Admin/Pages/Health.php b/app/Filament/Admin/Pages/Health.php index 0fa5d4aaf..47749ef91 100644 --- a/app/Filament/Admin/Pages/Health.php +++ b/app/Filament/Admin/Pages/Health.php @@ -13,7 +13,7 @@ use Spatie\Health\ResultStores\ResultStore; class Health extends Page { - protected static string | \BackedEnum | null $navigationIcon = 'tabler-heart'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-heart'; protected string $view = 'filament.pages.health'; diff --git a/app/Filament/Admin/Pages/Settings.php b/app/Filament/Admin/Pages/Settings.php index 7946dc272..61c4ab785 100644 --- a/app/Filament/Admin/Pages/Settings.php +++ b/app/Filament/Admin/Pages/Settings.php @@ -10,6 +10,7 @@ use App\Notifications\MailTested; use App\Traits\EnvironmentWriterTrait; use App\Traits\Filament\CanCustomizeHeaderActions; use App\Traits\Filament\CanCustomizeHeaderWidgets; +use BackedEnum; use Exception; use Filament\Actions\Action; use Filament\Actions\ActionGroup; @@ -54,7 +55,7 @@ class Settings extends Page implements HasSchemas use EnvironmentWriterTrait; use InteractsWithForms; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-settings'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-settings'; protected string $view = 'filament.pages.settings'; diff --git a/app/Filament/Admin/Resources/ApiKeyResource.php b/app/Filament/Admin/Resources/ApiKeyResource.php index 8e5e87efd..5ec1ed35b 100644 --- a/app/Filament/Admin/Resources/ApiKeyResource.php +++ b/app/Filament/Admin/Resources/ApiKeyResource.php @@ -5,7 +5,6 @@ namespace App\Filament\Admin\Resources; use Filament\Schemas\Schema; use App\Filament\Admin\Resources\ApiKeyResource\Pages\ListApiKeys; use App\Filament\Admin\Resources\ApiKeyResource\Pages\CreateApiKey; -use App\Filament\Admin\Resources\ApiKeyResource\Pages; use App\Filament\Admin\Resources\UserResource\Pages\EditUser; use App\Filament\Components\Tables\Columns\DateTimeColumn; use App\Models\ApiKey; @@ -22,7 +21,6 @@ use Filament\Forms\Components\ToggleButtons; use Filament\Resources\Pages\PageRegistration; use Filament\Resources\Resource; use Filament\Schemas\Components\Fieldset; -use Filament\Schemas\Components\Form; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; @@ -36,7 +34,7 @@ class ApiKeyResource extends Resource protected static ?string $model = ApiKey::class; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-key'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-key'; public static function getNavigationLabel(): string { @@ -112,16 +110,12 @@ class ApiKeyResource extends Resource /** * @throws Exception */ - public static function form(Form|Schema $form): Schema + public static function defaultForm(Schema $schema): Schema { - return $form + return $schema ->schema([ Fieldset::make('Permissions') - ->columns([ - 'default' => 1, - 'sm' => 1, - 'md' => 2, - ]) + ->columnSpanFull() ->schema( collect(ApiKey::getPermissionList())->map(fn ($resource) => ToggleButtons::make('permissions_' . $resource) ->label(str($resource)->replace('_', ' ')->title())->inline() diff --git a/app/Filament/Admin/Resources/DatabaseHostResource.php b/app/Filament/Admin/Resources/DatabaseHostResource.php index 034ad3f04..534b67ea3 100644 --- a/app/Filament/Admin/Resources/DatabaseHostResource.php +++ b/app/Filament/Admin/Resources/DatabaseHostResource.php @@ -7,8 +7,6 @@ use App\Filament\Admin\Resources\DatabaseHostResource\Pages\ListDatabaseHosts; use App\Filament\Admin\Resources\DatabaseHostResource\Pages\CreateDatabaseHost; use App\Filament\Admin\Resources\DatabaseHostResource\Pages\ViewDatabaseHost; use App\Filament\Admin\Resources\DatabaseHostResource\Pages\EditDatabaseHost; -use App\Filament\Admin\Resources\DatabaseHostResource\Pages; -use App\Filament\Admin\Resources\DatabaseHostResource\RelationManagers; use App\Models\DatabaseHost; use App\Traits\Filament\CanCustomizePages; use App\Traits\Filament\CanCustomizeRelations; @@ -25,6 +23,7 @@ use Filament\Resources\Pages\PageRegistration; use Filament\Resources\RelationManagers\RelationManager; use Filament\Resources\Resource; use Filament\Schemas\Components\Section; +use Filament\Schemas\Components\Utilities\Set; use Filament\Schemas\Schema; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; @@ -39,7 +38,7 @@ class DatabaseHostResource extends Resource protected static ?string $model = DatabaseHost::class; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-database'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-database'; protected static ?string $recordTitleAttribute = 'name'; @@ -112,7 +111,7 @@ class DatabaseHostResource extends Resource /** * @throws Exception */ - public static function form(Schema $schema): Schema + public static function defaultForm(Schema $schema): Schema { return $schema ->components([ diff --git a/app/Filament/Admin/Resources/DatabaseHostResource/RelationManagers/DatabasesRelationManager.php b/app/Filament/Admin/Resources/DatabaseHostResource/RelationManagers/DatabasesRelationManager.php index e957cef65..5d6c2ac39 100644 --- a/app/Filament/Admin/Resources/DatabaseHostResource/RelationManagers/DatabasesRelationManager.php +++ b/app/Filament/Admin/Resources/DatabaseHostResource/RelationManagers/DatabasesRelationManager.php @@ -2,12 +2,14 @@ namespace App\Filament\Admin\Resources\DatabaseHostResource\RelationManagers; +use Exception; +use Filament\Actions\DeleteAction; +use Filament\Actions\ViewAction; use Filament\Schemas\Schema; use App\Filament\Components\Forms\Actions\RotateDatabasePasswordAction; use App\Filament\Components\Tables\Columns\DateTimeColumn; use App\Models\Database; use Filament\Forms\Components\TextInput; -use Filament\Schemas\Components\Form; use Filament\Resources\RelationManagers\RelationManager; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; @@ -16,7 +18,10 @@ class DatabasesRelationManager extends RelationManager { protected static string $relationship = 'databases'; - public function form(Form|Schema $schema): Schema + /** + * @throws Exception + */ + public function form(Schema $schema): Schema { return $schema ->schema([ diff --git a/app/Filament/Admin/Resources/EggResource.php b/app/Filament/Admin/Resources/EggResource.php index b706946c2..433147bb9 100644 --- a/app/Filament/Admin/Resources/EggResource.php +++ b/app/Filament/Admin/Resources/EggResource.php @@ -6,8 +6,6 @@ use App\Filament\Admin\Resources\EggResource\RelationManagers\ServersRelationMan use App\Filament\Admin\Resources\EggResource\Pages\ListEggs; use App\Filament\Admin\Resources\EggResource\Pages\CreateEgg; use App\Filament\Admin\Resources\EggResource\Pages\EditEgg; -use App\Filament\Admin\Resources\EggResource\Pages; -use App\Filament\Admin\Resources\EggResource\RelationManagers; use App\Models\Egg; use App\Traits\Filament\CanCustomizePages; use App\Traits\Filament\CanCustomizeRelations; @@ -22,7 +20,7 @@ class EggResource extends Resource protected static ?string $model = Egg::class; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-eggs'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-eggs'; protected static ?string $recordTitleAttribute = 'name'; diff --git a/app/Filament/Admin/Resources/MountResource.php b/app/Filament/Admin/Resources/MountResource.php index 91e2ce3c3..9e07201de 100644 --- a/app/Filament/Admin/Resources/MountResource.php +++ b/app/Filament/Admin/Resources/MountResource.php @@ -7,7 +7,6 @@ use App\Filament\Admin\Resources\MountResource\Pages\CreateMount; use App\Filament\Admin\Resources\MountResource\Pages\ViewMount; use App\Filament\Admin\Resources\MountResource\Pages\EditMount; use Exception; -use App\Filament\Admin\Resources\MountResource\Pages; use App\Models\Mount; use App\Traits\Filament\CanCustomizePages; use App\Traits\Filament\CanCustomizeRelations; @@ -39,7 +38,7 @@ class MountResource extends Resource protected static ?string $model = Mount::class; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-layers-linked'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-layers-linked'; protected static ?string $recordTitleAttribute = 'name'; @@ -115,7 +114,7 @@ class MountResource extends Resource /** * @throws Exception */ - public static function form(Schema $schema): Schema + public static function defaultForm(Schema $schema): Schema { return $schema ->components([ diff --git a/app/Filament/Admin/Resources/NodeResource.php b/app/Filament/Admin/Resources/NodeResource.php index 565681009..f048261d4 100644 --- a/app/Filament/Admin/Resources/NodeResource.php +++ b/app/Filament/Admin/Resources/NodeResource.php @@ -7,8 +7,6 @@ use App\Filament\Admin\Resources\NodeResource\RelationManagers\NodesRelationMana use App\Filament\Admin\Resources\NodeResource\Pages\ListNodes; use App\Filament\Admin\Resources\NodeResource\Pages\CreateNode; use App\Filament\Admin\Resources\NodeResource\Pages\EditNode; -use App\Filament\Admin\Resources\NodeResource\Pages; -use App\Filament\Admin\Resources\NodeResource\RelationManagers; use App\Models\Node; use App\Traits\Filament\CanCustomizePages; use App\Traits\Filament\CanCustomizeRelations; @@ -24,7 +22,7 @@ class NodeResource extends Resource protected static ?string $model = Node::class; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-server-2'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-server-2'; protected static ?string $recordTitleAttribute = 'name'; diff --git a/app/Filament/Admin/Resources/NodeResource/Pages/EditNode.php b/app/Filament/Admin/Resources/NodeResource/Pages/EditNode.php index 577746f3f..3c8e83c5d 100644 --- a/app/Filament/Admin/Resources/NodeResource/Pages/EditNode.php +++ b/app/Filament/Admin/Resources/NodeResource/Pages/EditNode.php @@ -2,6 +2,10 @@ namespace App\Filament\Admin\Resources\NodeResource\Pages; +use Filament\Actions\Action; +use Filament\Actions\DeleteAction; +use Filament\Schemas\Components\Actions; +use Filament\Schemas\Components\Grid; use Throwable; use App\Filament\Admin\Resources\NodeResource; use App\Models\Node; @@ -12,7 +16,6 @@ use App\Services\Nodes\NodeUpdateService; use App\Traits\Filament\CanCustomizeHeaderActions; use App\Traits\Filament\CanCustomizeHeaderWidgets; use Exception; -use Filament\Actions; use Filament\Forms\Components\Hidden; use Filament\Forms\Components\TagsInput; use Filament\Forms\Components\Textarea; @@ -20,7 +23,6 @@ use Filament\Forms\Components\TextInput; use Filament\Forms\Components\ToggleButtons; use Filament\Infolists\Components\TextEntry; use Filament\Schemas\Components\Fieldset; -use Filament\Schemas\Components\Form; use Filament\Schemas\Components\Tabs; use Filament\Schemas\Components\Tabs\Tab; use Filament\Schemas\Components\Utilities\Get; @@ -592,7 +594,7 @@ class EditNode extends EditRecord //TODO ->hintAction(fn (string $state) => request()->isSecure() ? CopyAction::make()->copyable($state) : null) ->formatStateUsing(fn (NodeAutoDeployService $service, Node $node, Set $set, Get $get) => $set('generatedToken', $service->handle(request(), $node, $get('docker')))), ]) - ->mountUsing(function (Form|Schema $schema) { + ->mountUsing(function (Schema $schema) { $schema->fill(); }), ])->fullWidth(), @@ -650,7 +652,7 @@ class EditNode extends EditRecord return []; } - /** @return array */ + /** @return array */ protected function getDefaultHeaderActions(): array { return [ diff --git a/app/Filament/Admin/Resources/NodeResource/RelationManagers/AllocationsRelationManager.php b/app/Filament/Admin/Resources/NodeResource/RelationManagers/AllocationsRelationManager.php index 80e04e2ba..84cc9f032 100644 --- a/app/Filament/Admin/Resources/NodeResource/RelationManagers/AllocationsRelationManager.php +++ b/app/Filament/Admin/Resources/NodeResource/RelationManagers/AllocationsRelationManager.php @@ -27,7 +27,7 @@ class AllocationsRelationManager extends RelationManager { protected static string $relationship = 'allocations'; - protected static string | \BackedEnum | null $icon = 'tabler-plug-connected'; + protected static string|\BackedEnum|null $icon = 'tabler-plug-connected'; public function setTitle(): string { diff --git a/app/Filament/Admin/Resources/NodeResource/RelationManagers/NodesRelationManager.php b/app/Filament/Admin/Resources/NodeResource/RelationManagers/NodesRelationManager.php index f851a1215..75bf98626 100644 --- a/app/Filament/Admin/Resources/NodeResource/RelationManagers/NodesRelationManager.php +++ b/app/Filament/Admin/Resources/NodeResource/RelationManagers/NodesRelationManager.php @@ -12,7 +12,7 @@ class NodesRelationManager extends RelationManager { protected static string $relationship = 'servers'; - protected static string | \BackedEnum | null $icon = 'tabler-brand-docker'; + protected static string|\BackedEnum|null $icon = 'tabler-brand-docker'; public function setTitle(): string { diff --git a/app/Filament/Admin/Resources/RoleResource.php b/app/Filament/Admin/Resources/RoleResource.php index 6dd75b2a7..8f8fca0c4 100644 --- a/app/Filament/Admin/Resources/RoleResource.php +++ b/app/Filament/Admin/Resources/RoleResource.php @@ -7,7 +7,6 @@ use App\Filament\Admin\Resources\RoleResource\Pages\CreateRole; use App\Filament\Admin\Resources\RoleResource\Pages\ViewRole; use App\Filament\Admin\Resources\RoleResource\Pages\EditRole; use BackedEnum; -use App\Filament\Admin\Resources\RoleResource\Pages; use App\Models\Role; use Exception; use Filament\Actions\Action; @@ -44,7 +43,7 @@ class RoleResource extends Resource protected static ?string $model = Role::class; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-users-group'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-users-group'; protected static ?string $recordTitleAttribute = 'name'; @@ -118,7 +117,7 @@ class RoleResource extends Resource /** * @throws Exception */ - public static function form(Schema $schema): Schema + public static function defaultForm(Schema $schema): Schema { $permissionSections = []; @@ -164,7 +163,7 @@ class RoleResource extends Resource } /** - * @param string[]|int[]|Permission[]|BackedEnum[] $options + * @param string[]|int[]|Permission[]|BackedEnum[] $options * * @throws Exception */ diff --git a/app/Filament/Admin/Resources/ServerResource.php b/app/Filament/Admin/Resources/ServerResource.php index c8a93b567..954969648 100644 --- a/app/Filament/Admin/Resources/ServerResource.php +++ b/app/Filament/Admin/Resources/ServerResource.php @@ -7,8 +7,6 @@ use App\Filament\Admin\Resources\ServerResource\Pages\ListServers; use App\Filament\Admin\Resources\ServerResource\Pages\CreateServer; use App\Filament\Admin\Resources\ServerResource\Pages\EditServer; use Exception; -use App\Filament\Admin\Resources\ServerResource\Pages; -use App\Filament\Admin\Resources\ServerResource\RelationManagers; use App\Models\Mount; use App\Models\Server; use App\Traits\Filament\CanCustomizePages; @@ -27,7 +25,7 @@ class ServerResource extends Resource protected static ?string $model = Server::class; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-brand-docker'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-brand-docker'; protected static ?string $recordTitleAttribute = 'name'; diff --git a/app/Filament/Admin/Resources/ServerResource/Pages/EditServer.php b/app/Filament/Admin/Resources/ServerResource/Pages/EditServer.php index 926c4717e..f5e3c6eee 100644 --- a/app/Filament/Admin/Resources/ServerResource/Pages/EditServer.php +++ b/app/Filament/Admin/Resources/ServerResource/Pages/EditServer.php @@ -2,9 +2,9 @@ namespace App\Filament\Admin\Resources\ServerResource\Pages; -use AbdelhamidErrahmouni\FilamentMonacoEditor\MonacoEditor; use App\Enums\SuspendAction; use App\Filament\Admin\Resources\ServerResource; +use App\Filament\Admin\Resources\ServerResource\RelationManagers\AllocationsRelationManager; use App\Filament\Components\Forms\Actions\PreviewStartupAction; use App\Filament\Components\Forms\Actions\RotateDatabasePasswordAction; use App\Filament\Server\Pages\Console; @@ -30,6 +30,7 @@ use App\Traits\Filament\CanCustomizeHeaderWidgets; use Closure; use Exception; use Filament\Actions\Action; +use Filament\Forms\Components\CodeEditor; use Filament\Schemas\Components\Actions; use Filament\Schemas\Components\Component; use Filament\Schemas\Components\Fieldset; @@ -164,9 +165,8 @@ class EditServer extends EditRecord ->modalFooterActionsAlignment(Alignment::Right) ->modalCancelActionLabel(trans('filament::components/modal.actions.close.label')) ->schema([ - MonacoEditor::make('logs') + CodeEditor::make('logs') ->hiddenLabel() - ->placeholderText(trans('admin/server.no_log')) ->formatStateUsing(function (Server $server, DaemonServerRepository $serverRepository) { try { return $serverRepository->setServer($server)->getInstallLogs(); diff --git a/app/Filament/Admin/Resources/UserResource.php b/app/Filament/Admin/Resources/UserResource.php index 64661dc25..0f2c07e81 100644 --- a/app/Filament/Admin/Resources/UserResource.php +++ b/app/Filament/Admin/Resources/UserResource.php @@ -7,8 +7,6 @@ use App\Filament\Admin\Resources\UserResource\Pages\ListUsers; use App\Filament\Admin\Resources\UserResource\Pages\CreateUser; use App\Filament\Admin\Resources\UserResource\Pages\ViewUser; use App\Filament\Admin\Resources\UserResource\Pages\EditUser; -use App\Filament\Admin\Resources\UserResource\Pages; -use App\Filament\Admin\Resources\UserResource\RelationManagers; use App\Models\Role; use App\Models\User; use App\Traits\Filament\CanCustomizePages; @@ -38,7 +36,7 @@ class UserResource extends Resource protected static ?string $model = User::class; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-users'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-users'; protected static ?string $recordTitleAttribute = 'username'; @@ -115,7 +113,7 @@ class UserResource extends Resource ]); } - public static function form(Schema $schema): Schema + public static function defaultForm(Schema $schema): Schema { return $schema ->columns(['default' => 1, 'lg' => 3]) diff --git a/app/Filament/Admin/Resources/WebhookResource.php b/app/Filament/Admin/Resources/WebhookResource.php index 2affcd763..5a3a88bfa 100644 --- a/app/Filament/Admin/Resources/WebhookResource.php +++ b/app/Filament/Admin/Resources/WebhookResource.php @@ -6,7 +6,6 @@ use App\Filament\Admin\Resources\WebhookResource\Pages\ListWebhookConfigurations use App\Filament\Admin\Resources\WebhookResource\Pages\CreateWebhookConfiguration; use App\Filament\Admin\Resources\WebhookResource\Pages\ViewWebhookConfiguration; use App\Filament\Admin\Resources\WebhookResource\Pages\EditWebhookConfiguration; -use App\Filament\Admin\Resources\WebhookResource\Pages; use App\Models\WebhookConfiguration; use Filament\Actions\CreateAction; use Filament\Actions\DeleteBulkAction; @@ -34,7 +33,7 @@ class WebhookResource extends Resource protected static ?string $model = WebhookConfiguration::class; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-webhook'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-webhook'; protected static ?string $recordTitleAttribute = 'description'; @@ -89,7 +88,7 @@ class WebhookResource extends Resource ]); } - public static function form(Schema $schema): Schema + public static function defaultForm(Schema $schema): Schema { return $schema ->components([ diff --git a/app/Filament/App/Resources/ServerResource.php b/app/Filament/App/Resources/ServerResource.php index ab88447b3..809cc642b 100644 --- a/app/Filament/App/Resources/ServerResource.php +++ b/app/Filament/App/Resources/ServerResource.php @@ -3,7 +3,6 @@ namespace App\Filament\App\Resources; use App\Filament\App\Resources\ServerResource\Pages\ListServers; -use App\Filament\App\Resources\ServerResource\Pages; use App\Models\Server; use Filament\Resources\Resource; diff --git a/app/Filament/Server/Components/SmallStatBlock.php b/app/Filament/Server/Components/SmallStatBlock.php index 9442e1720..0d15534cb 100644 --- a/app/Filament/Server/Components/SmallStatBlock.php +++ b/app/Filament/Server/Components/SmallStatBlock.php @@ -3,11 +3,11 @@ namespace App\Filament\Server\Components; use Closure; -use Filament\Schemas\Components\Component; use Filament\Support\Concerns\EvaluatesClosures; +use Filament\Widgets\StatsOverviewWidget\Stat; use Illuminate\Contracts\View\View; -class SmallStatBlock extends Component +class SmallStatBlock extends Stat { use EvaluatesClosures; @@ -16,9 +16,9 @@ class SmallStatBlock extends Component public function copyOnClick(bool|Closure $copyOnClick = true): static { $this->copyOnClick = $copyOnClick; - } - protected string $value; + return $this; + } public function shouldCopyOnClick(): bool { @@ -27,6 +27,6 @@ class SmallStatBlock extends Component public function render(): View { - return value($this->value); + return view('filament.components.server-small-data-block', $this->data()); } } diff --git a/app/Filament/Server/Pages/Settings.php b/app/Filament/Server/Pages/Settings.php index f350c33f1..d2b9d79be 100644 --- a/app/Filament/Server/Pages/Settings.php +++ b/app/Filament/Server/Pages/Settings.php @@ -20,7 +20,7 @@ use Illuminate\Support\Number; class Settings extends ServerFormPage { - protected static string | \BackedEnum | null $navigationIcon = 'tabler-settings'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-settings'; protected static ?int $navigationSort = 10; diff --git a/app/Filament/Server/Pages/Startup.php b/app/Filament/Server/Pages/Startup.php index 282aa9c94..7207029df 100644 --- a/app/Filament/Server/Pages/Startup.php +++ b/app/Filament/Server/Pages/Startup.php @@ -24,7 +24,7 @@ use Illuminate\Support\Facades\Validator; class Startup extends ServerFormPage { - protected static string | \BackedEnum | null $navigationIcon = 'tabler-player-play'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-player-play'; protected static ?int $navigationSort = 9; diff --git a/app/Filament/Server/Resources/ActivityResource.php b/app/Filament/Server/Resources/ActivityResource.php index 9e31c8ae9..d5ba5d156 100644 --- a/app/Filament/Server/Resources/ActivityResource.php +++ b/app/Filament/Server/Resources/ActivityResource.php @@ -6,7 +6,6 @@ use App\Filament\Server\Resources\ActivityResource\Pages\ListActivities; use Exception; use App\Filament\Admin\Resources\UserResource\Pages\EditUser; use App\Filament\Components\Tables\Columns\DateTimeColumn; -use App\Filament\Server\Resources\ActivityResource\Pages; use App\Models\ActivityLog; use App\Models\Permission; use App\Models\Role; @@ -46,7 +45,7 @@ class ActivityResource extends Resource protected static ?int $navigationSort = 8; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-stack'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-stack'; protected static bool $isScopedToTenant = false; diff --git a/app/Filament/Server/Resources/AllocationResource.php b/app/Filament/Server/Resources/AllocationResource.php index 96a349f31..43b0f9c9a 100644 --- a/app/Filament/Server/Resources/AllocationResource.php +++ b/app/Filament/Server/Resources/AllocationResource.php @@ -4,7 +4,6 @@ namespace App\Filament\Server\Resources; use App\Filament\Server\Resources\AllocationResource\Pages\ListAllocations; use App\Facades\Activity; -use App\Filament\Server\Resources\AllocationResource\Pages; use App\Models\Allocation; use App\Models\Permission; use App\Models\Server; @@ -38,7 +37,7 @@ class AllocationResource extends Resource protected static ?int $navigationSort = 7; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-network'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-network'; /** * @throws Exception diff --git a/app/Filament/Server/Resources/BackupResource.php b/app/Filament/Server/Resources/BackupResource.php index 660f148ef..95c44b852 100644 --- a/app/Filament/Server/Resources/BackupResource.php +++ b/app/Filament/Server/Resources/BackupResource.php @@ -6,7 +6,6 @@ use App\Filament\Server\Resources\BackupResource\Pages\ListBackups; use App\Enums\BackupStatus; use App\Enums\ServerState; use App\Facades\Activity; -use App\Filament\Server\Resources\BackupResource\Pages; use App\Http\Controllers\Api\Client\Servers\BackupController; use App\Models\Backup; use App\Models\Permission; @@ -56,7 +55,7 @@ class BackupResource extends Resource protected static ?int $navigationSort = 3; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-file-zip'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-file-zip'; protected static bool $canCreateAnother = false; @@ -78,7 +77,7 @@ class BackupResource extends Resource public static function defaultForm(Schema $schema): Schema { - return $form + return $schema ->schema([ TextInput::make('name') ->label('Name') diff --git a/app/Filament/Server/Resources/DatabaseResource.php b/app/Filament/Server/Resources/DatabaseResource.php index b4f75af10..1c7975586 100644 --- a/app/Filament/Server/Resources/DatabaseResource.php +++ b/app/Filament/Server/Resources/DatabaseResource.php @@ -5,7 +5,6 @@ namespace App\Filament\Server\Resources; use App\Filament\Server\Resources\DatabaseResource\Pages\ListDatabases; use App\Filament\Components\Forms\Actions\RotateDatabasePasswordAction; use App\Filament\Components\Tables\Columns\DateTimeColumn; -use App\Filament\Server\Resources\DatabaseResource\Pages; use App\Models\Database; use App\Models\Permission; use App\Models\Server; @@ -41,7 +40,7 @@ class DatabaseResource extends Resource protected static ?int $navigationSort = 6; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-database'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-database'; protected static function getBadgeCount(): int { diff --git a/app/Filament/Server/Resources/FileResource.php b/app/Filament/Server/Resources/FileResource.php index 740df9fee..a382f08fb 100644 --- a/app/Filament/Server/Resources/FileResource.php +++ b/app/Filament/Server/Resources/FileResource.php @@ -6,7 +6,6 @@ use App\Filament\Server\Resources\FileResource\Pages\EditFiles; use App\Filament\Server\Resources\FileResource\Pages\SearchFiles; use App\Filament\Server\Resources\FileResource\Pages\DownloadFiles; use App\Filament\Server\Resources\FileResource\Pages\ListFiles; -use App\Filament\Server\Resources\FileResource\Pages; use App\Models\File; use App\Models\Permission; use App\Traits\Filament\BlockAccessInConflict; @@ -27,7 +26,7 @@ class FileResource extends Resource protected static ?int $navigationSort = 2; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-files'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-files'; protected static bool $isScopedToTenant = false; diff --git a/app/Filament/Server/Resources/ScheduleResource.php b/app/Filament/Server/Resources/ScheduleResource.php index 82abef45b..6eeda7156 100644 --- a/app/Filament/Server/Resources/ScheduleResource.php +++ b/app/Filament/Server/Resources/ScheduleResource.php @@ -8,7 +8,6 @@ use App\Filament\Server\Resources\ScheduleResource\Pages\ViewSchedule; use App\Filament\Server\Resources\ScheduleResource\Pages\EditSchedule; use App\Facades\Activity; use App\Filament\Components\Tables\Columns\DateTimeColumn; -use App\Filament\Server\Resources\ScheduleResource\Pages; use App\Filament\Server\Resources\ScheduleResource\RelationManagers\TasksRelationManager; use App\Helpers\Utilities; use App\Models\Permission; @@ -57,7 +56,7 @@ class ScheduleResource extends Resource protected static ?int $navigationSort = 4; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-clock'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-clock'; public static function canViewAny(): bool { @@ -82,7 +81,7 @@ class ScheduleResource extends Resource /** * @throws Exception */ - public static function form(Schema $schema): Schema + public static function defaultForm(Schema $schema): Schema { return $schema ->columns([ diff --git a/app/Filament/Server/Resources/UserResource.php b/app/Filament/Server/Resources/UserResource.php index 04a820c1c..510b4654a 100644 --- a/app/Filament/Server/Resources/UserResource.php +++ b/app/Filament/Server/Resources/UserResource.php @@ -3,7 +3,6 @@ namespace App\Filament\Server\Resources; use App\Filament\Server\Resources\UserResource\Pages\ListUsers; -use App\Filament\Server\Resources\UserResource\Pages; use App\Models\Permission; use App\Models\Server; use App\Models\User; @@ -46,7 +45,7 @@ class UserResource extends Resource protected static ?int $navigationSort = 5; - protected static string | \BackedEnum | null $navigationIcon = 'tabler-users'; + protected static string|\BackedEnum|null $navigationIcon = 'tabler-users'; protected static ?string $tenantOwnershipRelationshipName = 'subServers'; diff --git a/app/Livewire/AlertBanner.php b/app/Livewire/AlertBanner.php index ceb0f8674..1078310a7 100644 --- a/app/Livewire/AlertBanner.php +++ b/app/Livewire/AlertBanner.php @@ -8,19 +8,18 @@ use Filament\Notifications\Concerns\HasId; use Filament\Notifications\Concerns\HasStatus; use Filament\Notifications\Concerns\HasTitle; use Closure; -use Filament\Notifications\Concerns; use Filament\Support\Concerns\EvaluatesClosures; use Illuminate\Support\Str; use Livewire\Wireable; final class AlertBanner implements Wireable { + use EvaluatesClosures; use HasBody; use HasIcon; use HasId; use HasStatus; use HasTitle; - use EvaluatesClosures; protected bool|Closure $closable = false; diff --git a/app/Livewire/Installer/Steps/QueueStep.php b/app/Livewire/Installer/Steps/QueueStep.php index c4ea84133..7fb183285 100644 --- a/app/Livewire/Installer/Steps/QueueStep.php +++ b/app/Livewire/Installer/Steps/QueueStep.php @@ -2,6 +2,7 @@ namespace App\Livewire\Installer\Steps; +use Exception; use Filament\Schemas\Components\Wizard\Step; use App\Livewire\Installer\PanelInstaller; use Filament\Forms\Components\TextInput; @@ -9,7 +10,6 @@ use Filament\Forms\Components\Toggle; use Filament\Forms\Components\ToggleButtons; use Filament\Schemas\Components\Utilities\Get; use Illuminate\Support\HtmlString; -use Webbingbrasil\FilamentCopyActions\Forms\Actions\CopyAction; class QueueStep { @@ -19,6 +19,9 @@ class QueueStep 'sync' => 'Sync', ]; + /** + * @throws Exception + */ public static function make(PanelInstaller $installer): Step { return Step::make('queue') @@ -45,14 +48,14 @@ class QueueStep TextInput::make('crontab') ->label(new HtmlString('Run the following command to set up your crontab. Note that www-data is your webserver user. On some systems this username might be different!')) ->disabled() - ->hintAction(fn () => request()->isSecure() ? CopyAction::make() : null) + //TODO ->hintAction(fn () => request()->isSecure() ? CopyAction::make() : null) ->default('(crontab -l -u www-data 2>/dev/null; echo "* * * * * php ' . base_path() . '/artisan schedule:run >> /dev/null 2>&1") | crontab -u www-data -') ->hidden(fn () => @file_exists('/.dockerenv')) ->columnSpanFull(), TextInput::make('queueService') ->label(new HtmlString('To setup the queue worker service you simply have to run the following command.')) ->disabled() - ->hintAction(fn () => request()->isSecure() ? CopyAction::make() : null) + //TODO ->hintAction(fn () => request()->isSecure() ? CopyAction::make() : null) ->default('sudo php ' . base_path() . '/artisan p:environment:queue-service') ->hidden(fn () => @file_exists('/.dockerenv')) ->columnSpanFull(), diff --git a/app/Models/Backup.php b/app/Models/Backup.php index dbf61be98..8c9e0a6d2 100644 --- a/app/Models/Backup.php +++ b/app/Models/Backup.php @@ -97,7 +97,7 @@ class Backup extends Model implements Validatable } /** - * @param Builder $query + * @param Builder $query * @return BackupQueryBuilder */ public function newEloquentBuilder($query): BackupQueryBuilder diff --git a/app/Models/User.php b/app/Models/User.php index 51bae047f..37e42dc15 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -347,7 +347,7 @@ class User extends Model implements AuthenticatableContract, AuthorizableContrac * this checks if the ability is one of our permissions and then checks if the user can do it or not * Otherwise it calls the Authorizable trait's parent method * - * @param iterable|BackedEnum|string $abilities + * @param iterable|BackedEnum|string $abilities * @param array|mixed $arguments */ public function can($abilities, mixed $arguments = []): bool diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index fdb6ce1e3..a5531954f 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -25,7 +25,6 @@ use App\Checks\UsedDiskSpaceCheck; use App\Extensions\Avatar\Providers\GravatarProvider; use App\Extensions\Avatar\Providers\UiAvatarsProvider; use App\Extensions\OAuth\Providers\GitlabProvider; -use App\Models; use App\Extensions\Captcha\Providers\TurnstileProvider; use App\Extensions\Features\GSLToken; use App\Extensions\Features\JavaVersion; diff --git a/app/Rules/Port.php b/app/Rules/Port.php index 334a4dfa7..41a3a8c4e 100644 --- a/app/Rules/Port.php +++ b/app/Rules/Port.php @@ -11,7 +11,7 @@ class Port implements ValidationRule /** * Run the validation rule. * - * @param Closure(string):PotentiallyTranslatedString $fail + * @param Closure(string):PotentiallyTranslatedString $fail */ public function validate(string $attribute, mixed $value, Closure $fail): void { diff --git a/app/Traits/Filament/CanModifyForm.php b/app/Traits/Filament/CanModifyForm.php index 6fe7e5d4d..3f8b33f00 100644 --- a/app/Traits/Filament/CanModifyForm.php +++ b/app/Traits/Filament/CanModifyForm.php @@ -15,12 +15,12 @@ trait CanModifyForm static::$customFormModifications[] = $closure; } - public static function defaultForm(Schema $schema): Schema + public static function form(Schema $schema): Schema { return $schema; } - public static function form(Schema $schema): Schema + public static function defaultForm(Schema $schema): Schema { $schema = static::defaultForm($schema); diff --git a/app/Traits/Services/ValidatesValidationRules.php b/app/Traits/Services/ValidatesValidationRules.php index d18a3e3dc..cd5df781d 100644 --- a/app/Traits/Services/ValidatesValidationRules.php +++ b/app/Traits/Services/ValidatesValidationRules.php @@ -15,7 +15,7 @@ trait ValidatesValidationRules /** * Validate that the rules being provided are valid and can be resolved. * - * @param string[]|string|ValidationRule[] $rules + * @param string[]|string|ValidationRule[] $rules * * @throws BadValidationRuleException */