feat(form-builder): FormFieldValidationRuleService + legacy backfill + snapshot + library row-copy
This commit is contained in:
@@ -6,6 +6,7 @@ namespace App\Http\Resources\FormBuilder;
|
||||
|
||||
use App\Models\FormBuilder\FormFieldLibrary;
|
||||
use App\Services\FormBuilder\FormFieldBindingService;
|
||||
use App\Services\FormBuilder\FormFieldValidationRuleService;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
@@ -28,7 +29,9 @@ final class FormFieldLibraryResource extends JsonResource
|
||||
'label' => $this->label,
|
||||
'help_text' => $this->help_text,
|
||||
'options' => $this->options,
|
||||
'validation_rules' => $this->validation_rules,
|
||||
'validation_rules' => app(FormFieldValidationRuleService::class)->toJsonShape(
|
||||
$this->resource->validationRules,
|
||||
),
|
||||
'default_is_required' => (bool) $this->default_is_required,
|
||||
'default_is_filterable' => (bool) $this->default_is_filterable,
|
||||
'default_binding' => app(FormFieldBindingService::class)->toJsonShape(
|
||||
|
||||
@@ -8,6 +8,7 @@ use App\Enums\FormBuilder\FormFieldType;
|
||||
use App\Models\FormBuilder\FormField;
|
||||
use App\Models\PersonTag;
|
||||
use App\Services\FormBuilder\FormFieldBindingService;
|
||||
use App\Services\FormBuilder\FormFieldValidationRuleService;
|
||||
use App\Services\FormBuilder\FormLocaleResolver;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
@@ -42,7 +43,9 @@ final class FormFieldResource extends JsonResource
|
||||
$this->field_type === FormFieldType::TAG_PICKER->value,
|
||||
fn () => $this->availableTags(),
|
||||
),
|
||||
'validation_rules' => $this->validation_rules,
|
||||
'validation_rules' => app(FormFieldValidationRuleService::class)->toJsonShape(
|
||||
$this->resource->validationRules,
|
||||
),
|
||||
'is_required' => (bool) $this->is_required,
|
||||
'is_filterable' => (bool) $this->is_filterable,
|
||||
'is_portal_visible' => (bool) $this->is_portal_visible,
|
||||
|
||||
@@ -9,6 +9,7 @@ use App\Models\FormBuilder\FormField;
|
||||
use App\Models\FormBuilder\FormSchema;
|
||||
use App\Models\PersonTag;
|
||||
use App\Models\Scopes\OrganisationScope;
|
||||
use App\Services\FormBuilder\FormFieldValidationRuleService;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
@@ -37,6 +38,7 @@ final class PublicFormSchemaResource extends JsonResource
|
||||
// already happens at PublicFormTokenResolver::resolve().
|
||||
$this->resource->loadMissing([
|
||||
'fields' => fn ($q) => $q->withoutGlobalScope(OrganisationScope::class),
|
||||
'fields.validationRules',
|
||||
'sections' => fn ($q) => $q->withoutGlobalScope(OrganisationScope::class),
|
||||
]);
|
||||
|
||||
@@ -79,7 +81,9 @@ final class PublicFormSchemaResource extends JsonResource
|
||||
'available_tags' => $isTagPicker
|
||||
? $this->tagsForField($f, $availableTagsByCategory)
|
||||
: null,
|
||||
'validation_rules' => $f->validation_rules,
|
||||
'validation_rules' => app(FormFieldValidationRuleService::class)->toJsonShape(
|
||||
$f->validationRules,
|
||||
),
|
||||
'is_required' => (bool) $f->is_required,
|
||||
'display_width' => $f->display_width instanceof \BackedEnum ? $f->display_width->value : $f->display_width,
|
||||
'conditional_logic' => $f->conditional_logic,
|
||||
|
||||
Reference in New Issue
Block a user