You are here

public function BootstrapDateRangeWidget::settingsForm in Bootstrap DateTime Picker 8

Returns a form to configure settings for the widget.

Invoked from \Drupal\field_ui\Form\EntityDisplayFormBase to allow administrators to configure the widget. The field_ui module takes care of handling submitted form values.

Parameters

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

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form definition for the widget settings.

Overrides WidgetBase::settingsForm

File

src/Plugin/Field/FieldWidget/BootstrapDateRangeWidget.php, line 44

Class

BootstrapDateRangeWidget
Plugin implementation of the BootstrapDateTimeWidget widget.

Namespace

Drupal\bootstrap_datetime\Plugin\Field\FieldWidget

Code

public function settingsForm(array $form, FormStateInterface $form_state) {
  $elements = [];
  $elements['hour_format'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Hours Format'),
    '#description' => $this
      ->t('Select the hours format'),
    '#options' => [
      '12h' => $this
        ->t('12 Hours'),
      '24h' => $this
        ->t('24 Hours'),
    ],
    '#default_value' => $this
      ->getSetting('hour_format'),
    '#required' => TRUE,
  ];
  $elements['allow_times'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Minutes granularity'),
    '#description' => $this
      ->t('Select granularity for minutes in calendar'),
    '#options' => [
      '5' => $this
        ->t('5 minutes'),
      '10' => $this
        ->t('10 minutes'),
      '15' => $this
        ->t('15 minutes'),
      '30' => $this
        ->t('30 minutes'),
      '60' => $this
        ->t('60 minutes'),
    ],
    '#default_value' => $this
      ->getSetting('allow_times'),
    '#required' => TRUE,
  ];
  $elements['disable_days'] = [
    '#type' => 'checkboxes',
    '#title' => $this
      ->t('Disable specific days in week'),
    '#description' => $this
      ->t('Select days which are disabled in calendar, etc. weekends or just Friday'),
    '#options' => [
      '1' => $this
        ->t('Monday'),
      '2' => $this
        ->t('Tuesday'),
      '3' => $this
        ->t('Wednesday'),
      '4' => $this
        ->t('Thursday'),
      '5' => $this
        ->t('Friday'),
      '6' => $this
        ->t('Saturday'),
      '7' => $this
        ->t('Sunday'),
    ],
    '#default_value' => $this
      ->getSetting('disable_days'),
    '#required' => FALSE,
  ];
  $elements['exclude_date'] = [
    '#type' => 'textarea',
    '#title' => $this
      ->t('Disable specific dates from calendar'),
    '#description' => $this
      ->t('Enter days in following format MM/DD/YY e.g. 03/07/2018. Separate multiple dates with comma. This is used for specific dates, if you want to disable all weekends use settings above, not this field.'),
    '#default_value' => $this
      ->getSetting('exclude_date'),
    '#required' => FALSE,
  ];
  return $elements;
}