Expand my Community achievements bar.

AEM 6.2 Dialog breaking if Multifield items exceeds limit

Avatar

Level 6

Hi All,

I am using AEM 6.2. In my component there are 3 tabs. Each tab has 3 multifields, so total 9  multifields in component. As soon as i drag and drop component in page  and author it, it work as expected(added approximately 200 items in all 9 multifield widgets),  it stored these values in crx repository,  till here everything is fine.

When i click edit button to edit dialog values. Dialog is broken. I analysed till 176(total items in all 9 multifield) elements it is working. After which it start breaking the dialog.

Now i am unable to edit the dialog. This issue is now becoming critical to fix.

Any help is really appreciated, how to make sure to author any no of items in multifield without breaking the dialog when open for edit?

Please advise if anyone face similar challenge.

Installed SP1 on  AEM6.2 also didn't fix my issue.

Thanks,

Pradeep

13 Replies

Avatar

Level 10

For the Multi-field - are you using ACS-COMMONS?

Avatar

Level 6

sling:resourceType is granite/ui/components/foundation/form/multifield for all multifield widgets in my component. though i have acs-commons folder in apps folder.

Please advise how to solve this.

Avatar

Level 10

I don't think that's an issue from product.


that is probably happening because of ACS Commons validator being used
It was logged by a customer but never got fixed.

https://github.com/Adobe-Consulting-Services/acs-aem-commons/issues/875

https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/aea8a4192632dac42151e6d6d6a1e71cd1...

Avatar

Level 6

It looks like it's an AEM product issue. Not only my custom component's dialog is breaking, other component's dialog is also breaking after 150 element in 2 multifields(1 is having 106 elements other having some 35 elements).

If anyone have added more than 200 elements in multifields (more than one in same component) please share the cq dialog xml file.

Thanks,

Pradeep

Avatar

Level 10

There were some similar issues with product which were fixed in previous version.

Can you confirm that none of your multifield is using ACS Commons attribute or a validation like acs-commons-nested in property of any dialog node?

Would be good, if you can share dialog xml with community.

Avatar

Level 6

I am not using acs at all in my cq.dialog xml. Below is the cq dialog.xml. I have 2 tabs,  each tab has multifield. After some certain count multifield is breaking not loading all items in dialog to edit them.

