FormsStepsProgressStepDeleteForm.php in Forms Steps 8
File
src/Form/FormsStepsProgressStepDeleteForm.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 FormsStepsProgressStepDeleteForm extends ConfirmFormBase {
protected $formsSteps;
protected $progressStepId;
public function getFormId() {
return 'forms_steps_progress_step_delete_form';
}
public function getQuestion() {
return $this
->t('Are you sure you want to delete %progress_step from %forms_steps?', [
'%progress_step' => $this->formsSteps
->getProgressStep($this->progressStepId)
->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_progress_step = NULL) {
if (!$forms_steps
->hasProgressStep($forms_steps_progress_step)) {
throw new NotFoundHttpException();
}
$this->formsSteps = $forms_steps;
$this->progressStepId = $forms_steps_progress_step;
return parent::buildForm($form, $form_state);
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$forms_steps_label = $this->formsSteps
->getProgressStep($this->progressStepId)
->label();
$this->formsSteps
->deleteProgressStep($this->progressStepId)
->save();
$this
->messenger()
->addMessage($this
->t('progress step %label deleted.', [
'%label' => $forms_steps_label,
]));
$form_state
->setRedirectUrl($this
->getCancelUrl());
}
}