actionManager = $action_manager; } /** * {@inheritdoc} */ public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) { return new static( $entity_type, $container->get('entity.manager')->getStorage($entity_type->id()), $container->get('plugin.manager.action') ); } /** * {@inheritdoc} */ public function load() { $entities = parent::load(); foreach ($entities as $entity) { if ($entity->isConfigurable()) { $this->hasConfigurableActions = TRUE; continue; } } return $entities; } /** * {@inheritdoc} */ public function buildRow(EntityInterface $entity) { $row['type'] = $entity->getType(); $row['label'] = $entity->label(); if ($this->hasConfigurableActions) { $row += parent::buildRow($entity); } return $row; } /** * {@inheritdoc} */ public function buildHeader() { $header = [ 'type' => t('Action type'), 'label' => t('Label'), ] + parent::buildHeader(); return $header; } /** * {@inheritdoc} */ public function getDefaultOperations(EntityInterface $entity) { $operations = $entity->isConfigurable() ? parent::getDefaultOperations($entity) : []; if (isset($operations['edit'])) { $operations['edit']['title'] = t('Configure'); } return $operations; } /** * {@inheritdoc} */ public function render() { $build['action_admin_manage_form'] = \Drupal::formBuilder()->getForm('Drupal\action\Form\ActionAdminManageForm'); $build['action_header']['#markup'] = '

' . $this->t('Available actions:') . '

'; $build['action_table'] = parent::render(); if (!$this->hasConfigurableActions) { unset($build['action_table']['table']['#header']['operations']); } return $build; } }