diff --git a/app/Filament/Admin/Resources/ApiKeyResource.php b/app/Filament/Admin/Resources/ApiKeyResource.php index 5b95bf419..72756bc68 100644 --- a/app/Filament/Admin/Resources/ApiKeyResource.php +++ b/app/Filament/Admin/Resources/ApiKeyResource.php @@ -8,6 +8,7 @@ use App\Filament\Components\Tables\Columns\DateTimeColumn; use App\Models\ApiKey; use App\Traits\Filament\CanCustomizePages; use App\Traits\Filament\CanCustomizeRelations; +use App\Traits\Filament\CanModifyForm; use App\Traits\Filament\CanModifyTable; use Filament\Forms\Components\Fieldset; use Filament\Forms\Components\TagsInput; @@ -25,6 +26,7 @@ class ApiKeyResource extends Resource { use CanCustomizePages; use CanCustomizeRelations; + use CanModifyForm; use CanModifyTable; protected static ?string $model = ApiKey::class; @@ -99,7 +101,7 @@ class ApiKeyResource extends Resource ]); } - public static function form(Form $form): Form + public static function defaultForm(Form $form): Form { return $form ->schema([ diff --git a/app/Filament/Admin/Resources/DatabaseHostResource.php b/app/Filament/Admin/Resources/DatabaseHostResource.php index 1d69cb902..104e88890 100644 --- a/app/Filament/Admin/Resources/DatabaseHostResource.php +++ b/app/Filament/Admin/Resources/DatabaseHostResource.php @@ -7,6 +7,7 @@ use App\Filament\Admin\Resources\DatabaseHostResource\RelationManagers; use App\Models\DatabaseHost; use App\Traits\Filament\CanCustomizePages; use App\Traits\Filament\CanCustomizeRelations; +use App\Traits\Filament\CanModifyForm; use App\Traits\Filament\CanModifyTable; use Filament\Forms\Components\Section; use Filament\Forms\Components\Select; @@ -26,6 +27,7 @@ class DatabaseHostResource extends Resource { use CanCustomizePages; use CanCustomizeRelations; + use CanModifyForm; use CanModifyTable; protected static ?string $model = DatabaseHost::class; @@ -97,7 +99,7 @@ class DatabaseHostResource extends Resource ]); } - public static function form(Form $form): Form + public static function defaultForm(Form $form): Form { return $form ->schema([ diff --git a/app/Filament/Admin/Resources/MountResource.php b/app/Filament/Admin/Resources/MountResource.php index ec4bef17e..b0756f2b4 100644 --- a/app/Filament/Admin/Resources/MountResource.php +++ b/app/Filament/Admin/Resources/MountResource.php @@ -6,6 +6,7 @@ use App\Filament\Admin\Resources\MountResource\Pages; use App\Models\Mount; use App\Traits\Filament\CanCustomizePages; use App\Traits\Filament\CanCustomizeRelations; +use App\Traits\Filament\CanModifyForm; use App\Traits\Filament\CanModifyTable; use Filament\Forms\Components\Group; use Filament\Forms\Components\Section; @@ -27,6 +28,7 @@ class MountResource extends Resource { use CanCustomizePages; use CanCustomizeRelations; + use CanModifyForm; use CanModifyTable; protected static ?string $model = Mount::class; @@ -101,7 +103,7 @@ class MountResource extends Resource ]); } - public static function form(Form $form): Form + public static function defaultForm(Form $form): Form { return $form ->schema([ diff --git a/app/Filament/Admin/Resources/RoleResource.php b/app/Filament/Admin/Resources/RoleResource.php index 8c2f20147..2e759f5d5 100644 --- a/app/Filament/Admin/Resources/RoleResource.php +++ b/app/Filament/Admin/Resources/RoleResource.php @@ -6,6 +6,7 @@ use App\Filament\Admin\Resources\RoleResource\Pages; use App\Models\Role; use App\Traits\Filament\CanCustomizePages; use App\Traits\Filament\CanCustomizeRelations; +use App\Traits\Filament\CanModifyForm; use App\Traits\Filament\CanModifyTable; use Filament\Forms\Components\Actions\Action; use Filament\Forms\Components\CheckboxList; @@ -31,6 +32,7 @@ class RoleResource extends Resource { use CanCustomizePages; use CanCustomizeRelations; + use CanModifyForm; use CanModifyTable; protected static ?string $model = Role::class; @@ -104,7 +106,7 @@ class RoleResource extends Resource ]); } - public static function form(Form $form): Form + public static function defaultForm(Form $form): Form { $permissionSections = []; diff --git a/app/Filament/Admin/Resources/UserResource.php b/app/Filament/Admin/Resources/UserResource.php index b2bc29d92..9a7322e25 100644 --- a/app/Filament/Admin/Resources/UserResource.php +++ b/app/Filament/Admin/Resources/UserResource.php @@ -8,6 +8,7 @@ use App\Models\Role; use App\Models\User; use App\Traits\Filament\CanCustomizePages; use App\Traits\Filament\CanCustomizeRelations; +use App\Traits\Filament\CanModifyForm; use App\Traits\Filament\CanModifyTable; use Filament\Facades\Filament; use Filament\Forms\Components\CheckboxList; @@ -27,6 +28,7 @@ class UserResource extends Resource { use CanCustomizePages; use CanCustomizeRelations; + use CanModifyForm; use CanModifyTable; protected static ?string $model = User::class; @@ -106,7 +108,7 @@ class UserResource extends Resource ]); } - public static function form(Form $form): Form + public static function defaultForm(Form $form): Form { return $form ->columns(['default' => 1, 'lg' => 3]) diff --git a/app/Filament/Admin/Resources/WebhookResource.php b/app/Filament/Admin/Resources/WebhookResource.php index fafc3c4e9..99045e00b 100644 --- a/app/Filament/Admin/Resources/WebhookResource.php +++ b/app/Filament/Admin/Resources/WebhookResource.php @@ -6,6 +6,7 @@ use App\Filament\Admin\Resources\WebhookResource\Pages; use App\Models\WebhookConfiguration; use App\Traits\Filament\CanCustomizePages; use App\Traits\Filament\CanCustomizeRelations; +use App\Traits\Filament\CanModifyForm; use App\Traits\Filament\CanModifyTable; use Filament\Forms\Components\CheckboxList; use Filament\Forms\Components\TextInput; @@ -23,6 +24,7 @@ class WebhookResource extends Resource { use CanCustomizePages; use CanCustomizeRelations; + use CanModifyForm; use CanModifyTable; protected static ?string $model = WebhookConfiguration::class; @@ -82,7 +84,7 @@ class WebhookResource extends Resource ]); } - public static function form(Form $form): Form + public static function defaultForm(Form $form): Form { return $form ->schema([ diff --git a/app/Traits/Filament/CanModifyForm.php b/app/Traits/Filament/CanModifyForm.php new file mode 100644 index 000000000..57f1a7db7 --- /dev/null +++ b/app/Traits/Filament/CanModifyForm.php @@ -0,0 +1,33 @@ + */ + protected static array $customFormModifications = []; + + public static function modifyForm(Closure $closure): void + { + static::$customFormModifications[] = $closure; + } + + public static function defaultForm(Form $form): Form + { + return $form; + } + + public static function form(Form $form): Form + { + $form = static::defaultForm($form); + + foreach (static::$customFormModifications as $closure) { + $form = $closure($form); + } + + return $form; + } +}