You are here

public function AdminToolbarVersionSettingsForm::submitForm in Admin Toolbar Version 1.0.x

Form submission handler.

Parameters

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

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

Overrides ConfigFormBase::submitForm

File

src/Form/AdminToolbarVersionSettingsForm.php, line 133

Class

AdminToolbarVersionSettingsForm

Namespace

Drupal\admin_toolbar_version\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {

  // Get values.
  $environments = $form_state
    ->getValue('environments');

  // Make sure the new environment gets a uuid.
  if (isset($environments[0])) {
    $uuid_service = \Drupal::service('uuid');
    $uuid = $uuid_service
      ->generate();
    $environments[$uuid] = $environments[0];
    unset($environments[0]);
  }

  // Remove empty environments.
  $environments = array_filter($environments, function ($environment) {
    return !empty($environment['name']);
  });

  // Save environments.
  $config = $this
    ->config('admin_toolbar_version.settings');
  $config
    ->set('environments', $environments);

  // Save version source.
  $config
    ->set('version_source', $form_state
    ->getValue('version_source', ''));
  $config
    ->save();

  // Clear cache so admin menu can rebuild.
  \Drupal::service('plugin.manager.menu.link')
    ->rebuild();
  parent::submitForm($form, $form_state);
}