Fields not being populated in dialog when using multifield
Hello. I am having an issue when creating a new component in AEM 6.4.5 using a multifield in the dialog. The values are saved in the node, but when entering the dialog again these values are not displayed, meaning that when changing anything in the component we would have to reauthor all of the values again. I have found some solutions following the old style of creating child nodes with the individual values, and this populates the dialog properly. I am however of the understanding that with newer versions of AEM this is no longer the recommended way of working.
The dialog for our component has 2-6 columns to be authored and the number of tabs/columns to be shown is chosen in the "General Settings" tab.
This is what the XML for the dialog currently looks like. I have for simplicity removed all columns but one as they are all identical:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
jcr:primaryType="nt:unstructured"
sling:resourceType="cq/gui/components/authoring/dialog"
helpPath="http://www.adobe.com/go/aem6_1_docs_component_en">
<content
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/container"
class="target-options-dialog-footer"
formName="extendedFooter"
onloadFunc="function(){extendedFooterOnLoad();}">
<layout
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/layouts/tabs"
type="nav"/>
<items jcr:primaryType="nt:unstructured">
<general-settings
jcr:primaryType="nt:unstructured"
jcr:title="General Settings"
sling:resourceType="granite/ui/components/foundation/container">
<layout
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns"/>
<items jcr:primaryType="nt:unstructured">
<columns
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/container">
<items jcr:primaryType="nt:unstructured">
<number-of-items
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/select"
fieldLabel="Select number of columns"
id="columnNumber"
name="./columnNumber"
onSelectFunc="function(){extendedFooterOnSelect();}"
value="2
">
<items jcr:primaryType="nt:unstructured">
<two
jcr:primaryType="nt:unstructured"
text="2 Columns"
value="2"/>
<three
jcr:primaryType="nt:unstructured"
text="3 Columns"
value="3"/>
<four
jcr:primaryType="nt:unstructured"
text="4 Columns"
value="4"/>
<five
jcr:primaryType="nt:unstructured"
text="5 Columns"
value="5"/>
<six
jcr:primaryType="nt:unstructured"
text="6 Columns"
value="6"/>
</items>
</number-of-items>
</items>
</columns>
</items>
</general-settings>
<column-one
jcr:primaryType="nt:unstructured"
jcr:title="Column One"
sling:resourceType="granite/ui/components/foundation/container"
id="1">
<layout
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns"/>
<items jcr:primaryType="nt:unstructured">
<columns
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/container">
<items jcr:primaryType="nt:unstructured">
<column-title
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/textfield"
fieldDescription="Please enter a column name"
fieldLabel="Column Label"
name="./titleColumn1"/>
<column-items
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/multifield"
fieldDescription="Click '+' to add a new item"
fieldLabel="Links">
<field
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/fieldset"
name="./extendedFooterLinks">
<layout
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns"
method="absolute"/>
<items jcr:primaryType="nt:unstructured">
<column
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/container">
<items jcr:primaryType="nt:unstructured">
<text
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/textfield"
fieldLabel="Link Text *"
name="./linkTextColumn1"
required="{Boolean}true"/>
<url
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/pathbrowser"
fieldLabel="URL *"
name="./linkUrlColumn1"
required="{Boolean}true"
rootPath="/content/scanianoe"/>
</items>
</column>
</items>
</field>
</column-items>
</items>
</columns>
</items>
</column-one>
</items>
</content>
</jcr:root>
My question is then what in here is missing or wrong in the structure that makes it so that when opening the dialog, previously saved values will be shown?

