how to add dynamic rows to edit product page for specific type
-
14-04-2021 - |
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