Skip to content

Missing Javascript functionality for TextEditorField and CollectionField on nested forms #6127

@Montintin

Description

@Montintin

PHP 8.3.1
Symfony 6.4.3
EasyAdmin 4.8.12

I have 3 Crud Controllers
ContratosTemplates
Contratos
ContratosCampos

ContratosTemplates has an AssociationField that contains a Contratos
Contratos has a TextEditorField and a CollectionField of ContratosCampos

When I add/edit a ContratosTemplates the TextEditorField from Contratos is not rendered and the CollectionField renders poorly

Screenshot 2024-02-01 at 6 56 56 p m

However if I add/edit a Contrato the TextEditorField displays fine and the CollectionField renders fine (collapsible header, remove button and propper field spacing)

Screenshot 2024-02-01 at 6 56 07 p m

I expected ContratosTemplates add/edit to work the same way and so far I haven't been able to find a way to activate this functionality

Here are the ConfigureFields for each CrudController

ContratosTemplatesCrudController.php

public function configureFields(string $pageName): iterable
    {
        return [
            IdField::new('id')->hideOnForm(),
            BooleanField::new('principal'),
            AssociationField::new('idContratos', 'Contrato')
                ->renderAsEmbeddedForm(
                    ContratosCrudController::class,
                    'create_contratos_inside_a_contratosTemplates',
                    'edit_contratos_inside_a_contratosTemplates'
                )
        ];
    }

ContratosCrudController.php

public function configureFields(string $pageName): iterable
    {
        return [
            IdField::new('id')->hideOnForm(),
            BooleanField::new('active'),
            TextEditorField::new('contrato'),
            CollectionField::new('contratosCampos')
                ->renderExpanded()
                ->setEntryIsComplex()
                ->useEntryCrudForm(ContratosCamposCrudController::class),
        ];
}

ContratosCamposController.php

public function configureFields(string $pageName): iterable
    {
        return [
            IdField::new('id')->hideOnForm(),
            TextField::new('label', 'Nombre de Campo'),
            TextField::new('placeholder', 'Texto de Ayuda'),
        ];
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions