Skip to content
Snippets Groups Projects

Resolve #1156338 "Fixed maximum number 1"

Files
6
@@ -174,16 +174,11 @@ protected function formMultipleElements(FieldItemListInterface $items, array &$f
$parents = $form['#parents'];
// Determine the number of widgets to display.
switch ($cardinality) {
case FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED:
$field_state = static::getWidgetState($parents, $field_name, $form_state);
$max = $field_state['items_count'];
$is_unlimited_not_programmed = !$form_state->isProgrammed();
break;
default:
$max = $cardinality - 1;
break;
$max = $cardinality - 1;
if (($cardinality === FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) || $this->getSetting('add_more')) {
$field_state = static::getWidgetState($parents, $field_name, $form_state);
$max = $field_state['items_count'];
$is_unlimited_not_programmed = !$form_state->isProgrammed();
}
$title = $this->fieldDefinition->getLabel();
@@ -290,6 +285,7 @@ protected function formMultipleElements(FieldItemListInterface $items, array &$f
'wrapper' => $wrapper_id,
'effect' => 'fade',
],
'#access' => $cardinality === FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED || $max < $cardinality - 1,
];
}
}
@@ -346,7 +342,7 @@ public static function addMoreAjax(array $form, FormStateInterface $form_state)
$element = NestedArray::getValue($form, array_slice($button['#array_parents'], 0, -1));
// Ensure the widget allows adding additional items.
if ($element['#cardinality'] != FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) {
if ($element['#cardinality'] != FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED && $element['#max_delta'] >= $element['#cardinality']) {
return;
}
Loading