<?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="Multifield"

    sling:resourceType="cq/gui/components/authoring/dialog">

    <content

        jcr:primaryType="nt:unstructured"

        sling:resourceType="granite/ui/components/foundation/container"

        class="dialog-width-50rem">

        <layout

            jcr:primaryType="nt:unstructured"

            sling:resourceType="granite/ui/components/foundation/layouts/tabs"

            type="nav"/>

        <items jcr:primaryType="nt:unstructured">

            <basic

                jcr:primaryType="nt:unstructured"

                jcr:title="Basic"

                sling:resourceType="granite/ui/components/foundation/section">

                <layout

                    jcr:primaryType="nt:unstructured"

                    sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns"/>

                <items jcr:primaryType="nt:unstructured">

                    <column

                        jcr:primaryType="nt:unstructured"

                        sling:resourceType="granite/ui/components/foundation/container"

                        class="column-full-width">

                        <items jcr:primaryType="nt:unstructured">

                            <fieldset

                                jcr:primaryType="nt:unstructured"

                                sling:resourceType="granite/ui/components/foundation/form/fieldset">

                                <layout

                                    jcr:primaryType="nt:unstructured"

                                    sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns"/>

                                <items jcr:primaryType="nt:unstructured">

                                    <column

                                        jcr:primaryType="nt:unstructured"

                                        sling:resourceType="granite/ui/components/foundation/container">

                                        <items jcr:primaryType="nt:unstructured">

                                            <items

                                                jcr:primaryType="nt:unstructured"

                                                sling:resourceType="granite/ui/components/foundation/form/multifield"

                                                fieldDescription="Click 'Add field' button to add a new field."

                                                fieldLabel="Social Icons List"

                                                limit="200">

                                                <field

                                                    jcr:primaryType="nt:unstructured"

                                                    sling:resourceType="granite/ui/components/foundation/form/fieldset"

                                                    eaem-nested=""

                                                    name="./items">

                                                    <layout

                                                        jcr:primaryType="nt:unstructured"

                                                        sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns"/>

                                                    <items jcr:primaryType="nt:unstructured">

                                                        <column

                                                            jcr:primaryType="nt:unstructured"

                                                            sling:resourceType="granite/ui/components/foundation/container">

                                                            <items jcr:primaryType="nt:unstructured">

                                                                <title

                                                                    jcr:primaryType="nt:unstructured"

                                                                    sling:resourceType="granite/ui/components/foundation/form/textfield"

                                                                    fieldLabel="Social Title"

                                                                    name="./socialTitle"/>

                                                                <icon

                                                                    jcr:primaryType="nt:unstructured"

                                                                    sling:resourceType="granite/ui/components/foundation/form/select"

                                                                    fieldLabel="Select Social Icon"

                                                                    name="./socialIcon">

                                                                    <items jcr:primaryType="nt:unstructured">

                                                                        <select

                                                                            jcr:primaryType="nt:unstructured"

                                                                            text="Select Icon"/>

                                                                        <facebook

                                                                            jcr:primaryType="nt:unstructured"

                                                                            text="Facebook"

                                                                            value="facebook"/>

                                                                        <linkedin

                                                                            jcr:primaryType="nt:unstructured"

                                                                            text="Linkedin"

                                                                            value="linkedin"/>

                                                                        <twitter

                                                                            jcr:primaryType="nt:unstructured"

                                                                            text="Twitter"

                                                                            value="twitter"/>

                                                                        <googlePlus

                                                                            jcr:primaryType="nt:unstructured"

                                                                            text="Google +"

                                                                            value="google-plus"/>

                                                                    </items>

                                                                </icon>

                                                                <openInNewTab

                                                                    jcr:primaryType="nt:unstructured"

                                                                    sling:resourceType="granite/ui/components/foundation/form/checkbox"

                                                                    name="./openInNewTab"

                                                                    text="Open In New Tab"

                                                                    value="_blank"/>

                                                            </items>

                                                        </column>

                                                    </items>

                                                </field>

                                            </items>

                                        </items>

                                    </column>

                                </items>

                            </fieldset>

                        </items>

                    </column>

                </items>

            </basic>

            <advance

                jcr:primaryType="nt:unstructured"

                jcr:title="Advance"

                sling:resourceType="granite/ui/components/foundation/section">

                <layout

                    jcr:primaryType="nt:unstructured"

                    sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns"/>

                <items jcr:primaryType="nt:unstructured">

                    <column

                        jcr:primaryType="nt:unstructured"

                        sling:resourceType="granite/ui/components/foundation/container"

                        class="column-full-width">

                        <items jcr:primaryType="nt:unstructured">

                            <fieldset

                                jcr:primaryType="nt:unstructured"

                                sling:resourceType="granite/ui/components/foundation/form/fieldset">

                                <layout

                                    jcr:primaryType="nt:unstructured"

                                    sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns"/>

                                <items jcr:primaryType="nt:unstructured">

                                    <column

                                        jcr:primaryType="nt:unstructured"

                                        sling:resourceType="granite/ui/components/foundation/container">

                                        <items jcr:primaryType="nt:unstructured">

                                            <items

                                                jcr:primaryType="nt:unstructured"

                                                sling:resourceType="granite/ui/components/foundation/form/multifield"

                                                fieldDescription="Click 'Add field' button to add a new field."

                                                fieldLabel="Social Icons List"

                                                limit="200">

                                                <field

                                                    jcr:primaryType="nt:unstructured"

                                                    sling:resourceType="granite/ui/components/foundation/form/fieldset"

                                                    eaem-nested=""

                                                    name="./advance">

                                                    <layout

                                                        jcr:primaryType="nt:unstructured"

                                                        sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns"/>

                                                    <items jcr:primaryType="nt:unstructured">

                                                        <column

                                                            jcr:primaryType="nt:unstructured"

                                                            sling:resourceType="granite/ui/components/foundation/container">

                                                            <items jcr:primaryType="nt:unstructured">

                                                                <title

                                                                    jcr:primaryType="nt:unstructured"

                                                                    sling:resourceType="granite/ui/components/foundation/form/textfield"

                                                                    fieldLabel="Social Title"

                                                                    name="./socialTitle"/>

                                                                <icon

                                                                    jcr:primaryType="nt:unstructured"

                                                                    sling:resourceType="granite/ui/components/foundation/form/select"

                                                                    fieldLabel="Select Social Icon"

                                                                    name="./socialIcon">

                                                                    <items jcr:primaryType="nt:unstructured">

                                                                        <select

                                                                            jcr:primaryType="nt:unstructured"

                                                                            text="Select Icon"/>

                                                                        <facebook

                                                                            jcr:primaryType="nt:unstructured"

                                                                            text="Facebook"

                                                                            value="facebook"/>

                                                                        <linkedin

                                                                            jcr:primaryType="nt:unstructured"

                                                                            text="Linkedin"

                                                                            value="linkedin"/>

                                                                        <twitter

                                                                            jcr:primaryType="nt:unstructured"

                                                                            text="Twitter"

                                                                            value="twitter"/>

                                                                        <googlePlus

                                                                            jcr:primaryType="nt:unstructured"

                                                                            text="Google +"

                                                                            value="google-plus"/>

                                                                    </items>

                                                                </icon>

                                                                <openInNewTab

                                                                    jcr:primaryType="nt:unstructured"

                                                                    sling:resourceType="granite/ui/components/foundation/form/checkbox"

                                                                    name="./openInNewTab"

                                                                    text="Open In New Tab"

                                                                    value="_blank"/>

                                                            </items>

                                                        </column>

                                                    </items>

                                                </field>

                                            </items>

                                        </items>

                                    </column>

                                </items>

                            </fieldset>

                        </items>

                    </column>

                </items>

            </advance>

        </items>

    </content>

