Issues Creating Touch UI in XML and Copying Existing Example
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>