From d2c7fecd55b49ab8128363c407f9a6b5d0a151b7 Mon Sep 17 00:00:00 2001 From: Leon Morival Date: Thu, 9 Jul 2026 14:32:44 +0200 Subject: [PATCH] feat: access and game server request --- .../AccessRequests/AccessRequestsResource.php | 58 +++++++++++++++++++ .../Pages/CreateAccessRequests.php | 11 ++++ .../Pages/EditAccessRequests.php | 21 +++++++ .../Pages/ListAccessRequests.php | 4 +- .../Pages/ViewAccessRequests.php | 19 ++++++ .../Schemas/AccessRequestsForm.php | 31 ++++++++++ .../Schemas/AccessRequestsInfolist.php | 35 +++++++++++ .../Tables/AccessRequestsTable.php | 57 ++++++++++++++++++ .../GameServers/GameServersResource.php | 58 +++++++++++++++++++ .../GameServers/Pages/CreateGameServers.php | 11 ++++ .../GameServers/Pages/EditGameServers.php | 21 +++++++ .../GameServers/Pages/ListGameServers.php | 19 ++++++ .../GameServers/Pages/ViewGameServers.php | 19 ++++++ .../GameServers/Schemas/GameServersForm.php | 20 +++++++ .../Schemas/GameServersInfolist.php | 26 +++++++++ .../GameServers/Tables/GameServersTable.php | 47 +++++++++++++++ app/Models/AccessRequests.php | 1 + 17 files changed, 456 insertions(+), 2 deletions(-) create mode 100644 app/Filament/Resources/AccessRequests/AccessRequestsResource.php create mode 100644 app/Filament/Resources/AccessRequests/Pages/CreateAccessRequests.php create mode 100644 app/Filament/Resources/AccessRequests/Pages/EditAccessRequests.php create mode 100644 app/Filament/Resources/AccessRequests/Pages/ViewAccessRequests.php create mode 100644 app/Filament/Resources/AccessRequests/Schemas/AccessRequestsForm.php create mode 100644 app/Filament/Resources/AccessRequests/Schemas/AccessRequestsInfolist.php create mode 100644 app/Filament/Resources/AccessRequests/Tables/AccessRequestsTable.php create mode 100644 app/Filament/Resources/GameServers/GameServersResource.php create mode 100644 app/Filament/Resources/GameServers/Pages/CreateGameServers.php create mode 100644 app/Filament/Resources/GameServers/Pages/EditGameServers.php create mode 100644 app/Filament/Resources/GameServers/Pages/ListGameServers.php create mode 100644 app/Filament/Resources/GameServers/Pages/ViewGameServers.php create mode 100644 app/Filament/Resources/GameServers/Schemas/GameServersForm.php create mode 100644 app/Filament/Resources/GameServers/Schemas/GameServersInfolist.php create mode 100644 app/Filament/Resources/GameServers/Tables/GameServersTable.php diff --git a/app/Filament/Resources/AccessRequests/AccessRequestsResource.php b/app/Filament/Resources/AccessRequests/AccessRequestsResource.php new file mode 100644 index 0000000..8e72de2 --- /dev/null +++ b/app/Filament/Resources/AccessRequests/AccessRequestsResource.php @@ -0,0 +1,58 @@ + ListAccessRequests::route('/'), + 'create' => CreateAccessRequests::route('/create'), + 'view' => ViewAccessRequests::route('/{record}'), + 'edit' => EditAccessRequests::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/AccessRequests/Pages/CreateAccessRequests.php b/app/Filament/Resources/AccessRequests/Pages/CreateAccessRequests.php new file mode 100644 index 0000000..4097591 --- /dev/null +++ b/app/Filament/Resources/AccessRequests/Pages/CreateAccessRequests.php @@ -0,0 +1,11 @@ +components([ + Select::make('status') + ->options(AccessRequestStatus::class) + ->required(), + TextInput::make('game_username') + ->required(), + TextInput::make('message') + ->required(), + + Select::make('server_id') + ->relationship('server', 'name') + ->required(), + DateTimePicker::make('reviewed_at'), + ]); + } +} diff --git a/app/Filament/Resources/AccessRequests/Schemas/AccessRequestsInfolist.php b/app/Filament/Resources/AccessRequests/Schemas/AccessRequestsInfolist.php new file mode 100644 index 0000000..0fe3e21 --- /dev/null +++ b/app/Filament/Resources/AccessRequests/Schemas/AccessRequestsInfolist.php @@ -0,0 +1,35 @@ +components([ + TextEntry::make('id') + ->label('ID'), + TextEntry::make('status') + ->badge(), + TextEntry::make('game_username'), + TextEntry::make('message'), + TextEntry::make('reviewed_by') + ->placeholder('-'), + TextEntry::make('server.name') + ->label('Server'), + TextEntry::make('reviewed_at') + ->dateTime() + ->placeholder('-'), + TextEntry::make('created_at') + ->dateTime() + ->placeholder('-'), + TextEntry::make('updated_at') + ->dateTime() + ->placeholder('-'), + ]); + } +} diff --git a/app/Filament/Resources/AccessRequests/Tables/AccessRequestsTable.php b/app/Filament/Resources/AccessRequests/Tables/AccessRequestsTable.php new file mode 100644 index 0000000..01e574d --- /dev/null +++ b/app/Filament/Resources/AccessRequests/Tables/AccessRequestsTable.php @@ -0,0 +1,57 @@ +columns([ + TextColumn::make('id') + ->label('ID') + ->searchable(), + TextColumn::make('status') + ->badge() + ->searchable(), + TextColumn::make('game_username') + ->searchable(), + TextColumn::make('message') + ->searchable(), + TextColumn::make('reviewed_by') + ->searchable(), + TextColumn::make('server.name') + ->searchable(), + TextColumn::make('reviewed_at') + ->dateTime() + ->sortable(), + TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->recordActions([ + ViewAction::make(), + EditAction::make(), + ]) + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), + ]), + ]); + } +} diff --git a/app/Filament/Resources/GameServers/GameServersResource.php b/app/Filament/Resources/GameServers/GameServersResource.php new file mode 100644 index 0000000..c4cda3c --- /dev/null +++ b/app/Filament/Resources/GameServers/GameServersResource.php @@ -0,0 +1,58 @@ + ListGameServers::route('/'), + 'create' => CreateGameServers::route('/create'), + 'view' => ViewGameServers::route('/{record}'), + 'edit' => EditGameServers::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/GameServers/Pages/CreateGameServers.php b/app/Filament/Resources/GameServers/Pages/CreateGameServers.php new file mode 100644 index 0000000..2bc8d3b --- /dev/null +++ b/app/Filament/Resources/GameServers/Pages/CreateGameServers.php @@ -0,0 +1,11 @@ +components([ + TextInput::make('name') + ->required(), + TextInput::make('slug') + ->required(), + ]); + } +} diff --git a/app/Filament/Resources/GameServers/Schemas/GameServersInfolist.php b/app/Filament/Resources/GameServers/Schemas/GameServersInfolist.php new file mode 100644 index 0000000..a74c625 --- /dev/null +++ b/app/Filament/Resources/GameServers/Schemas/GameServersInfolist.php @@ -0,0 +1,26 @@ +components([ + TextEntry::make('id') + ->label('ID'), + TextEntry::make('name'), + TextEntry::make('slug'), + TextEntry::make('created_at') + ->dateTime() + ->placeholder('-'), + TextEntry::make('updated_at') + ->dateTime() + ->placeholder('-'), + ]); + } +} diff --git a/app/Filament/Resources/GameServers/Tables/GameServersTable.php b/app/Filament/Resources/GameServers/Tables/GameServersTable.php new file mode 100644 index 0000000..dd4d60d --- /dev/null +++ b/app/Filament/Resources/GameServers/Tables/GameServersTable.php @@ -0,0 +1,47 @@ +columns([ + TextColumn::make('id') + ->label('ID') + ->searchable(), + TextColumn::make('name') + ->searchable(), + TextColumn::make('slug') + ->searchable(), + TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->recordActions([ + ViewAction::make(), + EditAction::make(), + ]) + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), + ]), + ]); + } +} diff --git a/app/Models/AccessRequests.php b/app/Models/AccessRequests.php index d350cc1..a0ca35e 100644 --- a/app/Models/AccessRequests.php +++ b/app/Models/AccessRequests.php @@ -16,6 +16,7 @@ class AccessRequests extends Model protected $keyType = 'string'; protected $fillable = [ + 'status', 'game_username', 'message', 'server_id',