feat(collection): add delete_attr, add_attr options

This commit is contained in:
Simon Vieille 2025-05-19 12:01:50 +02:00
commit b61cdbf322
Signed by: deblan
GPG key ID: 579388D585F70417
2 changed files with 17 additions and 2 deletions

View file

@ -16,12 +16,23 @@ class CollectionType extends BaseCollectionType
{
parent::buildView($view, $form, $options);
$classes = [
'add_attr' => 'collection-add',
'delete_attr' => 'text-right',
];
foreach ($classes as $key => $class) {
$options[$key]['class'] = $class.' '.($options[$key]['class'] ?? '');
}
$view->vars = array_replace($view->vars, [
'collection_name' => $options['collection_name'],
'label_add' => $options['label_add'],
'label_delete' => $options['label_delete'],
'allow_add' => $options['allow_add'],
'allow_delete' => $options['allow_delete'],
'add_attr' => $options['add_attr'],
'delete_attr' => $options['delete_attr'],
'template_before_item' => $options['template_before_item'],
'template_after_item' => $options['template_after_item'],
]);
@ -37,6 +48,8 @@ class CollectionType extends BaseCollectionType
'label_delete' => 'Delete',
'template_before_item' => null,
'template_after_item' => null,
'add_attr' => [],
'delete_attr' => [],
]);
}

View file

@ -78,6 +78,8 @@
{% block collection_block_widget %}
{% set allow_delete = allow_delete|default(false) %}
{% set allow_add = allow_add|default(false) %}
{% set add_attr = allow_add|default({}) %}
{% set delete_attr = allow_add|default({}) %}
<div data-collection="collection-{{ collection_name }}">
{% for item in form.value %}
@ -87,7 +89,7 @@
{% endfor %}
{% if allow_delete %}
<div class="text-right">
<div {% for k, v in delete_attr %}{{ k }}="{{ v }}">
<span data-collection-delete-container class="btn btn-sm btn-danger">
<span data-collection-delete="{{ loop.index }}">
<span data-collection-delete="{{ loop.index }}" class="fa fa-trash"></span>
@ -101,7 +103,7 @@
</div>
{% if allow_add %}
<div data-collection-add="collection-{{ collection_name }}" class="collection-add">
<div data-collection-add="collection-{{ collection_name }}" {% for k, v in add_attr %}{{ k }}="{{ v }}">
<span class="btn btn-sm btn-primary" data-collection-add="collection-{{ collection_name }}">
<span data-collection-add="collection-{{ collection_name }}" class="fa fa-plus"></span>
{{ label_add|trans }}