Expand my Community achievements bar.

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