</jcr:root>

Avatar

Level 10

AFAIK, this is not from product


eaem-nested

Do you have a script which backs this attribute?

Avatar

Level 6

No i don't have any script.

If this is not a bug in AEM, could you please share any cq dialog.xml which can add let's say 200 element per multifield. So that i can add up to 1800 total elements, 200 items per multifield as i have total 9 multifields in dialog.

This issue stagnated overall progress now.

Thanks,

Pradeep

Avatar

Level 10

There is a good possibility that you might be using JS from similar articlehttp://experience-aem.blogspot.in/2016/08/aem-62-touch-ui-nested-composite-multifield-store-data-as-...

It works well with normal data but too many validators gets added to field making it unresponsive.

I don't have any dialog as of now, If you are sure there is no custom js for it - Raise a day care ticket

Avatar

Level 6

I am using only multifield not nested multifield. Link you shared is nested multifield.

Since i am not writing any custom logic for component, then why any validator will get added?

Don't know internal of coral ui.

Avatar

Level 10

Yeah.....that's the reason I mentioned similar article

1. Remove eaem-nested properties in your dialog multifield, as per above xml you shared there are two.

2. Once its is removed, test a dialog with smaller number of multifield, if your component still works, raise a day care ticket for freeze issue

3. If it doesnt work, then is a JS at project level which backs eaem-nested attribute.

Avatar

Level 6

If i remove eaem-nested property in in  dialog, it doesn't store content in one property after authring. Content is storing in two property, hence data is not loading at all in dialog to edit. This property is responsible to keep the data in one property.

Avatar

Level 10

Yes, I was expecting something similar

This attribute is not from OOTB product , so now

1. You need to find that JS in your project level which is using this as validator and optimize it

OR

2. See if you can split one dialog to multiple dialog to make authoring work in simpler way

These are not the answers you may be expecting but yeah...if there was something purely from product side issue...Day care would have helped.

If you still feel, you can raise a support ticket for more help.