You are here

public static function DownloadByJobItemsTmgmtActionApproveForm::processBatch in TMGMT Translator Smartling 8.4

File

src/Form/DownloadByJobItemsTmgmtActionApproveForm.php, line 105

Class

DownloadByJobItemsTmgmtActionApproveForm
Provides a confirmation form for sending multiple content entities.

Namespace

Drupal\tmgmt_smartling\Form

Code

public static function processBatch(array $data, array &$context) {
  if (!isset($context['results']['errors'])) {
    $context['results']['errors'] = [];
    $context['results']['count'] = 0;
  }
  $job = Job::load($data["tjid"]);
  $job_item = JobItem::load($data["tjiid"]);
  if (!$job) {
    $context['results']['errors'][] = t('TMGMT Job @id not found', [
      '@id' => $data["tjid"],
    ]);
  }
  if (!$job_item) {
    $context['results']['errors'][] = t('TMGMT Job Item @id not found', [
      '@id' => $data["tjiid"],
    ]);
  }
  if ($translator = $job
    ->getTranslator()) {
    $plugin = $translator
      ->getPlugin();
    if ($plugin instanceof ExtendedTranslatorPluginInterface && $plugin
      ->downloadTranslation($job, $job_item)) {
      $context['results']['count']++;
    }
    else {
      $context['results']['errors'][] = new FormattableMarkup('Error downloading %name', [
        '%name' => $job
          ->label(),
      ]);
      return;
    }
    $context['message'] = new FormattableMarkup('Processed %name.', [
      '%name' => $job
        ->label(),
    ]);
  }
  else {
    $context['message'] = new FormattableMarkup('Skipped %name.', [
      '%name' => $job
        ->label(),
    ]);
  }
}