You are here

public function BootstrapDateTimeWidget::settingsForm in Bootstrap DateTime Picker 2.0.x

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/BootstrapDateTimeWidget.php, line 45

Class

BootstrapDateTimeWidget
Plugin implementation of the BootstrapDateTimeWidget widget.

Namespace

Drupal\bootstrap_datetime_picker\Plugin\Field\FieldWidget

Code

public function settingsForm(array $form, FormStateInterface $form_state) {
  $elements = [];
  $elements['wrapper_class'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Wrapper Class'),
    '#options' => [
      'container' => $this
        ->t('Container'),
      'fluid-container' => $this
        ->t('Fluid Container'),
    ],
    '#description' => $this
      ->t('Select the wrapper class. Check https://getbootstrap.com/docs/4.3/layout/overview/'),
    '#default_value' => $this
      ->getSetting('wrapper_class'),
  ];
  $elements['column_size_class'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Column Size'),
    '#description' => $this
      ->t('Select the column size based on bootstrap\'s grid system. Check https://getbootstrap.com/docs/4.0/layout/grid/'),
    '#options' => [
      'col-sm-1' => 1,
      'col-sm-2' => 2,
      'col-sm-3' => 3,
      'col-sm-4' => 4,
      'col-sm-5' => 5,
      'col-sm-6' => 6,
      'col-sm-7' => 7,
      'col-sm-8' => 8,
      'col-sm-9' => 9,
      'col-sm-10' => 10,
      'col-sm-11' => 11,
      'col-sm-12' => 12,
    ],
    '#default_value' => $this
      ->getSetting('column_size_class'),
  ];
  $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;
}