You are here

protected function ScheduledUpdateTypeBaseForm::createRunnerElements in Scheduled Updates 8

Create form elements for runner selection and options.

Parameters

\Drupal\Core\Form\FormStateInterface $form_state:

Return value

array

1 call to ScheduledUpdateTypeBaseForm::createRunnerElements()
ScheduledUpdateTypeBaseForm::form in src/Form/ScheduledUpdateTypeBaseForm.php
Gets the actual form array to be built.

File

src/Form/ScheduledUpdateTypeBaseForm.php, line 192
Contains \Drupal\scheduled_updates\Form\ScheduledUpdateTypeBaseForm.

Class

ScheduledUpdateTypeBaseForm

Namespace

Drupal\scheduled_updates\Form

Code

protected function createRunnerElements(FormStateInterface $form_state) {
  $runner_settings = $form_state
    ->getValue('update_runner');
  $update_runner = $this
    ->createRunnerInstance($runner_settings, $form_state);
  $elements = $update_runner
    ->buildConfigurationForm([], $form_state);
  $runner_options = [];
  $runner_definitions = $this
    ->getSupportedRunnerDefinitions();
  foreach ($runner_definitions as $definition) {

    /** @var UpdateRunnerInterface $runner_instance */
    $runner_instance = $this->runnerManager
      ->createInstance($definition['id']);
    $runner_options[$definition['id']] = $definition['label'] . ' - ' . $runner_instance
      ->getDescription();
  }
  $elements['id'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Update Runner'),
    '#options' => $runner_options,
    '#default_value' => $runner_settings['id'],
    '#limit_validation_errors' => array(),
    '#weight' => -30,
  ];
  $elements += [
    '#type' => 'fieldset',
    '#tree' => TRUE,
    '#title' => $this
      ->t('Update Runner settings'),
  ];
  return $elements;
}