diff --git a/_data/toc/javascript-developer-guide.yml b/_data/toc/javascript-developer-guide.yml index b51c1ddbf85..766187c7430 100644 --- a/_data/toc/javascript-developer-guide.yml +++ b/_data/toc/javascript-developer-guide.yml @@ -100,6 +100,9 @@ pages: - label: RedirectUrl widget url: /javascript-dev-guide/widgets/widget_redirectUrl.html + - label: RowBuilder widget + url: /javascript-dev-guide/widgets/widget-row-builder.html + - label: Tabs widget url: /javascript-dev-guide/widgets/widget_tabs.html diff --git a/common/images/widget/row-builder-widget-result.png b/common/images/widget/row-builder-widget-result.png new file mode 100644 index 00000000000..bdf9a17dbf5 Binary files /dev/null and b/common/images/widget/row-builder-widget-result.png differ diff --git a/common/images/widget/row-builder-widget-warning-message-result.png b/common/images/widget/row-builder-widget-warning-message-result.png new file mode 100644 index 00000000000..2b0307889ad Binary files /dev/null and b/common/images/widget/row-builder-widget-warning-message-result.png differ diff --git a/guides/v2.2/javascript-dev-guide/widgets/jquery-widgets-about.md b/guides/v2.2/javascript-dev-guide/widgets/jquery-widgets-about.md index b9ce28c0e22..b97816981b5 100644 --- a/guides/v2.2/javascript-dev-guide/widgets/jquery-widgets-about.md +++ b/guides/v2.2/javascript-dev-guide/widgets/jquery-widgets-about.md @@ -26,6 +26,7 @@ This guide discusses the following widgets: - [Prompt widget] - [QuickSearch widget] - [RedirectUrl widget] +- [RowBuilder widget] - [Tabs widget] - [ToggleAdvanced widget] - [TrimInput widget] @@ -55,6 +56,7 @@ Magento out of the box does not contain jQuery UI styles. Also, it is not recomm [Prompt widget]: {{page.baseurl}}/javascript-dev-guide/widgets/widget_prompt.html [QuickSearch widget]: {{page.baseurl}}/javascript-dev-guide/widgets/widget_quickSearch.html [RedirectUrl widget]: {{page.baseurl}}/javascript-dev-guide/widgets/widget_redirectUrl.html +[RowBuilder widget]: {{page.baseurl}}/javascript-dev-guide/widgets/widget-row-builder.html [Tabs widget]: {{page.baseurl}}/javascript-dev-guide/widgets/widget_tabs.html [ToggleAdvanced widget]: {{page.baseurl}}/javascript-dev-guide/widgets/widget_toggle.html [TrimInput widget]: {{page.baseurl}}/javascript-dev-guide/widgets/widget-trim-input.html diff --git a/guides/v2.2/javascript-dev-guide/widgets/widget-row-builder.md b/guides/v2.2/javascript-dev-guide/widgets/widget-row-builder.md new file mode 100644 index 00000000000..5332131529d --- /dev/null +++ b/guides/v2.2/javascript-dev-guide/widgets/widget-row-builder.md @@ -0,0 +1,264 @@ +--- +group: javascript-developer-guide +title: RowBuilder widget +contributor_name: Atwix +contributor_link: https://www.atwix.com/ +--- + +The RowBuilder [widget](https://glossary.magento.com/widget/) allows you to build a container with rows. + +The RowBuilder widget can be used only on the frontend area. + +The RowBuilder widget source is [lib/web/mage/row-builder.js][]. + +## Initialize the RowBuilder widget + +For information about how to initialize a widget in a JS component or `.phtml` template, see the [Initialize JavaScript][] topic. + +The RowBuilder widget is instantiated with: + +```javascript +$("#row-builder").rowBuilder({ + "rowTemplate":"#row-template", + "rowContainer":"#row-container", + "rowParentElem":"
", + "remEventSelector":"a", + "btnRemoveSelector":".action.remove", + "maxRows":"5" +});`` +``` + +Where: + +- `#row-builder` is the selector of the element which will be the RowBuilder. + +The following example shows a PHTML file using the script: + +```html + +``` + +## Options + +The PopupWindow widget has the following options: + +- [rowTemplate](#rowtemplate) +- [rowContainer](#rowcontainer) +- [rowIndex](#rowindex) +- [rowCount](#rowcount) +- [rowParentElem](#rowparentelem) +- [rowContainerClass](#rowcontainerclass) +- [addRowBtn](#addrowbtn) +- [btnRemoveIdPrefix](#btnremoveidprefix) +- [btnRemoveSelector](#btnremoveselector) +- [rowIdPrefix](#rowidprefix) +- [additionalRowClass](#additionalrowclass) +- [addEventSelector](#addeventselector) +- [remEventSelector](#remeventselector) +- [hideFirstRowAddSeparator](#hidefirstrowaddseparator) +- [maxRows](#maxrows) +- [maxRowsMsg](#maxrowsmsg) + +### `rowTemplate` + +The row template selector. + +**Type**: String + +**Default value**: `'#template-registrant'` + +### `rowContainer` + +The row container selector. + +**Type**: String + +**Default value**: `'#registrant-container'` + +### `rowIndex` + +Row index used by the template rows. + +**Type**: Integer + +**Default value**: `0` + +### `rowCount` + +Row count. + +**Type**: Integer + +**Default value**: `0` + +### `rowParentElem` + +Row parent element. + +**Type**: String + +**Default value**: `''` + +### `rowContainerClass` + +Row container class. + +**Type**: String + +**Default value**: `'fields'` + +### `addRowBtn` + +The add row button selector. + +**Type**: String + +**Default value**: `'#add-registrant-button'` + +### `btnRemoveIdPrefix` + +ID prefix of a remove button. + +**Type**: String + +**Default value**: `'btn-remove'` + +### `btnRemoveSelector` + +The remove button selector. + +**Type**: String + +**Default value**: `'.btn-remove'` + +### `rowIdPrefix` + +ID prefix of a row element. + +**Type**: String + +**Default value**: `'row'` + +### `additionalRowClass` + +The additional row class name which is added after the main class name. + +**Type**: String + +**Default value**: `'add-row'` + +### `addEventSelector` + +Default selectors for adding elements to a template. + +**Type**: String + +**Default value**: `'button'` + +### `remEventSelector` + +Default selectors for removing markup elements from a template. + +**Type**: String + +**Default value**: `'a'` + +### `hideFirstRowAddSeparator` + +This option specifies if the [remove link](#btnremoveidprefix) and [additional row class](#additionalrowclass) are removed for the first row. + +**Type**: Boolean + +**Default value**: `true` + +### `maxRows` + +Max number of rows. + +**Type**: Integer + +**Default value**: `1000` + +### `maxRowsMsg` + +The message selector of an element which appears when the max number of rows has been exceeded. + +**Type**: Integer + +**Default value**: `1000` + +## Code sample + +This example shows the row builder container, which adds a new row when you click the **Add Item** button and removes a row when you click the **Remove Item** button. + +```html + + +