function FormWizardBase::submitForm
Same name in other branches
- 4.0.x src/Wizard/FormWizardBase.php \Drupal\ctools\Wizard\FormWizardBase::submitForm()
Overrides FormInterface::submitForm
File
-
src/
Wizard/ FormWizardBase.php, line 284
Class
- FormWizardBase
- The base class for all form wizard.
Namespace
Drupal\ctools\WizardCode
public function submitForm(array &$form, FormStateInterface $form_state) {
// Only perform this logic if we're moving to the next page. This prevents
// the loss of cached values on ajax submissions.
if ((string) $form_state->getValue('op') == (string) $this->getNextOp()) {
$cached_values = $form_state->getTemporaryValue('wizard');
if ($form_state->hasValue('label')) {
$cached_values['label'] = $form_state->getValue('label');
}
if ($form_state->hasValue('id')) {
$cached_values['id'] = $form_state->getValue('id');
}
if (is_null($this->machine_name) && !empty($cached_values['id'])) {
$this->machine_name = $cached_values['id'];
}
$this->getTempstore()
->set($this->getMachineName(), $cached_values);
$next_parameters = $this->getNextParameters($cached_values);
if (!$form_state->get('ajax')) {
$form_state->setRedirect($this->getRouteName(), $next_parameters);
}
else {
// Switch steps for ajax forms.
if (!empty($next_parameters['step'])) {
$this->step = $next_parameters['step'];
}
}
}
}