FormsStepsStepDeleteForm.php in Forms Steps 8
File
src/Form/FormsStepsStepDeleteForm.php
View source
<?php
namespace Drupal\forms_steps\Form;
use Drupal\forms_steps\FormsStepsInterface;
use Drupal\Core\Form\ConfirmFormBase;
use Drupal\Core\Form\FormStateInterface;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class FormsStepsStepDeleteForm extends ConfirmFormBase {
protected $formsSteps;
protected $stepId;
public function getFormId() {
return 'forms_steps_step_delete_form';
}
public function getQuestion() {
return $this
->t('Are you sure you want to delete %step from %forms_steps?', [
'%step' => $this->formsSteps
->getStep($this->stepId)
->label(),
'%forms_steps' => $this->formsSteps
->label(),
]);
}
public function getCancelUrl() {
return $this->formsSteps
->toUrl();
}
public function getConfirmText() {
return $this
->t('Delete');
}
public function buildForm(array $form, FormStateInterface $form_state, FormsStepsInterface $forms_steps = NULL, $forms_steps_step = NULL) {
if (!$forms_steps
->hasStep($forms_steps_step)) {
throw new NotFoundHttpException();
}
$this->formsSteps = $forms_steps;
$this->stepId = $forms_steps_step;
return parent::buildForm($form, $form_state);
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$forms_steps_label = $this->formsSteps
->getStep($this->stepId)
->label();
$this->formsSteps
->deleteStep($this->stepId)
->save();
$routeBuilderService = \Drupal::service('router.builder');
$routeBuilderService
->rebuild();
$this
->messenger()
->addMessage($this
->t('Step %label deleted.', [
'%label' => $forms_steps_label,
]));
$form_state
->setRedirectUrl($this
->getCancelUrl());
}
}