Question

I add dynamic rows to the product_form.xml file as follows. However, it appears on all product add pages. How do I just add to the specific type I want.

    <?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <container name="ingredients_container">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">

                <item name="sortOrder" xsi:type="number">0</item>
                <item name="label" xsi:type="string">Ingredients</item>
            </item>
        </argument>
        <modal name="ingredients_modal">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="onCancel" xsi:type="string">actionCancel</item>
                    <item name="onDone" xsi:type="string">actionDone</item>
                    <item name="options" xsi:type="array">
                        <item name="buttons" xsi:type="array">
                            <item name="0" xsi:type="array">
                                <item name="text" xsi:type="string">Cancel</item>
                                <item name="class" xsi:type="string">action-secondary</item>
                                <item name="actions" xsi:type="array">
                                    <item name="0" xsi:type="string">actionCancel</item>
                                </item>
                            </item>
                            <item name="1" xsi:type="array">
                                <item name="text" xsi:type="string">Done</item>
                                <item name="class" xsi:type="string">action-primary</item>
                                <item name="actions" xsi:type="array">
                                    <item name="0" xsi:type="string">actionDone</item>
                                </item>
                            </item>
                        </item>
                    </item>
                </item>
            </argument>

            <dynamicRows name="dynamic_rows" >
                <settings>
                    <addButtonLabel translate="true">Add</addButtonLabel>
                    <addButton>true</addButton>
                    <deleteProperty>false</deleteProperty>
                    <additionalClasses>
                        <class name="admin__field-wide">true</class>
                    </additionalClasses>
                    <componentType>dynamicRows</componentType>
                    <recordTemplate>record</recordTemplate>
                </settings>
                <container name="record" >
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="component" xsi:type="string" e>Magento_Ui/js/dynamic-rows/record</item>
                            <item name="isTemplate" xsi:type="boolean">true</item>
                            <item name="is_collection" xsi:type="boolean">true</item>
                            <item name="componentType" xsi:type="string">container</item>
                        </item>
                    </argument>
                    <field name="ingredient_list" formElement="select">
                        <argument name="data" xsi:type="array">
                            <item name="config" xsi:type="array">
                                <item name="source" xsi:type="string">product</item>
                            </item>
                        </argument>
                        <settings>

                            <dataType>text</dataType>
                            <label>Ingredients</label>
                        </settings>
                        <formElements>
                            <select>
                                <settings>
                                    <options class="Vendor\Module\Model\Config\Product\IngredientOptions"/>
                                    <caption translate="true">-- Please Select --</caption>
                                </settings>
                            </select>
                        </formElements>
                    </field>
                    <field name="label" formElement="input">
                        <argument name="data" xsi:type="array">
                            <item name="config" xsi:type="array">
                                <item name="fit" xsi:type="boolean">false</item>
                            </item>
                        </argument>
                        <settings>
                            <validation>
                                <rule name="required-entry" xsi:type="boolean">true</rule>
                            </validation>
                            <dataType>text</dataType>
                            <label>Label</label>
                        </settings>
                    </field>
                    <field name="measure" formElement="input">
                        <argument name="data" xsi:type="array">
                            <item name="config" xsi:type="array">
                                <item name="fit" xsi:type="boolean">false</item>
                            </item>
                        </argument>
                        <settings>
                            <dataType>text</dataType>
                            <label>Measure</label>
                        </settings>
                    </field>
                    <field name="quantity" formElement="input">
                        <argument name="data" xsi:type="array">
                            <item name="config" xsi:type="array">
                                <item name="fit" xsi:type="boolean">false</item>
                            </item>
                        </argument>
                        <settings>
                            <validation>
                                <rule name="required-entry" xsi:type="boolean">true</rule>
                            </validation>
                            <dataType>text</dataType>
                            <label>Quantity</label>
                        </settings>
                    </field>
                    <actionDelete template="Magento_Backend/dynamic-rows/cells/action-delete">
                        <settings>
                            <componentType>actionDelete</componentType>
                            <dataType>text</dataType>
                            <label>Actions</label>
                            <additionalClasses>
                                <class name="data-grid-actions-cell">false</class>
                            </additionalClasses>
                        </settings>
                    </actionDelete>
                </container>
            </dynamicRows>
        </modal>

        <button name="modal_button">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="title" xsi:type="string">Select Ingredients</item>
                    <item name="actions" xsi:type="array">
                        <item name="0" xsi:type="array">
                            <item name="targetName" xsi:type="string">${ $.parentName}.ingredients_modal</item>
                            <item name="actionName" xsi:type="string">openModal</item>
                        </item>
                    </item>
                </item>
            </argument>
        </button>
    </container>
</form>

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top