class MaestroTemplateListBuilder in Maestro 8.2
Same name and namespace in other branches
- 3.x src/Controller/MaestroTemplateListBuilder.php \Drupal\maestro\Controller\MaestroTemplateListBuilder
Provides a listing of Maestro Template entities.
@package Drupal\maestro\Controller
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityListBuilder implements EntityHandlerInterface, EntityListBuilderInterface uses MessengerTrait, RedirectDestinationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder
- class \Drupal\maestro\Controller\MaestroTemplateListBuilder
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder
- class \Drupal\Core\Entity\EntityListBuilder implements EntityHandlerInterface, EntityListBuilderInterface uses MessengerTrait, RedirectDestinationTrait
Expanded class hierarchy of MaestroTemplateListBuilder
File
- src/
Controller/ MaestroTemplateListBuilder.php, line 16
Namespace
Drupal\maestro\ControllerView source
class MaestroTemplateListBuilder extends ConfigEntityListBuilder {
/**
* Builds the header row for the entity listing.
*
* @return array
* A render array structure of header strings.
*
* @see Drupal\Core\Entity\EntityListController::render()
*/
public function buildHeader() {
$header['label'] = $this
->t('Template');
$header['machine_name'] = $this
->t('Machine Name');
return $header + parent::buildHeader();
}
/**
* Builds a row for an entity in the entity listing.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity for which to build the row.
*
* @return array
* A render array of the table row for displaying the entity.
*
* @see Drupal\Core\Entity\EntityListController::render()
*/
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;
}
/**
* Adds some descriptive text to our entity list.
*
* @return array
* Renderable array.
*/
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;
}
/**
* {@inheritdoc}
*/
public function getOperations(EntityInterface $entity) {
$operations = parent::getOperations($entity);
$user = \Drupal::currentUser();
/*
* Check and see if the maestro task console is enabled
*/
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,
];
}
/*
* Check to see if the current user has permission to start this process
*/
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,
]);
// Weight sorting seemingly wasn't happening. Just making sure I can sort by weight for our purposes.
uasort($operations, '\\Drupal\\Component\\Utility\\SortArray::sortByWeightElement');
}
else {
// Make sure the edit is unset for those without this permission.
unset($operations['edit']);
}
return $operations;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigEntityListBuilder:: |
public | function |
Gets this list's default operations. Overrides EntityListBuilder:: |
15 |
ConfigEntityListBuilder:: |
public | function |
Loads entities of this type from storage for listing. Overrides EntityListBuilder:: |
7 |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
EntityHandlerBase:: |
protected | property | The module handler to invoke hooks on. | 2 |
EntityHandlerBase:: |
protected | function | Gets the module handler. | 2 |
EntityHandlerBase:: |
public | function | Sets the module handler for this handler. | |
EntityListBuilder:: |
protected | property | Information about the entity type. | |
EntityListBuilder:: |
protected | property | The entity type ID. | |
EntityListBuilder:: |
protected | property | The number of entities to list per page, or FALSE to list all entities. | 3 |
EntityListBuilder:: |
protected | property | The entity storage class. | 1 |
EntityListBuilder:: |
public | function | Builds a renderable list of operation links for the entity. | 2 |
EntityListBuilder:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides EntityHandlerInterface:: |
20 |
EntityListBuilder:: |
protected | function | Ensures that a destination is present on the given URL. | |
EntityListBuilder:: |
protected | function | Loads entity IDs using a pager sorted by the entity id. | 4 |
EntityListBuilder:: |
protected | function | Gets the label of an entity. | |
EntityListBuilder:: |
public | function |
Gets the entity storage. Overrides EntityListBuilderInterface:: |
|
EntityListBuilder:: |
protected | function | Gets the title of the page. | 1 |
EntityListBuilder:: |
public | function | Constructs a new EntityListBuilder object. | 16 |
MaestroTemplateListBuilder:: |
public | function |
Builds the header row for the entity listing. Overrides EntityListBuilder:: |
|
MaestroTemplateListBuilder:: |
public | function |
Builds a row for an entity in the entity listing. Overrides EntityListBuilder:: |
|
MaestroTemplateListBuilder:: |
public | function |
Provides an array of information to build a list of operation links. Overrides EntityListBuilder:: |
|
MaestroTemplateListBuilder:: |
public | function |
Adds some descriptive text to our entity list. Overrides EntityListBuilder:: |
|
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |