function RevisionRevertForm::submitForm

Same name and namespace in other branches
  1. 11.x core/lib/Drupal/Core/Entity/Form/RevisionRevertForm.php \Drupal\Core\Entity\Form\RevisionRevertForm::submitForm()

Form submission handler.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Overrides FormInterface::submitForm

File

core/lib/Drupal/Core/Entity/Form/RevisionRevertForm.php, line 158

Class

RevisionRevertForm
Provides a form for reverting an entity revision.

Namespace

Drupal\Core\Entity\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  $revisionId = $this->revision
    ->getRevisionId();
  $revisionLabel = $this->revision
    ->label();
  $bundleLabel = $this->getBundleLabel($this->revision);
  if ($this->revision instanceof RevisionLogInterface) {
    $originalRevisionTimestamp = $this->revision
      ->getRevisionCreationTime();
  }
  $this->revision = $this->prepareRevision($this->revision, $form_state);
  if (isset($originalRevisionTimestamp)) {
    $date = $this->dateFormatter
      ->format($originalRevisionTimestamp);
    $this->messenger
      ->addMessage($this->t('@type %title has been reverted to the revision from %revision-date.', [
      '@type' => $bundleLabel,
      '%title' => $revisionLabel,
      '%revision-date' => $date,
    ]));
  }
  else {
    $this->messenger
      ->addMessage($this->t('@type %title has been reverted.', [
      '@type' => $bundleLabel,
      '%title' => $revisionLabel,
    ]));
  }
  $this->logger($this->revision
    ->getEntityType()
    ->getProvider())
    ->info('@type: reverted %title revision %revision.', [
    '@type' => $this->revision
      ->bundle(),
    '%title' => $revisionLabel,
    '%revision' => $revisionId,
  ]);
  $versionHistoryUrl = $this->revision
    ->toUrl('version-history');
  if ($versionHistoryUrl->access($this->currentUser())) {
    $form_state->setRedirectUrl($versionHistoryUrl);
  }
  if (!$form_state->getRedirect()) {
    $canonicalUrl = $this->revision
      ->toUrl();
    if ($canonicalUrl->access($this->currentUser())) {
      $form_state->setRedirectUrl($canonicalUrl);
    }
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.