Builds a table row for overview form.
\Drupal\Core\Config\Entity\ConfigEntityInterface $entity: Data needed to build the list row.
array A single table row for the overview.
public function overviewRow(ConfigEntityInterface $entity) {
$label = $entity
->label() ?: $this
->t('@type: @id', array(
'@type' => $entity
->getEntityTypeId(),
'@id' => $entity
->id(),
));
// Get current job items for the entity to determine translation statuses.
$source_lang = $entity
->language()
->getId();
$current_job_items = tmgmt_job_item_load_latest('config', $entity
->getEntityTypeId(), $entity
->getConfigDependencyName(), $source_lang);
$row['id'] = $entity
->id();
$definition = \Drupal::entityTypeManager()
->getDefinition($entity
->bundle());
$row['config_id'] = $definition
->getConfigPrefix() . '.' . $entity
->id();
if ($entity
->hasLinkTemplate('edit-form')) {
$row['title'] = $entity
->toLink($label, 'edit-form');
}
else {
// If the entity doesn't have a link we display a label.
$row['title'] = $label;
}
// Load entity translation specific data.
foreach (\Drupal::languageManager()
->getLanguages() as $langcode => $language) {
$translation_status = 'current';
if ($langcode == $source_lang) {
$translation_status = 'original';
}
elseif (!$this
->isTranslated($langcode, $entity
->getConfigDependencyName())) {
$translation_status = 'missing';
}
// @todo Find a way to support marking configuration translations as outdated.
$build = $this
->buildTranslationStatus($translation_status, isset($current_job_items[$langcode]) ? $current_job_items[$langcode] : NULL);
$row['langcode-' . $langcode] = [
'data' => \Drupal::service('renderer')
->render($build),
'class' => array(
'langstatus-' . $langcode,
),
];
}
return $row;
}