ConfigDeleteConfirmForm.php in Configuration Update Manager 8
File
config_update_ui/src/Form/ConfigDeleteConfirmForm.php
View source
<?php
namespace Drupal\config_update_ui\Form;
use Drupal\Core\Form\ConfirmFormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
use Drupal\config_update\ConfigListInterface;
use Drupal\config_update\ConfigRevertInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class ConfigDeleteConfirmForm extends ConfirmFormBase {
protected $type;
protected $name;
protected $configList;
protected $configRevert;
public function __construct(ConfigListInterface $config_list, ConfigRevertInterface $config_update) {
$this->configList = $config_list;
$this->configRevert = $config_update;
}
public static function create(ContainerInterface $container) {
return new static($container
->get('config_update.config_list'), $container
->get('config_update.config_update'));
}
public function getFormId() {
return 'config_delete_confirm';
}
public function getQuestion() {
if ($this->type == 'system.simple') {
$type_label = $this
->t('Simple configuration');
}
else {
$definition = $this->configList
->getType($this->type);
if (!$definition) {
throw new NotFoundHttpException();
}
$type_label = $definition
->get('label');
}
$active = $this->configRevert
->getFromActive($this->type, $this->name);
if (!$active) {
throw new NotFoundHttpException();
}
return $this
->t('Are you sure you want to delete the %type config %item?', [
'%type' => $type_label,
'%item' => $this->name,
]);
}
public function getCancelUrl() {
return new Url('config_update_ui.report');
}
public function getDescription() {
return $this
->t('This action cannot be undone. Manually deleting configuration from this page can cause problems on your site due to missing dependencies, and should only be done if there is no other way to delete a problematic piece of configuration.');
}
public function getConfirmText() {
return $this
->t('Delete');
}
public function buildForm(array $form, FormStateInterface $form_state, $config_type = NULL, $config_name = NULL) {
$this->type = $config_type;
$this->name = $config_name;
$form = parent::buildForm($form, $form_state);
return $form;
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$this->configRevert
->delete($this->type, $this->name);
$this
->messenger()
->addMessage($this
->t('The configuration %item has been deleted.', [
'%item' => $this->name,
]));
$form_state
->setRedirectUrl($this
->getCancelUrl());
}
}