Feat: Bringin Privacy to Filament v4, the managers and resources were built with filament v3

This commit is contained in:
2026-09-16 00:24:18 +03:00
parent 58d165acc3
commit c084eb47cb
12 changed files with 50 additions and 41 deletions
@@ -33,7 +33,7 @@ class CustomerErasureActionsExtension extends BaseExtension
->color('danger')
->requiresConfirmation()
->modalDescription('Opens a cancellable grace-period erasure request for this Customer account. No linked User\'s login is affected.')
->form([
->schema([
Checkbox::make('immediate')
->label('Erase immediately (skip the 30-day grace period)')
->helperText('Staff-only, for a formal legal request or regulator inquiry that genuinely requires urgency — not a routine deletion. Runs synchronously, cannot be cancelled once submitted.')
@@ -2,13 +2,15 @@
namespace Modules\Core\Privacy\Filament\Resources;
use Filament\Schemas\Schema;
use Filament\Actions\ViewAction;
use Filament\Actions\Action;
use Modules\Core\Privacy\Filament\Resources\DataErasureRequestResource\Pages\ListDataErasureRequests;
use Modules\Core\Privacy\Filament\Resources\DataErasureRequestResource\Pages\ViewDataErasureRequest;
use Filament\Forms\Components\KeyValue;
use Filament\Forms\Components\Placeholder;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables\Actions\Action;
use Filament\Tables\Actions\ViewAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
@@ -30,17 +32,17 @@ class DataErasureRequestResource extends Resource
{
protected static ?string $model = DataErasureRequest::class;
protected static ?string $navigationIcon = 'heroicon-o-shield-exclamation';
protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-shield-exclamation';
protected static ?string $navigationGroup = 'Privacy';
protected static string | \UnitEnum | null $navigationGroup = 'Privacy';
protected static ?string $modelLabel = 'Erasure Request';
protected static ?string $pluralModelLabel = 'Erasure Requests';
public static function form(Form $form): Form
public static function form(Schema $schema): Schema
{
return $form->schema([
return $schema->components([
Placeholder::make('subject')
->label('Subject')
->content(fn (DataErasureRequest $record) => sprintf(
@@ -139,7 +141,7 @@ class DataErasureRequestResource extends Resource
];
}),
])
->actions([
->recordActions([
ViewAction::make(),
Action::make('cancel')
->label('Cancel')
@@ -154,8 +156,8 @@ class DataErasureRequestResource extends Resource
public static function getPages(): array
{
return [
'index' => Pages\ListDataErasureRequests::route('/'),
'view' => Pages\ViewDataErasureRequest::route('/{record}'),
'index' => ListDataErasureRequests::route('/'),
'view' => ViewDataErasureRequest::route('/{record}'),
];
}
@@ -2,12 +2,14 @@
namespace Modules\Core\Privacy\Filament\Resources;
use Filament\Schemas\Schema;
use Filament\Actions\ViewAction;
use Filament\Actions\Action;
use Modules\Core\Privacy\Filament\Resources\DataExportRequestResource\Pages\ListDataExportRequests;
use Modules\Core\Privacy\Filament\Resources\DataExportRequestResource\Pages\ViewDataExportRequest;
use Filament\Forms\Components\Placeholder;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables\Actions\Action;
use Filament\Tables\Actions\ViewAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
@@ -25,17 +27,17 @@ class DataExportRequestResource extends Resource
{
protected static ?string $model = DataExportRequest::class;
protected static ?string $navigationIcon = 'heroicon-o-arrow-down-tray';
protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-arrow-down-tray';
protected static ?string $navigationGroup = 'Privacy';
protected static string | \UnitEnum | null $navigationGroup = 'Privacy';
protected static ?string $modelLabel = 'Export Request';
protected static ?string $pluralModelLabel = 'Export Requests';
public static function form(Form $form): Form
public static function form(Schema $schema): Schema
{
return $form->schema([
return $schema->components([
Placeholder::make('subject')
->label('Subject')
->content(fn (DataExportRequest $record) => sprintf(
@@ -100,7 +102,7 @@ class DataExportRequestResource extends Resource
ExportRequestStatus::Failed->value => 'Failed',
]),
])
->actions([
->recordActions([
ViewAction::make(),
Action::make('download')
->label('Download')
@@ -113,8 +115,8 @@ class DataExportRequestResource extends Resource
public static function getPages(): array
{
return [
'index' => Pages\ListDataExportRequests::route('/'),
'view' => Pages\ViewDataExportRequest::route('/{record}'),
'index' => ListDataExportRequests::route('/'),
'view' => ViewDataExportRequest::route('/{record}'),
];
}