3 namespace Drupal\metatag_views\Form;
5 use Drupal\Core\Entity\EntityTypeManagerInterface;
6 use Drupal\Core\Form\ConfirmFormBase;
7 use Drupal\Core\Form\FormStateInterface;
9 use Drupal\views\ViewEntityInterface;
10 use Symfony\Component\DependencyInjection\ContainerInterface;
13 * Defines a confirmation form for deleting mymodule data.
15 class MetatagViewsRevertForm extends ConfirmFormBase {
18 * Entity manager for views entities.
20 * @var EntityTypeManagerInterface
22 protected $viewsManager;
25 * The view entity to revert metatags on.
27 * @var ViewEntityInterface $view
32 * The view's display id.
36 protected $display_id;
41 public function __construct(EntityTypeManagerInterface $entity_manager) {
42 $this->viewsManager = $entity_manager->getStorage('view');
48 public static function create(ContainerInterface $container) {
50 $container->get('entity_type.manager')
57 public function getFormId() {
58 return 'metatag_views_revert_form';
64 public function getQuestion() {
65 return $this->t('Do you want to revert metatags for @view_name : @display_name?', [
66 '@view_name' => $this->view->label(),
67 '@display_name' => $this->view->getDisplay($this->display_id)['display_title'],
74 public function getCancelUrl() {
75 return new Url('metatag_views.metatags.list');
81 public function getDescription() {
82 return $this->t('You are about to revert the custom metatags for the %display_name display on the %view_name view. This action cannot be undone.', [
83 '%view_name' => $this->view->label(),
84 '%display_name' => $this->view->getDisplay($this->display_id)['display_title'],
91 public function getConfirmText() {
92 return $this->t('Revert');
98 public function getCancelText() {
99 return $this->t('Cancel');
106 * (optional) The ID of the item to be deleted.
108 public function buildForm(array $form, FormStateInterface $form_state, $view_id = NULL, $display_id = NUL) {
109 $this->view = $this->viewsManager->load($view_id);
110 $this->display_id = $display_id;
112 return parent::buildForm($form, $form_state);
118 public function submitForm(array &$form, FormStateInterface $form_state) {
119 // Removed metatags from the view.
120 $config_name = $this->view->getConfigDependencyName();
121 $config_path = 'display.' . $this->display_id . '.display_options.display_extenders.metatag_display_extender.metatags';
123 $configuration = $this->configFactory()->getEditable($config_name)
124 ->clear($config_path)
127 // Redirect back to the views list.
128 $form_state->setRedirect('metatag_views.metatags.list');
130 drupal_set_message($this->t('Reverted metatags for @view_name : @display_name', [
131 '@view_name' => $this->view->label(),
132 '@display_name' => $this->view->getDisplay($this->display_id)['display_title'],