From faaaaae67c3a0efe23bbbd79dff414c9664de8fd Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Mon, 5 Aug 2013 11:15:40 +0200
Subject: [PATCH] =?UTF-8?q?Issue=20#2045043=20by=20bechtold,=20vijaycs85,?=
 =?UTF-8?q?=20YesCT,=20G=C3=A1bor=20Hojtsy:=20Fixed=20Field=20listings=20o?=
 =?UTF-8?q?perations=20cannot=20be=20altered.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../lib/Drupal/field_ui/FieldOverview.php     | 20 ++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php b/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php
index d4c392ca6aaa..621c08dd85f4 100644
--- a/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php
+++ b/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php
@@ -9,6 +9,7 @@
 
 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 @@ public function __construct(EntityManager $entity_manager, FieldTypePluginManage
   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 @@ public function buildForm(array $form, array &$form_state, $entity_type = NULL,
         '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,
-- 
GitLab