You are here

public function ClusterDeleteForm::submitForm in Elasticsearch Connector 8.7

Same name and namespace in other branches
  1. 8 src/Form/ClusterDeleteForm.php \Drupal\elasticsearch_connector\Form\ClusterDeleteForm::submitForm()
  2. 8.2 src/Form/ClusterDeleteForm.php \Drupal\elasticsearch_connector\Form\ClusterDeleteForm::submitForm()
  3. 8.5 src/Form/ClusterDeleteForm.php \Drupal\elasticsearch_connector\Form\ClusterDeleteForm::submitForm()
  4. 8.6 src/Form/ClusterDeleteForm.php \Drupal\elasticsearch_connector\Form\ClusterDeleteForm::submitForm()

Throws

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException

\Drupal\Component\Plugin\Exception\PluginNotFoundException

\Drupal\Core\Entity\EntityStorageException

Overrides EntityForm::submitForm

File

src/Form/ClusterDeleteForm.php, line 99

Class

ClusterDeleteForm
Defines a confirmation form for deletion of a custom menu.

Namespace

Drupal\elasticsearch_connector\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  $storage = $this->entityManager
    ->getStorage('elasticsearch_index');
  $indices = $storage
    ->loadByProperties([
    'server' => $this->entity->cluster_id,
  ]);

  // TODO: handle indices linked to the cluster being deleted.
  if (count($indices)) {
    $this
      ->messenger()
      ->addError($this
      ->t('The cluster %title cannot be deleted as it still has indices.', [
      '%title' => $this->entity
        ->label(),
    ]));
    return;
  }
  if ($this->entity
    ->id() == $this->clusterManager
    ->getDefaultCluster()) {
    $this
      ->messenger()
      ->addError($this
      ->t('The cluster %title cannot be deleted as it is set as the default cluster.', [
      '%title' => $this->entity
        ->label(),
    ]));
  }
  else {
    $this->entity
      ->delete();
    $this
      ->messenger()
      ->addMessage($this
      ->t('The cluster %title has been deleted.', [
      '%title' => $this->entity
        ->label(),
    ]));
    $form_state
      ->setRedirect('elasticsearch_connector.config_entity.list');
  }
}