public function SendContextActionApproveForm::submitForm in TMGMT Translator Smartling 8
Same name and namespace in other branches
- 8.4 src/Form/SendContextActionApproveForm.php \Drupal\tmgmt_smartling\Form\SendContextActionApproveForm::submitForm()
- 8.2 src/Form/SendContextActionApproveForm.php \Drupal\tmgmt_smartling\Form\SendContextActionApproveForm::submitForm()
- 8.3 src/Form/SendContextActionApproveForm.php \Drupal\tmgmt_smartling\Form\SendContextActionApproveForm::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
- src/
Form/ SendContextActionApproveForm.php, line 194
Class
- SendContextActionApproveForm
- Provides a confirmation form for sending multiple content entities.
Namespace
Drupal\tmgmt_smartling\FormCode
public function submitForm(array &$form, FormStateInterface $form_state) {
$current_user_id = $this
->currentUser()
->id();
$temp_storage_name = $this
->getTempStorageName();
// Clear out the accounts from the temp store.
$this->tempStoreFactory
->get($temp_storage_name)
->delete($current_user_id);
if (!$form_state
->getValue('confirm')) {
return;
}
//@todo:change this when we add the support for queues.
$is_batch = TRUE;
$operations = [];
foreach ($this->entityIds as $id => $entity_type) {
// Make sure all submissions exists.
$item_data = [
'entity_type' => $entity_type,
'entity_id' => $id,
];
if ($is_batch) {
$operations[] = [
[
get_class($this),
'processBatch',
],
[
$item_data,
],
];
}
else {
$this->queue
->createItem($item_data);
}
}
try {
$ids = array_keys($this->entityIds);
$job_item_id = reset($ids);
$translator = JobItem::load($job_item_id)
->getTranslator();
if (!empty($translator)) {
$translator_settings = $translator
->getSettings();
\Drupal::getContainer()
->get('tmgmt_smartling.utils.context.user_auth')
->switchUser($translator_settings['contextUsername'], $translator_settings['context_silent_user_switching']);
}
else {
drupal_set_message(t('Context was not sent to Smartling, because Smartling provider was not selected for one of these jobs: @jids', [
'@jids' => implode(' ,', $ids),
]), 'error');
}
} catch (Exception $e) {
watchdog_exception('tmgmt_smartling', $e);
}
if ($is_batch && $operations) {
$batch = [
'title' => t('Uploading to Smartling'),
'operations' => $operations,
'finished' => [
get_class($this),
'finishBatch',
],
];
batch_set($batch);
}
else {
$form_state
->setRedirect('system.admin_content');
}
}