public function LocalTaskItemForm::form in Translation Management Tool 8
Gets the actual form array to be built.
Overrides ContentEntityForm::form
See also
\Drupal\Core\Entity\EntityForm::processForm()
\Drupal\Core\Entity\EntityForm::afterBuild()
File
- translators/
tmgmt_local/ src/ Form/ LocalTaskItemForm.php, line 35
Class
- LocalTaskItemForm
- Form controller for the localTaskItem edit forms.
Namespace
Drupal\tmgmt_local\FormCode
public function form(array $form, FormStateInterface $form_state) {
$form = parent::form($form, $form_state);
$task_item = $this->entity;
$form['#title'] = $task_item
->label();
$job_item = $task_item
->getJobItem();
$job = $job_item
->getJob();
$form['info'] = array(
'#type' => 'container',
'#attributes' => array(
'class' => array(
'tmgmt-local-task-info',
'clearfix',
),
),
'#weight' => 0,
);
$url = $job_item
->getSourceUrl();
$form['info']['source'] = array(
'#type' => 'item',
'#title' => t('Source'),
'#markup' => $url ? Link::fromTextAndUrl($job_item
->getSourceLabel(), $url)
->toString() : $job_item
->getSourceLabel(),
'#prefix' => '<div class="tmgmt-ui-source tmgmt-ui-info-item">',
'#suffix' => '</div>',
);
$form['info']['sourcetype'] = array(
'#type' => 'item',
'#title' => t('Source type'),
'#markup' => $job_item
->getSourceType(),
'#prefix' => '<div class="tmgmt-ui-source-type tmgmt-ui-info-item">',
'#suffix' => '</div>',
);
$form['info']['source_language'] = array(
'#type' => 'item',
'#title' => t('Source language'),
'#markup' => $job_item
->getJob()
->getSourceLanguage()
->getName(),
'#prefix' => '<div class="tmgmt-ui-source-language tmgmt-ui-info-item">',
'#suffix' => '</div>',
);
$form['info']['target_language'] = array(
'#type' => 'item',
'#title' => t('Target language'),
'#markup' => $job_item
->getJob()
->getTargetLanguage()
->getName(),
'#prefix' => '<div class="tmgmt-ui-target-language tmgmt-ui-info-item">',
'#suffix' => '</div>',
);
$form['info']['changed'] = array(
'#type' => 'item',
'#title' => t('Last change'),
'#value' => $task_item
->getChangedTime(),
'#markup' => \Drupal::service('date.formatter')
->format($task_item
->getChangedTime()),
'#prefix' => '<div class="tmgmt-ui-changed tmgmt-ui-info-item">',
'#suffix' => '</div>',
);
$statuses = LocalTaskItem::getStatuses();
$form['info']['status'] = array(
'#type' => 'item',
'#title' => t('Status'),
'#markup' => $statuses[$task_item
->getStatus()],
'#prefix' => '<div class="tmgmt-ui-task-item-status tmgmt-ui-info-item">',
'#suffix' => '</div>',
'#value' => $task_item
->getStatus(),
);
$task = $task_item
->getTask();
$url = $task
->toUrl();
$form['info']['task'] = array(
'#type' => 'item',
'#title' => t('Task'),
'#markup' => Link::fromTextAndUrl($task
->label(), $url)
->toString(),
'#prefix' => '<div class="tmgmt-ui-task tmgmt-ui-info-item">',
'#suffix' => '</div>',
);
if ($job
->getSetting('job_comment')) {
$form['job_comment'] = array(
'#type' => 'item',
'#title' => t('Job comment'),
'#markup' => Xss::filter($job
->getSetting('job_comment')),
);
}
$form['translation'] = array(
'#type' => 'container',
);
// Build the translation form.
$data = $task_item
->getData();
// Need to keep the first hierarchy. So flatten must take place inside
// of the foreach loop.
$zebra = 'even';
foreach (Element::children($data) as $key) {
$flattened = \Drupal::service('tmgmt.data')
->flatten($data[$key], $key);
$form['translation'][$key] = $this
->formElement($flattened, $task_item, $zebra);
}
$form['footer'] = tmgmt_color_local_review_legend();
$form['#attached']['library'][] = 'tmgmt/admin';
return $form;
}