You are here

protected function FieldStorageConfigEditForm::getCardinalityForm in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php \Drupal\field_ui\Form\FieldStorageConfigEditForm::getCardinalityForm()
  2. 9 core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php \Drupal\field_ui\Form\FieldStorageConfigEditForm::getCardinalityForm()

Builds the cardinality form.

Return value

array The cardinality form render array.

1 call to FieldStorageConfigEditForm::getCardinalityForm()
FieldStorageConfigEditForm::form in core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php
Gets the actual form array to be built.

File

core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php, line 110

Class

FieldStorageConfigEditForm
Provides a form for the "field storage" edit page.

Namespace

Drupal\field_ui\Form

Code

protected function getCardinalityForm() {
  $form = [
    // Reset #parents so the additional container does not appear.
    '#parents' => [],
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Allowed number of values'),
    '#attributes' => [
      'class' => [
        'container-inline',
        'fieldgroup',
        'form-composite',
      ],
    ],
  ];
  if ($enforced_cardinality = $this
    ->getEnforcedCardinality()) {
    if ($enforced_cardinality === FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) {
      $markup = $this
        ->t("This field cardinality is set to unlimited and cannot be configured.");
    }
    else {
      $markup = $this
        ->t("This field cardinality is set to @cardinality and cannot be configured.", [
        '@cardinality' => $enforced_cardinality,
      ]);
    }
    $form['cardinality'] = [
      '#markup' => $markup,
    ];
  }
  else {
    $form['#element_validate'][] = '::validateCardinality';
    $cardinality = $this->entity
      ->getCardinality();
    $form['cardinality'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Allowed number of values'),
      '#title_display' => 'invisible',
      '#options' => [
        'number' => $this
          ->t('Limited'),
        FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED => $this
          ->t('Unlimited'),
      ],
      '#default_value' => $cardinality == FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED ? FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED : 'number',
    ];
    $form['cardinality_number'] = [
      '#type' => 'number',
      '#default_value' => $cardinality != FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED ? $cardinality : 1,
      '#min' => 1,
      '#title' => $this
        ->t('Limit'),
      '#title_display' => 'invisible',
      '#size' => 2,
      '#states' => [
        'visible' => [
          ':input[name="cardinality"]' => [
            'value' => 'number',
          ],
        ],
        'disabled' => [
          ':input[name="cardinality"]' => [
            'value' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
          ],
        ],
      ],
    ];
  }
  return $form;
}