You are here

public function DateRecurFieldItemList::defaultValuesFormValidate in Recurring Dates Field 3.1.x

Same name and namespace in other branches
  1. 8.2 src/Plugin/Field/FieldType/DateRecurFieldItemList.php \Drupal\date_recur\Plugin\Field\FieldType\DateRecurFieldItemList::defaultValuesFormValidate()
  2. 3.x src/Plugin/Field/FieldType/DateRecurFieldItemList.php \Drupal\date_recur\Plugin\Field\FieldType\DateRecurFieldItemList::defaultValuesFormValidate()
  3. 3.0.x src/Plugin/Field/FieldType/DateRecurFieldItemList.php \Drupal\date_recur\Plugin\Field\FieldType\DateRecurFieldItemList::defaultValuesFormValidate()

Validates the submitted default value.

Invoked from \Drupal\field_ui\Form\FieldConfigEditForm to allow administrators to configure instance-level default value.

Parameters

array $element: The default value form element.

array $form: The form where the settings form is being included in.

\Drupal\Core\Form\FormStateInterface $form_state: The form state of the (entire) configuration form.

Overrides DateRangeFieldItemList::defaultValuesFormValidate

File

src/Plugin/Field/FieldType/DateRecurFieldItemList.php, line 118

Class

DateRecurFieldItemList
Recurring date field item list.

Namespace

Drupal\date_recur\Plugin\Field\FieldType

Code

public function defaultValuesFormValidate(array $element, array &$form, FormStateInterface $form_state) : void {
  $defaultDateTimeZone = $form_state
    ->getValue([
    'default_value_input',
    'default_date_time_zone',
  ]);
  if (empty($defaultDateTimeZone)) {
    $defaultStartType = $form_state
      ->getValue([
      'default_value_input',
      'default_date_type',
    ]);
    if (!empty($defaultStartType)) {
      $form_state
        ->setErrorByName('default_value_input][default_date_time_zone', (string) $this
        ->t('Time zone must be provided if a default start date is provided.'));
    }
    $defaultEndType = $form_state
      ->getValue([
      'default_value_input',
      'default_end_date_type',
    ]);
    if (!empty($defaultEndType)) {
      $form_state
        ->setErrorByName('default_value_input][default_date_time_zone', (string) $this
        ->t('Time zone must be provided if a default end date is provided.'));
    }
  }
  parent::defaultValuesFormValidate($element, $form, $form_state);
}