Skip to content

Commit 02f53ea

Browse files
committed
change buttons attr
1 parent 8e5cd8a commit 02f53ea

File tree

4 files changed

+42
-28
lines changed

4 files changed

+42
-28
lines changed

src/FormCollection/Form/UXCollectionType.php

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
1616
use Symfony\Component\Form\FormInterface;
1717
use Symfony\Component\Form\FormView;
18+
use Symfony\Component\OptionsResolver\Options;
1819
use Symfony\Component\OptionsResolver\OptionsResolver;
1920

2021
/**
@@ -30,27 +31,41 @@ public function getParent()
3031

3132
public function configureOptions(OptionsResolver $resolver)
3233
{
34+
$defaultButtonAddOptions = [
35+
'label' => 'Add',
36+
'class' => '',
37+
];
38+
$defaultButtonDeleteOptions = [
39+
'label' => 'Remove',
40+
'class' => '',
41+
];
3342
$resolver->setDefaults([
34-
'button_add_text' => 'Add',
35-
'button_add_class' => '',
36-
'button_delete_text' => 'Remove',
37-
'button_delete_class' => '',
43+
'button_add_options' => $defaultButtonAddOptions,
44+
'button_delete_options' => $defaultButtonDeleteOptions,
3845
]);
3946

40-
$resolver->setAllowedTypes('button_add_text', 'string');
41-
$resolver->setAllowedTypes('button_add_class', 'string');
42-
$resolver->setAllowedTypes('button_delete_text', 'string');
43-
$resolver->setAllowedTypes('button_delete_class', 'string');
47+
$resolver->setAllowedTypes('button_add_options', 'array');
48+
$resolver->setAllowedTypes('button_delete_options', 'array');
49+
50+
$resolver->setNormalizer('button_add_options', function (Options $options, $value) use ($defaultButtonAddOptions) {
51+
$value['label'] = $value['label'] ?? $defaultButtonAddOptions['label'];
52+
$value['class'] = $value['class'] ?? $defaultButtonAddOptions['class'];
53+
return $value;
54+
});
55+
$resolver->setNormalizer('button_delete_options', function (Options $options, $value) use ($defaultButtonDeleteOptions) {
56+
$value['label'] = $value['label'] ?? $defaultButtonDeleteOptions['label'];
57+
$value['class'] = $value['class'] ?? $defaultButtonDeleteOptions['class'];
58+
return $value;
59+
});
60+
//dd($resolver);
4461
}
4562

4663
public function finishView(FormView $view, FormInterface $form, array $options)
4764
{
4865
parent::finishView($view, $form, $options);
4966

50-
$view->vars['button_add_text'] = $options['button_add_text'];
51-
$view->vars['button_add_class'] = $options['button_add_class'];
52-
$view->vars['button_delete_text'] = $options['button_delete_text'];
53-
$view->vars['button_delete_class'] = $options['button_delete_class'];
67+
$view->vars['button_add_options'] = $options['button_add_options'];
68+
$view->vars['button_delete_options'] = $options['button_delete_options'];
5469
$view->vars['prototype_name'] = $options['prototype_name'];
5570
}
5671

src/FormCollection/README.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -90,15 +90,16 @@ class BlogFormType extends AbstractType
9090
$builder
9191
// ...
9292
->add('comments', UXCollectionType::class, [
93-
// ...
94-
// Default text for the add button (used by predefined theme)
95-
'button_add_text' => 'Add',
96-
// Add HTML classes to the add button (used by predefined theme)
97-
'button_add_class' => 'btn btn-outline-primary',
98-
// Default text for the delete button (used by predefined theme)
99-
'button_delete_text' => 'Remove',
100-
// Add HTML classes to the add button (used by predefined theme)
101-
'button_delete_class' => 'btn btn-outline-secondary',
93+
// ...
94+
'button_add_options' => [
95+
'label' => 'Add', // Default text for the add button (used by predefined theme)
96+
'class' => 'btn btn-outline-primary', // Add HTML classes to the add button (used by predefined theme)
97+
],
98+
99+
'button_delete_options' => [
100+
'label' => 'Remove', // Default text for the delete button (used by predefined theme)
101+
'class' => 'btn btn-outline-secondary', // Add HTML classes to the add button (used by predefined theme)
102+
],
102103
])
103104
// ...
104105
;

src/FormCollection/Resources/views/form_theme_div.html.twig

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
{%- block button_add -%}
22
{%- set attrDataAction = (attr['data-action']|default('') ~ ' ' ~ controllerName ~ '#add')|trim -%}
33
<button data-action="{{ attrDataAction }}"
4-
class="{{ button_add_class }}" type="button">{{ button_add_text|trans }}</button>
4+
class="{{ button_add_options.class }}" type="button">{{ button_add_options.label|trans }}</button>
55
{%- endblock button_add -%}
66

77
{%- block button_delete -%}
88
{%- set attrDataAction = (attr['data-action']|default('') ~ ' ' ~ controllerName ~ '#delete')|trim -%}
99
<button data-action="{{ attrDataAction }}"
10-
class="{{ button_delete_class }}" type="button">
11-
{{ button_delete_text|trans }}</button>
10+
class="{{ button_delete_options.class }}" type="button">{{ button_delete_options.label|trans }}</button>
1211
{%- endblock button_delete -%}
1312

1413
{% block ux_collection_widget -%}

src/FormCollection/Resources/views/form_theme_table.html.twig

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@
33
<tr>
44
<td colspan="2">
55
<button data-action="{{ attrDataAction }}"
6-
class="{{ button_add_class }}" type="button">{{ button_add_text|trans }}</button>
6+
class="{{ button_add_options.class }}" type="button">{{ button_add_options.label|trans }}</button>
77
</td>
88
</tr>
99
{%- endblock button_add -%}
1010

1111
{%- block button_delete -%}
1212
{%- set attrDataAction = (attr['data-action']|default('') ~ ' ' ~ controllerName ~ '#delete')|trim -%}
13-
<button data-action="{{ attrDataAction }}"
14-
class="{{ button_delete_class }}" type="button">
15-
{{ button_delete_text|trans }}</button>
13+
<button data-action="{{ attrDataAction }}" class="{{ button_delete_options.class }}" type="button">
14+
{{ button_delete_options.label|trans }}</button>
1615
{%- endblock button_delete -%}
1716

1817
{% block ux_collection_widget -%}

0 commit comments

Comments
 (0)