You are here

protected function LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm in Lingotek Translation 4.0.x

Same name and namespace in other branches
  1. 8.2 src/Form/LingotekManagementFormBase.php \Drupal\lingotek\Form\LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm()
  2. 3.0.x src/Form/LingotekManagementFormBase.php \Drupal\lingotek\Form\LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm()
  3. 3.1.x src/Form/LingotekManagementFormBase.php \Drupal\lingotek\Form\LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm()
  4. 3.2.x src/Form/LingotekManagementFormBase.php \Drupal\lingotek\Form\LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm()
  5. 3.3.x src/Form/LingotekManagementFormBase.php \Drupal\lingotek\Form\LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm()
  6. 3.4.x src/Form/LingotekManagementFormBase.php \Drupal\lingotek\Form\LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm()
  7. 3.5.x src/Form/LingotekManagementFormBase.php \Drupal\lingotek\Form\LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm()
  8. 3.6.x src/Form/LingotekManagementFormBase.php \Drupal\lingotek\Form\LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm()
  9. 3.7.x src/Form/LingotekManagementFormBase.php \Drupal\lingotek\Form\LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm()
  10. 3.8.x src/Form/LingotekManagementFormBase.php \Drupal\lingotek\Form\LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm()

Redirect to delete translations form.

Parameters

array $values: Array of ids to delete.

1 call to LingotekManagementFormBase::redirectToDeleteMultipleTranslationsForm()
LingotekManagementFormBase::submitForm in src/Form/LingotekManagementFormBase.php
Form submission handler.

File

src/Form/LingotekManagementFormBase.php, line 1005

Class

LingotekManagementFormBase
Form for bulk management of content.

Namespace

Drupal\lingotek\Form

Code

protected function redirectToDeleteMultipleTranslationsForm($values, FormStateInterface $form_state) {
  $entityInfo = [];
  $entities = $this
    ->getSelectedEntities($values);
  $languages = $this->languageManager
    ->getLanguages();
  foreach ($entities as $entity) {
    $source_language = $entity
      ->getUntranslated()
      ->language();
    foreach ($languages as $langcode => $language) {
      if ($source_language
        ->getId() !== $langcode && $entity
        ->hasTranslation($langcode)) {

        /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
        $entityInfo[$entity
          ->id()][$langcode] = $langcode;
      }
    }
  }
  if (!empty($entityInfo)) {
    $this->tempStoreFactory
      ->get('entity_delete_multiple_confirm')
      ->set($this
      ->currentUser()
      ->id() . ':' . $this->entityTypeId, $entityInfo);
    $form_state
      ->setRedirectUrl(Url::fromUserInput($entity
      ->getEntityType()
      ->getLinkTemplate('delete-multiple-form'), [
      'query' => $this
        ->getDestinationWithQueryArray(),
    ]));
  }
  else {
    $this
      ->messenger()
      ->addWarning($this
      ->t('No valid translations for deletion.'));

    // Ensure selection is persisted.
    $form_state
      ->setRebuild();
  }
}