class RulesComponentListBuilder
Defines a class to build a listing of RulesComponentConfig entities.
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait
- class \Drupal\Core\Entity\EntityListBuilder extends \Drupal\Core\Entity\EntityHandlerBase implements \Drupal\Core\Entity\EntityListBuilderInterface, \Drupal\Core\Entity\EntityHandlerInterface uses \Drupal\Core\Messenger\MessengerTrait, \Drupal\Core\Routing\RedirectDestinationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder extends \Drupal\Core\Entity\EntityListBuilder
- class \Drupal\rules\Controller\RulesComponentListBuilder extends \Drupal\Core\Config\Entity\ConfigEntityListBuilder
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder extends \Drupal\Core\Entity\EntityListBuilder
- class \Drupal\Core\Entity\EntityListBuilder extends \Drupal\Core\Entity\EntityHandlerBase implements \Drupal\Core\Entity\EntityListBuilderInterface, \Drupal\Core\Entity\EntityHandlerInterface uses \Drupal\Core\Messenger\MessengerTrait, \Drupal\Core\Routing\RedirectDestinationTrait
Expanded class hierarchy of RulesComponentListBuilder
See also
\Drupal\rules\Entity\RulesComponent
File
-
src/
Controller/ RulesComponentListBuilder.php, line 17
Namespace
Drupal\rules\ControllerView source
class RulesComponentListBuilder extends ConfigEntityListBuilder {
/**
* The expression manager.
*
* @var \Drupal\rules\Engine\ExpressionManagerInterface
*/
protected $expressionManager;
/**
* Constructs a new RulesComponentListBuilder object.
*
* @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
* The entity type definition.
* @param \Drupal\Core\Entity\EntityStorageInterface $storage
* The entity storage class.
* @param \Drupal\rules\Engine\ExpressionManagerInterface $expression_manager
* The rules expression plugin manager.
*/
public function __construct(EntityTypeInterface $entity_type, EntityStorageInterface $storage, ExpressionManagerInterface $expression_manager) {
parent::__construct($entity_type, $storage);
// Disable the pager because this list builder uses client-side filters,
// which requires all entities to be listed.
$this->limit = FALSE;
$this->expressionManager = $expression_manager;
}
/**
* {@inheritdoc}
*/
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
return new static($entity_type, $container->get('entity_type.manager')
->getStorage($entity_type->id()), $container->get('plugin.manager.rules_expression'));
}
/**
* {@inheritdoc}
*
* Building the header and content lines for the contact list.
*
* Calling the parent::buildHeader() adds a column for the possible actions
* and inserts the 'edit' and 'delete' links as defined for the entity type.
*/
public function buildHeader() {
$header['label'] = $this->t('Rules Component');
$header['plugin'] = $this->t('Type');
$header['description'] = $this->t('Description');
return $header + parent::buildHeader();
}
/**
* {@inheritdoc}
*/
public function buildRow(EntityInterface $entity) {
$expression_config = $entity->getExpression()
->getConfiguration();
$definition = $this->expressionManager
->getDefinition($expression_config['id']);
$plugin_type = $definition['label'];
/** @var \Drupal\rules\Entity\RulesComponentConfig $entity */
$details = $this->t('Machine name: @name', [
'@name' => $entity->id(),
]);
if ($entity->hasTags()) {
$details = $details . '<br />' . $this->t('Tags: @tags', [
'@tags' => implode(', ', $entity->getTags()),
]);
}
$row['label']['data-drupal-selector'] = 'rules-table-filter-text-source';
$row['label']['data'] = [
'#plain_text' => $entity->label(),
'#suffix' => '<div class="description">' . $details . '</div>',
];
$row['plugin']['data-drupal-selector'] = 'rules-table-filter-text-source';
$row['plugin']['data'] = [
'#plain_text' => $plugin_type,
];
$row['description']['data-drupal-selector'] = 'rules-table-filter-text-source';
$row['description']['data'] = [
'#type' => 'processed_text',
'#text' => $entity->getDescription(),
'#format' => 'restricted_html',
];
return $row + parent::buildRow($entity);
}
/**
* {@inheritdoc}
*/
public function buildOperations(EntityInterface $entity) {
$build = parent::buildOperations($entity);
uasort($build['#links'], 'Drupal\\Component\\Utility\\SortArray::sortByWeightElement');
return $build;
}
/**
* {@inheritdoc}
*/
public function render() {
$build['#type'] = 'container';
$build['#attributes']['id'] = 'rules-entity-list';
$build['#attached']['library'][] = 'core/drupal.ajax';
$build['#attached']['library'][] = 'rules/rules_ui.listing';
$build['description'] = [
'#prefix' => '<p>',
'#markup' => $this->t('Components are stand-alone sets of Rules configuration that can be used by Rules and other modules on your site. Components are for example useful if you want to use the same conditions, actions or rules in multiple places, or call them from your custom module. You may also export each component separately. See the <a href=":documentation">online documentation</a> for more information about how to use components.', [
':documentation' => 'https://www.drupal.org/node/1300024',
]),
'#suffix' => '</p>',
];
$build['filters'] = [
'#type' => 'container',
'#attributes' => [
'class' => [
'table-filter',
'js-show',
],
],
];
$build['filters']['text'] = [
'#type' => 'search',
'#title' => $this->t('Filter'),
'#title_display' => 'invisible',
'#size' => 60,
'#placeholder' => $this->t('Filter by component name, machine name, description, or tag'),
'#attributes' => [
'class' => [
'rules-filter-text',
],
'data-table' => '.rules-listing-table',
'autocomplete' => 'off',
'title' => $this->t('Enter a part of the component name, machine name, description, or tag to filter by.'),
],
];
$build += parent::render();
$build['table']['#empty'] = $this->t('No rules components have been defined.');
$build['table']['#attributes'] = [
'class' => [
'rules-listing-table',
],
];
return $build;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
ConfigEntityListBuilder::getDefaultOperations | public | function | Gets this list's default operations. | Overrides EntityListBuilder::getDefaultOperations | 15 |
ConfigEntityListBuilder::load | public | function | Loads entities of this type from storage for listing. | Overrides EntityListBuilder::load | 7 |
DependencySerializationTrait::$_entityStorages | protected | property | |||
DependencySerializationTrait::$_serviceIds | protected | property | |||
DependencySerializationTrait::__sleep | public | function | 1 | ||
DependencySerializationTrait::__wakeup | public | function | 2 | ||
EntityHandlerBase::$moduleHandler | protected | property | The module handler to invoke hooks on. | 5 | |
EntityHandlerBase::moduleHandler | protected | function | Gets the module handler. | 5 | |
EntityHandlerBase::setModuleHandler | public | function | Sets the module handler for this handler. | ||
EntityListBuilder::$entityType | protected | property | Information about the entity type. | ||
EntityListBuilder::$entityTypeId | protected | property | The entity type ID. | ||
EntityListBuilder::$limit | protected | property | The number of entities to list per page, or FALSE to list all entities. | ||
EntityListBuilder::$storage | protected | property | The entity storage class. | 1 | |
EntityListBuilder::ensureDestination | protected | function | Ensures that a destination is present on the given URL. | 1 | |
EntityListBuilder::getEntityIds | protected | function | Loads entity IDs using a pager sorted by the entity id. | 4 | |
EntityListBuilder::getOperations | public | function | Provides an array of information to build a list of operation links. | Overrides EntityListBuilderInterface::getOperations | 2 |
EntityListBuilder::getStorage | public | function | Gets the entity storage. | Overrides EntityListBuilderInterface::getStorage | |
EntityListBuilder::getTitle | protected | function | Gets the title of the page. | 1 | |
MessengerTrait::$messenger | protected | property | The messenger. | 17 | |
MessengerTrait::messenger | public | function | Gets the messenger. | 17 | |
MessengerTrait::setMessenger | public | function | Sets the messenger. | ||
RedirectDestinationTrait::$redirectDestination | protected | property | The redirect destination service. | 1 | |
RedirectDestinationTrait::getDestinationArray | protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | ||
RedirectDestinationTrait::getRedirectDestination | protected | function | Returns the redirect destination service. | ||
RedirectDestinationTrait::setRedirectDestination | public | function | Sets the redirect destination service. | ||
RulesComponentListBuilder::$expressionManager | protected | property | The expression manager. | ||
RulesComponentListBuilder::buildHeader | public | function | Building the header and content lines for the contact list. | Overrides EntityListBuilder::buildHeader | |
RulesComponentListBuilder::buildOperations | public | function | Builds a renderable list of operation links for the entity. | Overrides EntityListBuilder::buildOperations | |
RulesComponentListBuilder::buildRow | public | function | Builds a row for an entity in the entity listing. | Overrides EntityListBuilder::buildRow | |
RulesComponentListBuilder::createInstance | public static | function | Instantiates a new instance of this entity handler. | Overrides EntityListBuilder::createInstance | |
RulesComponentListBuilder::render | public | function | Builds the entity listing as renderable array for table.html.twig. | Overrides EntityListBuilder::render | |
RulesComponentListBuilder::__construct | public | function | Constructs a new RulesComponentListBuilder object. | Overrides EntityListBuilder::__construct | |
StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | |
StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | ||
StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | ||
StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | ||
StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | |
StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. |