|
@@ 222-229 (lines=8) @@
|
| 219 |
|
if (($trigger = $form_state->getTriggeringElement()) && in_array($this->fieldDefinition->getName(), $trigger['#parents'])) { |
| 220 |
|
// Submit was triggered by hidden "target_id" element when entities were |
| 221 |
|
// added via entity browser. |
| 222 |
|
if (!empty($trigger['#ajax']['event']) && $trigger['#ajax']['event'] == 'entity_browser_value_updated') { |
| 223 |
|
$parents = $trigger['#parents']; |
| 224 |
|
} |
| 225 |
|
// Submit was triggered by one of the "Remove" buttons. We need to walk |
| 226 |
|
// few levels up to read value of "target_id" element. |
| 227 |
|
elseif ($trigger['#type'] == 'submit' && strpos($trigger['#name'], $this->fieldDefinition->getName() . '_remove_') === 0) { |
| 228 |
|
$parents = array_merge(array_slice($trigger['#parents'], 0, -4), ['target_id']); |
| 229 |
|
} |
| 230 |
|
|
| 231 |
|
if (isset($parents) && $value = $form_state->getValue($parents)) { |
| 232 |
|
$ids = explode(' ', $value); |
|
@@ 352-357 (lines=6) @@
|
| 349 |
|
// are added or by one of the "Remove" buttons. Depending on that we need to |
| 350 |
|
// figure out where root of the widget is in the form structure and use this |
| 351 |
|
// information to return correct part of the form. |
| 352 |
|
if (!empty($trigger['#ajax']['event']) && $trigger['#ajax']['event'] == 'entity_browser_value_updated') { |
| 353 |
|
$parents = array_slice($trigger['#array_parents'], 0, -2); |
| 354 |
|
} |
| 355 |
|
elseif ($trigger['#type'] == 'submit' && strpos($trigger['#name'], '_remove_')) { |
| 356 |
|
$parents = array_slice($trigger['#array_parents'], 0, -4); |
| 357 |
|
} |
| 358 |
|
|
| 359 |
|
return NestedArray::getValue($form, $parents); |
| 360 |
|
} |