GX-Feature #70548
Von Alexandre Ataides vor mehr als 2 Jahren aktualisiert
A repeater option would be handy when creating new widgets like Tabs, Carousel Images, Accordions, and so on.
The repeater option should allow us to create a group of options (Textbox, Image, Numberbox, Checkbox, etc.) just so we iterate through these options and "easily" show them in SE4.
In the example below, there is an array of `fields`, which contains the `textbox` and `longtextbox` options.
```
// Example of a widget.json file using the repeater
...
"description" : "tabsWidget.description",
"cache" : 0,
"version" : "1.0.0",
"displayConfig" : "modal",
"fieldsets" : [
{
"title" : "tabsWidget.options.content.title",
"options" : [
{
"id" : "repeater",
"type" : "repeater",
"label" : "Tabs",
"attributes" : {
"min" : 1,
"max" : 4,
"itemLabel": "Tab".
"addMoreLabel" : "Add Tab",
"canSetDefaultActiveIndex" : true,
"defaultActiveIndex": 0
},
"fields" : [
{
"id": "id" : "title",
"type": "type" : "textbox",
"label": "label" : "Title",
"translatable": true,
"default": {
"en": "",
"de": "value" : ""
}
},
{
"id" : "content",
"translatable": true, "default" : {
"en" : {
"value" : "",
"title" : ""
},
"de" : {
"value" : "",
"title" : ""
}
},
"type" : "longtextbox",
"value" : "",
"label" : "tabsWidget.options.text.label",
"attributes" : {
"placeholder" : "tabsWidget.options.text.placeholder"
},
"default" : {
"en" : "",
"de" : ""
}, }
}
],
"default" : [
[
{
"id": "my-title-id", "id" : "my-title",
"type": "type" : "textbox",
"label": "repeaterField" : "title",
"label" : "Title",
"translatable": true, "value" : "Foo"
},
{
"repeaterField": "title", "id" : "my-content",
"default": "repeaterField" : "content",
"default" : {
"en": "en" : {
"value" : "",
"title" : ""
"de": },
"de" : {
"value" : "",
"title" : ""
}
}
},
{
"id": "my-title-content",
"type": "type" : "longtextbox",
"label": "value" : "Foo text",
"label" : "tabsWidget.options.text.label",
"translatable": true,
"repeaterField": "content",
"attributes": "attributes" : {
"placeholder": "placeholder" : "tabsWidget.options.text.placeholder"
},
"default": {
"en": "",
"de": ""
}
}
]
]
}
]
},
...
```
As to test a Widget is needed it's better if only a code review is done, then we test the `RepeaterOption` in one of the new widgets: `Tabs, Carousel, Accordion, etc`.