You are here

function require_on_publish_form_field_config_edit_form_alter in Require on Publish 8

Implements hook_form_FORM_ID_alter().

File

./require_on_publish.module, line 31
Module file for the Require on Publish module.

Code

function require_on_publish_form_field_config_edit_form_alter(&$form, FormStateInterface $form_state, $form_id) {

  /** @var \Drupal\field\FieldConfigInterface $field_config */
  $field_config = $form_state
    ->getFormObject()
    ->getEntity();

  /** @var \Drupal\Core\Entity\ContentEntityType $entity_type */
  $entity_type = \Drupal::entityTypeManager()
    ->getDefinition($field_config
    ->getTargetEntityTypeId());
  if (!_require_on_publish_entity_is_publishable($entity_type
    ->getClass())) {
    return;
  }
  $form['#attached']['library'][] = 'require_on_publish/config-form';
  $form['#attached']['library'][] = 'require_on_publish/require_on_publish';
  $form['require_on_publish'] = [
    '#type' => 'checkbox',
    '#title' => t('Required on Publish'),
    '#default_value' => $field_config
      ->getThirdPartySetting('require_on_publish', 'require_on_publish', FALSE),
    '#weight' => -4,
  ];
  $form['warn_on_empty'] = [
    '#type' => 'checkbox',
    '#title' => t('Warning on Empty'),
    '#default_value' => $field_config
      ->getThirdPartySetting('require_on_publish', 'warn_on_empty', FALSE),
    '#weight' => -3,
    '#states' => [
      'visible' => [
        ':input[name="require_on_publish"]' => [
          'checked' => TRUE,
        ],
      ],
      'invisible' => [
        ':input[name="require_on_publish"]' => [
          'checked' => FALSE,
        ],
      ],
    ],
  ];
  $form['actions']['submit']['#submit'][] = 'require_on_publish_field_config_submit';
}