From dfaff50ca14cd26b37530969ff6990f4b02ebe9c Mon Sep 17 00:00:00 2001 From: Lance Pioch Date: Sun, 21 Apr 2024 15:57:15 -0400 Subject: [PATCH] Fix egg variable saving --- app/Filament/Resources/EggResource.php | 24 +++++++++++++++++++----- app/Models/EggVariable.php | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/app/Filament/Resources/EggResource.php b/app/Filament/Resources/EggResource.php index 62e105cc0..7c5ce79a1 100644 --- a/app/Filament/Resources/EggResource.php +++ b/app/Filament/Resources/EggResource.php @@ -77,23 +77,37 @@ class EggResource extends Resource ->label('Log Configuration') ->helperText('This should be a JSON representation of where log files are stored, and whether or not the daemon should be creating custom logs.'), ]), - Forms\Components\Tabs\Tab::make('Variables') + Forms\Components\Tabs\Tab::make('Egg Variables') ->columnSpanFull() // ->columns(2) ->schema([ - Forms\Components\Repeater::make('Blah') + Forms\Components\Repeater::make('variables') ->grid(3) ->relationship('variables') ->name('name') ->columns(1) ->columnSpan(1) ->itemLabel(fn (array $state) => $state['name']) + ->mutateRelationshipDataBeforeCreateUsing(function (array $data): array { + $data['default_value'] ??= ''; + $data['description'] ??= ''; + $data['rules'] ??= ''; + + return $data; + }) + ->mutateRelationshipDataBeforeSaveUsing(function (array $data): array { + $data['default_value'] ??= ''; + $data['description'] ??= ''; + $data['rules'] ??= ''; + + return $data; + }) ->schema([ - Forms\Components\TextInput::make('name')->live()->maxLength(191)->columnSpanFull(), + Forms\Components\TextInput::make('name')->live()->maxLength(191)->columnSpanFull()->required(), Forms\Components\Textarea::make('description')->columnSpanFull(), - Forms\Components\TextInput::make('env_variable')->maxLength(191), + Forms\Components\TextInput::make('env_variable')->maxLength(191)->required(), Forms\Components\TextInput::make('default_value')->maxLength(191), - Forms\Components\Textarea::make('rules')->rows(3)->columnSpanFull()->required(), + Forms\Components\Textarea::make('rules')->rows(3)->columnSpanFull(), ]), ]), Forms\Components\Tabs\Tab::make('Install Script') diff --git a/app/Models/EggVariable.php b/app/Models/EggVariable.php index 6df7c53b9..fceba3d8c 100644 --- a/app/Models/EggVariable.php +++ b/app/Models/EggVariable.php @@ -56,7 +56,7 @@ class EggVariable extends Model 'default_value' => 'string', 'user_viewable' => 'boolean', 'user_editable' => 'boolean', - 'rules' => 'required|string', + 'rules' => 'string', ]; protected $attributes = [