Disaster Recovery v4

This commit is contained in:
Charles 2025-06-23 09:17:43 -04:00
parent ea19202609
commit 250d293edf
39 changed files with 76 additions and 93 deletions

View File

@ -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
{

View File

@ -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 <x-filament::link href="https://steamcommunity.com/dev/managegameservers" target="_blank">generate a new one</x-filament::link> and enter it below or leave the field blank to remove it completely.'))),
TextInput::make('gsltoken')
->label('GSL Token')

View File

@ -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());

View File

@ -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;

View File

@ -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';

View File

@ -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';

View File

@ -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()

View File

@ -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([

View File

@ -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([

View File

@ -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';

View File

@ -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([

View File

@ -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';

View File

@ -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<Actions\Action|Actions\ActionGroup> */
/** @return array<Action|Actions> */
protected function getDefaultHeaderActions(): array
{
return [

View File

@ -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
{

View File

@ -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
{

View File

@ -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
*/

View File

@ -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';

View File

@ -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();

View File

@ -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])

View File

@ -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([

View File

@ -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;

View File

@ -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());
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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')

View File

@ -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
{

View File

@ -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;

View File

@ -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([

View File

@ -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';

View File

@ -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;

View File

@ -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 <code>www-data</code> 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(),

View File

@ -97,7 +97,7 @@ class Backup extends Model implements Validatable
}
/**
* @param Builder $query
* @param Builder $query
* @return BackupQueryBuilder<Model>
*/
public function newEloquentBuilder($query): BackupQueryBuilder

View File

@ -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<string|BackedEnum>|BackedEnum|string $abilities
* @param iterable<string|BackedEnum>|BackedEnum|string $abilities
* @param array<mixed>|mixed $arguments
*/
public function can($abilities, mixed $arguments = []): bool

View File

@ -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;

View File

@ -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
{

View File

@ -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);

View File

@ -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
*/