Issue #2045043 by bechtold, vijaycs85, YesCT, Gábor Hojtsy: Fixed Field listings operations cannot be altered.

8.0.x
Alex Pott 2013-08-05 11:15:40 +02:00
parent 1d2de46266
commit faaaaae67c
1 changed files with 17 additions and 3 deletions

View File

@ -9,6 +9,7 @@ namespace Drupal\field_ui;
use Drupal\Core\Entity\EntityManager;
use Drupal\Core\Entity\Field\FieldTypePluginManager;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\field_ui\OverviewBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\field\Plugin\Core\Entity\Field;
@ -25,6 +26,13 @@ class FieldOverview extends OverviewBase {
*/
protected $fieldTypeManager;
/**
* The module handler service.
*
* @var \Drupal\Core\Extension\ModuleHandlerInterface
*/
protected $moduleHandler;
/**
* Constructs a new FieldOverview.
*
@ -32,10 +40,13 @@ class FieldOverview extends OverviewBase {
* The entity manager.
* @param \Drupal\Core\Entity\Field\FieldTypePluginManager $field_type_manager
* The field type manager
* @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
* The module handler to invoke hooks on.
*/
public function __construct(EntityManager $entity_manager, FieldTypePluginManager $field_type_manager) {
$this->entityManager = $entity_manager;
public function __construct(EntityManager $entity_manager, FieldTypePluginManager $field_type_manager, ModuleHandlerInterface $module_handler) {
parent::__construct($entity_manager);
$this->fieldTypeManager = $field_type_manager;
$this->moduleHandler = $module_handler;
}
/**
@ -44,7 +55,8 @@ class FieldOverview extends OverviewBase {
public static function create(ContainerInterface $container) {
return new static(
$container->get('plugin.manager.entity'),
$container->get('plugin.manager.entity.field.field_type')
$container->get('plugin.manager.entity.field.field_type'),
$container->get('module_handler')
);
}
@ -142,6 +154,8 @@ class FieldOverview extends OverviewBase {
'href' => "$admin_field_path/delete",
'attributes' => array('title' => t('Delete instance.')),
);
// Allow altering the operations on this entity listing.
$this->moduleHandler->alter('entity_operation', $links, $instance);
$table[$name]['operations']['data'] = array(
'#type' => 'operations',
'#links' => $links,