layoutTempstoreRepository = $layout_tempstore_repository; $this->messenger = $messenger; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { return new static( $container->get('layout_builder.tempstore_repository'), $container->get('messenger') ); } /** * {@inheritdoc} */ public function getFormId() { return 'layout_builder_revert_overrides'; } /** * {@inheritdoc} */ public function getQuestion() { return $this->t('Are you sure you want to revert this to defaults?'); } /** * {@inheritdoc} */ public function getConfirmText() { return $this->t('Revert'); } /** * {@inheritdoc} */ public function getCancelUrl() { return $this->sectionStorage->getLayoutBuilderUrl(); } /** * {@inheritdoc} */ public function buildForm(array $form, FormStateInterface $form_state, SectionStorageInterface $section_storage = NULL) { if (!$section_storage instanceof OverridesSectionStorageInterface) { throw new \InvalidArgumentException(sprintf('The section storage with type "%s" and ID "%s" does not provide overrides', $section_storage->getStorageType(), $section_storage->getStorageId())); } $this->sectionStorage = $section_storage; return parent::buildForm($form, $form_state); } /** * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { // Remove all sections. while ($this->sectionStorage->count()) { $this->sectionStorage->removeSection(0); } $this->sectionStorage->save(); $this->layoutTempstoreRepository->delete($this->sectionStorage); $this->messenger->addMessage($this->t('The layout has been reverted back to defaults.')); $form_state->setRedirectUrl($this->getCancelUrl()); } }