Skip to content

Commit 790b8fa

Browse files
committed
GroupActionCollection: fixed group text action collision with another datagrid
1 parent 54f1c47 commit 790b8fa

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/GroupAction/GroupActionCollection.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
class GroupActionCollection
1616
{
1717

18-
private const ID_ATTRIBUTE_PREFIX = 'group_action_item_';
18+
private const ID_ATTRIBUTE_PREFIX = '_item_';
1919

2020
/**
2121
* @var array<GroupAction>
@@ -38,6 +38,7 @@ public function addToFormContainer(Container $container): void
3838
{
3939
/** @var Form $form */
4040
$form = $container->lookup(Form::class);
41+
$lookupPath = $container->lookupPath();
4142
$translator = $form->getTranslator();
4243
$main_options = [];
4344

@@ -88,27 +89,27 @@ public function addToFormContainer(Container $container): void
8889
if ($action->hasOptions()) {
8990
if ($action instanceof GroupMultiSelectAction) {
9091
$control = $container->addMultiSelect((string) $id, '', $action->getOptions());
91-
$control->setAttribute('data-datagrid-multiselect-id', self::ID_ATTRIBUTE_PREFIX . $id);
92+
$control->setAttribute('data-datagrid-multiselect-id', $lookupPath . self::ID_ATTRIBUTE_PREFIX . $id);
9293
$control->setAttribute('data-style', 'hidden');
9394
$control->setAttribute('data-selected-icon-check', DataGrid::$iconPrefix . 'check');
9495
} else {
9596
$control = $container->addSelect((string) $id, '', $action->getOptions());
9697
}
9798

98-
$control->setAttribute('id', self::ID_ATTRIBUTE_PREFIX . $id);
99+
$control->setAttribute('id', $lookupPath . self::ID_ATTRIBUTE_PREFIX . $id);
99100
}
100101
} elseif ($action instanceof GroupTextAction) {
101102
$control = $container->addText((string) $id, '');
102103

103-
$control->setAttribute('id', self::ID_ATTRIBUTE_PREFIX . $id)
104+
$control->setAttribute('id', $lookupPath . self::ID_ATTRIBUTE_PREFIX . $id)
104105
->addConditionOn($groupActionSelect, Form::EQUAL, $id)
105106
->setRequired($translator->translate('ublaboo_datagrid.choose_input_required'))
106107
->endCondition();
107108

108109
} elseif ($action instanceof GroupTextareaAction) {
109110
$control = $container->addTextArea((string) $id, '');
110111

111-
$control->setAttribute('id', self::ID_ATTRIBUTE_PREFIX . $id)
112+
$control->setAttribute('id', $lookupPath . self::ID_ATTRIBUTE_PREFIX . $id)
112113
->addConditionOn($groupActionSelect, Form::EQUAL, $id)
113114
->setRequired($translator->translate('ublaboo_datagrid.choose_input_required'));
114115
}
@@ -131,7 +132,7 @@ public function addToFormContainer(Container $container): void
131132
if ($main_options !== []) {
132133
foreach (array_keys($this->groupActions) as $id) {
133134
$groupActionSelect->addCondition(Form::EQUAL, $id)
134-
->toggle(self::ID_ATTRIBUTE_PREFIX . $id);
135+
->toggle($lookupPath . self::ID_ATTRIBUTE_PREFIX . $id);
135136
}
136137

137138
$groupActionSelect->addCondition(Form::FILLED)

0 commit comments

Comments
 (0)