Expand my Community achievements bar.

SOLVED

Issues Creating Touch UI in XML and Copying Existing Example

Avatar

Level 2

I used the AEM conversion tool to change the template that has been floating around with all dialog options into the new touch dialog. I then exported this to desktop and used it to generate files to push back into AEM. (A smaller version is shown below because of character limit)

The issue I ran into was that I can not sync this file up. I thought this was isolated to my file, so i started trimming nodes, and then only got a "folder" to be present instead of a node. My next line of logic was to copy a existing cq:dialog from the /libs/wcm/foundation/components/. When I try to copy in CRXDE:LIte I get the exact same error. So this makes me think that it is a problem in the CRX or Oak that does not recognize the definitions and rejects the creation of nodes.

Here is the error message -

Could not copy node. Received 409 (Conflict). OakConstraint0001: /apps/opel/components/structure/two_column_control[[nt:folder]]: No matching definition found for child node cq:dialog with effective type [nt:unstructured]

This appears in both Brackets (raw XML file creation) and CRXDE:Lite when copy and pasting a working and existing Touch UI dialog into another component. 

I have AEM 6.0 with SP1 & SP2.

<?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" jcr:title="{{display_name}}" sling:resourceType="cq/gui/components/authoring/dialog"> <content jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/container"> <layout jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/layouts/tabs" type="nav"/> <items jcr:primaryType="nt:unstructured"> <tab1 jcr:primaryType="nt:unstructured" jcr:title="General" 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"> <checkbox jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/form/checkbox" fieldDescription="This is a checkbox" name="./checkbox" text="Checkbox" value="true"/> <checkbox-delete jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/form/hidden" name="./checkbox@Delete" value="{Boolean}true"/> <datetime jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/form/datepicker" fieldDescription="" fieldLabel="Date Time" name="./dateTime" required="{Boolean}true" type="datetime"/> <dialogfieldset jcr:primaryType="nt:unstructured" jcr:title="Fieldset Title" sling:resourceType="granite/ui/components/foundation/form/fieldset" title="Fieldset Title"> <items jcr:primaryType="nt:unstructured"/> </dialogfieldset> <displayfield jcr:primaryType="cq:Widget" hidden="{Boolean}false" hideLabel="{Boolean}true" ignoreData="{Boolean}true" value="Escaped HTML or plain-text to display" xtype="displayfield"/> <dropdown jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/form/select" fieldDescription="" fieldLabel="Dropdown" name="./dropdown" value=""> <items jcr:primaryType="nt:unstructured"> <children jcr:primaryType="nt:unstructured" text="Option 1" value="option1"/> <descendants jcr:primaryType="nt:unstructured" text="Option 2" value="option2"/> </items> </dropdown> <html5smartfile jcr:primaryType="cq:Widget" autoUploadDelay="1" ddGroups="[media]" fieldDescription="" fieldLabel="HTML 5 Smart File" fileNameParameter="./fileName" fileReferenceParameter="./fileReference" name="./file" xtype="html5smartfile"/> <inlinetextfield jcr:primaryType="cq:Widget" fieldDescription="" fieldLabel="Inline Text Field" name="./inlineTextField" xtype="inlinetextfield"/> </items> </columns> </items> </tab1> </items> </content> </jcr:root>
1 Accepted Solution

Avatar

Correct answer by
Level 2

While the error is reporting 

child node cq:dialog with effective type [nt:unstructured]

the issue is actually that the parent type was incorrect and would not allow this as the child type.

Updating the parents type to be the correct cq:component type, allowed for the import of the XML file of the Touch UI dialog, and allowed for copy and pasting of existing Touch UI dialogs.

This is the correct answer. Using CRXDE Lite is not a production quality workaround.

View solution in original post

6 Replies

Avatar

Level 10

This looks like a possible bug. You should be able to copy an existing file to another repos location via CRXDE lite. 

Please open a ticket at:

https://helpx.adobe.com/marketing-cloud/contact-support.html

Avatar

Level 2

Ok I will open a ticket.

Right now this kills XML file editing for Touch Dialogs...

Does anyone know a work around?

Avatar

Level 10

Use CRXDE lite and create nodes and properties. 

Avatar

Level 2

Yep. I am attempting to file a bug, my account is not flagged as a support account on the contract my company has. Working on getting this resolved. Thanks.

Avatar

Level 10

See this community article that walks you through building a dialog for a Touch UI component using CRXDE lite:

https://helpx.adobe.com/experience-manager/using/creating-touchui-component.html

Avatar

Correct answer by
Level 2

While the error is reporting 

child node cq:dialog with effective type [nt:unstructured]

the issue is actually that the parent type was incorrect and would not allow this as the child type.

Updating the parents type to be the correct cq:component type, allowed for the import of the XML file of the Touch UI dialog, and allowed for copy and pasting of existing Touch UI dialogs.

This is the correct answer. Using CRXDE Lite is not a production quality workaround.