I need to define a dialog, consisting of a several basic fields (text) nested in a switchable field, which itself is nested in a composite field, which itself is nested in a multivalue field.
Multivalue
-> Composite
-> Switchable
-> textField1
-> textField2
-> generic textField (belonging to composite, but not to switchable)
However i cant manage to find the correct and working combination of transformerClasses, which I need to use. If using the corresponding DelegatingXXTransformer
classes on multiValue and composite field, it nearly worked as expected, but those delegating transformers hide the required UI-controls (arrow down/up) buttons (see image).
But I need those controls.
I need the information which transformerClass to use for any element, to dont lose the ui controls, but still be able to handle nested fields with a higher level than two.
Anyway to solve this ?
relevant yaml-config:
form:
tabs:
- name: tabMain
fields:
- name: mainNav
class: info.magnolia.ui.form.field.definition.MultiValueFieldDefinition
transformerClass: info.magnolia.ui.form.field.transformer.multi.DelegatingMultiValueSubnodeTransformer
field:
name: composite
class: info.magnolia.ui.form.field.definition.CompositeFieldDefinition
transformerClass: info.magnolia.ui.form.field.transformer.composite.DelegatingCompositeFieldTransformer
layout: vertical
fields:
- !include /module-ui/dialogs/common/link.yaml
- !include /module-ui/common/link-title.yaml
- !include /module-ui/dialogs/common/link-target.yaml
actions: !include /module-ui/dialogs/actions/default.yaml
link.yaml:
name: link
class: info.magnolia.ui.form.field.definition.SwitchableFieldDefinition
transformerClass: info.magnolia.ui.form.field.transformer.composite.SwitchableTransformer
options:
- name: internal
value: internal
selected: true
- name: external
value: external
fields:
- name: internal
class: info.magnolia.ui.form.field.definition.LinkFieldDefinition
appName: pages
identifierToPathConverter:
class: info.magnolia.ui.form.field.converter.BaseIdentifierToPathConverter
- name: external
class: info.magnolia.ui.form.field.definition.TextFieldDefinition
defaultValue: "http://"