Expand my Community achievements bar.

Guidelines for the Responsible Use of Generative AI in the Experience Cloud Community.
SOLVED

Custom Content fragment model showing extra input field (edited XML)

Avatar

Level 2

Hi all, 
I have created a content fragment model and added a multifield via XML. The issue is I'm getting an additional input field which is not needed(also not added intentionally).
Screenshot 2023-09-01 at 1.58.58 PM.png

 

Here's the content.xml : 

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:granite="http://www.adobe.com/jcr/granite/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="cq:Template"
    allowedPaths="[/content/entities(/.*)?]"
    ranking="{Long}100">
    <jcr:content
        cq:scaffolding="/conf/mycompany/settings/dam/cfm/models/showtimes/jcr:content/model"
        cq:templateType="/libs/settings/dam/cfm/model-types/fragment"
        jcr:primaryType="cq:PageContent"
        jcr:title="Showtimes"
        sling:resourceSuperType="dam/cfm/models/console/components/data/entity"
        sling:resourceType="dam/cfm/models/console/components/data/entity/default"
        status="enabled">
        <metadata jcr:primaryType="nt:unstructured">
            <graphQL
                jcr:primaryType="nt:unstructured"
                apiName="ShowtimesModel"
                queryFieldMultiple="showtimesList"
                queryFieldSingle="showtimesByPath"/>
        </metadata>
        <model
            cq:targetPath="/content/entities"
            jcr:primaryType="cq:PageContent"
            sling:resourceType="wcm/scaffolding/components/scaffolding"
            dataTypesConfig="/mnt/overlay/settings/dam/cfm/models/formbuilderconfig/datatypes"
            maxGeneratedOrder="20">
            <cq:dialog
                jcr:primaryType="nt:unstructured"
                sling:resourceType="cq/gui/components/authoring/dialog">
                <content
                    jcr:primaryType="nt:unstructured"
                    sling:resourceType="granite/ui/components/coral/foundation/fixedcolumns">
                    <items
                        jcr:primaryType="nt:unstructured"
                        maxGeneratedOrder="20">
                        <referenceToMovieContentFragment
                            jcr:primaryType="nt:unstructured"
                            sling:resourceType="dam/cfm/models/editor/components/fragmentreference"
                            allowNew="{Boolean}false"
                            emptyText="Select movie content fragment"
                            fieldLabel="Reference to movie content fragment"
                            filter="hierarchy"
                            fragmentmodelreference="/conf/mycompany/settings/dam/cfm/models/movie"
                            listOrder="9"
                            metaType="fragment-reference"
                            name="referenceToMovieContentFragment"
                            nameSuffix="contentReference"
                            renderReadOnly="false"
                            showEmptyInReadOnly="true"
                            valueType="string/content-fragment">
                            <field jcr:primaryType="nt:unstructured"/>
                            <granite:data jcr:primaryType="nt:unstructured"/>
                        </referenceToMovieContentFragment>
                        <startDate
                            jcr:primaryType="nt:unstructured"
                            sling:resourceType="dam/cfm/models/editor/components/datatypes/datepicker"
                            displayedFormat="YYYY-MM-DD"
                            fieldLabel="Start Date"
                            listOrder="5"
                            metaType="date"
                            name="startDate"
                            renderReadOnly="false"
                            showEmptyInReadOnly="true"
                            type="date"
                            valueFormat="YYYY-MM-DD"
                            valueType="calendar/date">
                            <granite:data
                                jcr:primaryType="nt:unstructured"
                                typeHint="Date"/>
                        </startDate>
                        <endDate
                            jcr:primaryType="nt:unstructured"
                            sling:resourceType="dam/cfm/models/editor/components/datatypes/datepicker"
                            displayedFormat="YYYY-MM-DD"
                            fieldLabel="End Date"
                            listOrder="5"
                            metaType="date"
                            name="endDate"
                            renderReadOnly="false"
                            showEmptyInReadOnly="true"
                            type="date"
                            valueFormat="YYYY-MM-DD"
                            valueType="calendar/date">
                            <granite:data
                                jcr:primaryType="nt:unstructured"
                                typeHint="Date"/>
                        </endDate>
                        <showDatesAndAssociatedTimings
                            jcr:primaryType="nt:unstructured"
                            sling:resourceType="granite/ui/components/coral/foundation/form/multifield"
                            composite="{Boolean}true"
                            emptyText="Enter show dates and associated timings"
                            fieldLabel="Show Dates and associated timings"
                            listOrder="1"
                            maxlength="255"
                            metaType="text-single"
                            name="showDatesAndAssociatedTimings"
                            renderReadOnly="false"
                            showEmptyInReadOnly="true"
                            valueType="string[]">
                            <field
                                jcr:primaryType="nt:unstructured"
                                sling:resourceType="granite/ui/components/coral/foundation/container"
                                name="./showDatesAndAssociatedTimings">
                                <items jcr:primaryType="nt:unstructured">
                                    <column
                                        jcr:primaryType="nt:unstructured"
                                        sling:resourceType="granite/ui/components/coral/foundation/container">
                                        <items jcr:primaryType="nt:unstructured">
                                            <showDate
                                                jcr:primaryType="nt:unstructured"
                                                sling:resourceType="dam/cfm/models/editor/components/datatypes/datepicker"
                                                displayedFormat="YYYY-MM-DD"
                                                fieldLabel="Show Date"
                                                metaType="date"
                                                name="showDate"
                                                renderReadOnly="false"
                                                showEmptyInReadOnly="true"
                                                type="date"
                                                valueFormat="YYYY-MM-DD"
                                                valueType="calendar/date">
                                                <granite:data
                                                    jcr:primaryType="nt:unstructured"
                                                    typeHint="Date"/>
                                            </showDate>
                                            <timings
                                                jcr:primaryType="nt:unstructured"
                                                sling:resourceType="granite/ui/components/coral/foundation/form/textfield"
                                                fieldDescription="e.g. 9:30 am;12:30 pm;"
                                                fieldLabel="Enter show times for the day separated by ';' in HH:MM am/pm format"
                                                maxlength="255"
                                                name="timings"
                                                renderReadOnly="false"
                                                validation="cfm.validation.custom">
                                                <granite:data
                                                    jcr:primaryType="nt:unstructured"
                                                    validationRegex="(\\d\\d:\\d\\d\\s\\w\\w;)"/>
                                            </timings>
                                        </items>
                                    </column>
                                </items>
                            </field>
                            <granite:data jcr:primaryType="nt:unstructured"/>
                        </showDatesAndAssociatedTimings>
                        <linkToBuyTicket
                            jcr:primaryType="nt:unstructured"
                            sling:resourceType="granite/ui/components/coral/foundation/form/textfield"
                            emptyText="Enter the link to buy ticket"
                            fieldLabel="Link to buy ticket"
                            listOrder="1"
                            maxlength="255"
                            metaType="text-single"
                            name="linkToBuyTicket"
                            renderReadOnly="false"
                            showEmptyInReadOnly="true"
                            valueType="string">
                            <granite:data jcr:primaryType="nt:unstructured"/>
                        </linkToBuyTicket>
                    </items>
                </content>
            </cq:dialog>
        </model>
    </jcr:content>
</jcr:root>
1 Accepted Solution

Avatar

Correct answer by
Level 2

I found the issue. I needed to remove the property "metaType" from showDate field. This was causing the additional field to be created. I would still appreciate if someone could explain this behaviour

View solution in original post

7 Replies

Avatar

Community Advisor

Hi,

maybe it is inherited from parent node

sling:resourceSuperType="dam/cfm/models/console/components/data/entity"

 



Arun Patidar

Avatar

Employee Advisor

@Gourav_on But I can see showdate field in the xml attached:

krati_garg_0-1693573527082.png

 

Avatar

Level 2

Thats the one required in the multifield. Issue is another one is also getting created (see screenshot).

Avatar

Employee Advisor

@Gourav_on 
Got it. Can you please delete this CF Model from the environment and redeploy the build. 

Avatar

Correct answer by
Level 2

I found the issue. I needed to remove the property "metaType" from showDate field. This was causing the additional field to be created. I would still appreciate if someone could explain this behaviour