ConfigImportConfirmForm.php in Configuration Update Manager 8
File
config_update_ui/src/Form/ConfigImportConfirmForm.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 ConfigImportConfirmForm 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_import_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');
}
$extension = $this->configRevert
->getFromExtension($this->type, $this->name);
$active = $this->configRevert
->getFromActive($this->type, $this->name);
if (!$extension || $active) {
throw new NotFoundHttpException();
}
return $this
->t('Are you sure you want to import the %type config %item from its source configuration?', [
'%type' => $type_label,
'%item' => $this->name,
]);
}
public function getCancelUrl() {
return new Url('config_update_ui.report');
}
public function getDescription() {
return $this
->t('Configuration will be added to your site. This action cannot be undone.');
}
public function getConfirmText() {
return $this
->t('Import');
}
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
->import($this->type, $this->name);
$this
->messenger()
->addMessage($this
->t('The configuration %item has been imported from its source.', [
'%item' => $this->name,
]));
$form_state
->setRedirectUrl($this
->getCancelUrl());
}
}