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

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

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