You are here

function tablefield_required_form_field_config_edit_form_alter in TableField 8.2

Implements hook_form_FORM_ID_alter().

File

tablefield_required/tablefield_required.module, line 14
Contains module hooks for tablefield_required.

Code

function tablefield_required_form_field_config_edit_form_alter(array &$form, FormStateInterface $form_state) {

  /** @var \Drupal\field\Entity\FieldConfig $field_config */
  $field_config = $form_state
    ->getFormObject()
    ->getEntity();
  $field_type = $field_config
    ->getType();
  if ($field_type == 'tablefield') {
    $tps = $field_config
      ->getThirdPartySettings('tablefield_required');
    $form['tablefield_required'] = [
      '#parents' => [],
      '#type' => 'details',
      '#title' => t('Tablefield required settings'),
      '#open' => TRUE,
      '#states' => [
        'visible' => [
          'input[name="required"]' => [
            'checked' => FALSE,
          ],
        ],
      ],
    ];
    $form['tablefield_required']['required_rows'] = [
      '#type' => 'textfield',
      '#title' => t('Required rows.'),
      '#default_value' => isset($tps['required_rows']) ? $tps['required_rows'] : '',
      '#description' => t('Enter the comma-separated list of required row indexes, starting
        from "0" for first row, "1" for second and so on. For example, entering "0,2" will make
        required all inputs for first and third rows. Keep in mind if this field is marked as
        required into its definition, then this feature will be ignored.'),
    ];
    $form['tablefield_required']['required_cols'] = [
      '#type' => 'textfield',
      '#title' => t('Required columns.'),
      '#default_value' => isset($tps['required_cols']) ? $tps['required_cols'] : '',
      '#description' => t('Enter the comma-separated list of required column indexes, starting
        from "0" for first column, "1" for second and so on. For example, entering "0,2" will make
        required all inputs for first and third columns. Keep in mind if this field is marked as
        required into its definition, then this feature will be ignored.'),
    ];
    $form['tablefield_required']['multivalue_inherit'] = [
      '#type' => 'checkbox',
      '#title' => t('Inherit mandatory property for multi-value tables.'),
      '#default_value' => isset($tps['multivalue_inherit']) ? $tps['multivalue_inherit'] : FALSE,
      '#description' => t('If this option is checked, multi-value tables will inherit same restriction.'),
    ];
    $form['#entity_builders'][] = 'tablefield_required_form_builder';
  }
}