MaestroTemplateListBuilder.php in Maestro 3.x
File
src/Controller/MaestroTemplateListBuilder.php
View source
<?php
namespace Drupal\maestro\Controller;
use Drupal\Core\Config\Entity\ConfigEntityListBuilder;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Url;
class MaestroTemplateListBuilder extends ConfigEntityListBuilder {
public function buildHeader() {
$header['label'] = $this
->t('Template');
$header['machine_name'] = $this
->t('Machine Name');
return $header + parent::buildHeader();
}
public function buildRow(EntityInterface $entity) {
$valid = FALSE;
$validity_message = '<span class="maestro-template-validation-failed">(*' . $this
->t('Needs Validation') . ')</span>';
if (isset($entity->validated) && $entity->validated == TRUE) {
$validity_message = '';
}
$row['label'] = [
'data' => [
'#markup' => $entity
->label() . $validity_message,
],
];
$row['machine_name'] = $entity
->id();
$row = $row + parent::buildRow($entity);
return $row;
}
public function render() {
$build['description'] = [
'#markup' => $this
->t("<p>This is the full listing of Maestro Templates in your system.</p>"),
'#attached' => [
'library' => 'maestro/maestro-engine-css',
],
];
$build[] = parent::render();
return $build;
}
public function getOperations(EntityInterface $entity) {
$operations = parent::getOperations($entity);
$user = \Drupal::currentUser();
if (\Drupal::moduleHandler()
->moduleExists('maestro_template_builder')) {
$operations['tasks'] = [
'title' => t('Task Editor'),
'url' => Url::fromUserInput('/template-builder/' . $entity->id),
'weight' => 1,
];
}
if ($user
->hasPermission('start template ' . $entity->id)) {
$operations['start_process'] = [
'title' => t('Start Process'),
'url' => Url::fromRoute('maestro.start_process', [
'templateMachineName' => $entity->id,
]),
'weight' => 10,
];
}
if (\Drupal::currentUser()
->hasPermission('administer maestro templates')) {
$operations['edit']['title'] = t('Edit Template');
$operations['edit']['weight'] = 5;
$operations['edit']['url'] = Url::fromRoute('entity.maestro_template.edit_form', [
'maestro_template' => $entity->id,
]);
uasort($operations, '\\Drupal\\Component\\Utility\\SortArray::sortByWeightElement');
}
else {
unset($operations['edit']);
}
return $operations;
}
}