You are here

public function SchedulerAdminForm::buildForm in Scheduler 8

Same name and namespace in other branches
  1. 2.x src/Form/SchedulerAdminForm.php \Drupal\scheduler\Form\SchedulerAdminForm::buildForm()

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

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

Return value

array The form structure.

Overrides ConfigFormBase::buildForm

File

src/Form/SchedulerAdminForm.php, line 58

Class

SchedulerAdminForm
Main administration form for the Scheduler module.

Namespace

Drupal\scheduler\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {

  // Options for setting date-only with default time.
  $form['date_only_fieldset'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Date only'),
    '#collapsible' => FALSE,
  ];
  $form['date_only_fieldset']['allow_date_only'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Allow users to enter only a date and provide a default time.'),
    '#default_value' => $this
      ->setting('allow_date_only'),
    '#description' => $this
      ->t('When only a date is entered the time will default to a specified value, but the user can change this if required.'),
  ];
  $form['date_only_fieldset']['default_time'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Default time'),
    '#default_value' => $this
      ->setting('default_time'),
    '#size' => 20,
    '#maxlength' => 8,
    '#description' => $this
      ->t('Provide a default time in @format format that will be used if the user does not enter a value.', [
      '@format' => $this
        ->setting('hide_seconds') ? 'HH:MM' : 'HH:MM:SS',
    ]),
    '#states' => [
      'visible' => [
        ':input[name="allow_date_only"]' => [
          'checked' => TRUE,
        ],
      ],
    ],
  ];

  // Options for configuring the time input field.
  $form['time_fieldset'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Time settings'),
    '#collapsible' => FALSE,
  ];
  $form['time_fieldset']['hide_seconds'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Hide the seconds.'),
    '#default_value' => $this
      ->setting('hide_seconds'),
    '#description' => $this
      ->t('When entering a time, only show hours and minutes in the input field.'),
  ];
  return parent::buildForm($form, $form_state);
}