Issues Creating Touch UI in XML and Copying Existing Example | Community
Skip to main content
Level 2
October 16, 2015
Solved

Issues Creating Touch UI in XML and Copying Existing Example

  • October 16, 2015
  • 6 replies
  • 3067 views

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>
This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by zaneatgm

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.

6 replies

smacdonald2008
Level 10
October 16, 2015

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

zaneatgmAuthor
Level 2
October 16, 2015

Ok I will open a ticket.

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

Does anyone know a work around?

smacdonald2008
Level 10
October 16, 2015

Use CRXDE lite and create nodes and properties. 

zaneatgmAuthor
Level 2
October 16, 2015

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.

smacdonald2008
Level 10
October 16, 2015

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

zaneatgmAuthorAccepted solution
Level 2
October 16, 2015

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.