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 Symfony\Component\DependencyInjection\ContainerInterface;
12 * Defines a form for reverting views metatags.
14 class MetatagViewsRevertForm extends ConfirmFormBase {
17 * Entity manager for views entities.
19 * @var \Drupal\Core\Entity\EntityTypeManagerInterface
21 protected $viewsManager;
24 * The view entity to revert meta tags on.
26 * @var \Drupal\views\ViewEntityInterface
31 * The view's display id.
40 public function __construct(EntityTypeManagerInterface $entity_manager) {
41 $this->viewsManager = $entity_manager->getStorage('view');
47 public static function create(ContainerInterface $container) {
49 $container->get('entity_type.manager')
56 public function getFormId() {
57 return 'metatag_views_revert_form';
63 public function getQuestion() {
64 return $this->t('Do you want to revert meta tags for @view_name : @display_name?', [
65 '@view_name' => $this->view->label(),
66 '@display_name' => $this->view->getDisplay($this->displayId)['display_title'],
73 public function getCancelUrl() {
74 return new Url('metatag_views.metatags.list');
80 public function getDescription() {
81 return $this->t('You are about to revert the custom meta tags for the %display_name display on the %view_name view. This action cannot be undone.', [
82 '%view_name' => $this->view->label(),
83 '%display_name' => $this->view->getDisplay($this->displayId)['display_title'],
90 public function getConfirmText() {
91 return $this->t('Revert');
97 public function getCancelText() {
98 return $this->t('Cancel');
104 public function buildForm(array $form, FormStateInterface $form_state, $view_id = NULL, $display_id = NUL) {
105 $this->view = $this->viewsManager->load($view_id);
106 $this->displayId = $display_id;
108 return parent::buildForm($form, $form_state);
114 public function submitForm(array &$form, FormStateInterface $form_state) {
115 // Removed meta tags from the view.
116 $config_name = $this->view->getConfigDependencyName();
117 $config_path = 'display.' . $this->displayId . '.display_options.display_extenders.metatag_display_extender.metatags';
119 $this->configFactory()->getEditable($config_name)
120 ->clear($config_path)
123 // Redirect back to the views list.
124 $form_state->setRedirect('metatag_views.metatags.list');
126 drupal_set_message($this->t('Reverted meta tags for @view_name : @display_name', [
127 '@view_name' => $this->view->label(),
128 '@display_name' => $this->view->getDisplay($this->displayId)['display_title'],