Pārlūkot izejas kodu

move buildAdminField to ListBuilder class

Timothée Barray 14 gadi atpakaļ
vecāks
revīzija
b2098b1fcb
2 mainītis faili ar 29 papildinājumiem un 29 dzēšanām
  1. 0 29
      Admin/Admin.php
  2. 29 0
      Builder/ListBuilder.php

+ 0 - 29
Admin/Admin.php

@@ -392,10 +392,6 @@ abstract class Admin implements AdminInterface
 
         // normalize field
         foreach ($this->listFieldDescriptions as $fieldDescription) {
-            if ($fieldDescription->getName() == '_action')
-            {
-              $this->buildActionFieldDescription($fieldDescription);
-            }
             $this->getListBuilder()->fixFieldDescription($this, $fieldDescription);
         }
 
@@ -412,31 +408,6 @@ abstract class Admin implements AdminInterface
 
         return $this->listFieldDescriptions;
     }
-    
-    public function buildActionFieldDescription(FieldDescription $fieldDescription)
-    {
-        if (null === $fieldDescription->getTemplate())
-        {
-            $fieldDescription->setTemplate('SonataAdminBundle:CRUD:list__action.html.twig');
-        }
-        
-        if (null === $fieldDescription->getType())
-        {
-            $fieldDescription->setType('action');
-        }
-        
-        if (null === $fieldDescription->getOption('name'))
-        {
-            $fieldDescription->setOption('name', 'Action');
-        }
-        
-        if (null === $fieldDescription->getOption('code'))
-        {
-            $fieldDescription->setOption('code', 'Action');
-        }
-      
-        return $fieldDescription;
-    }
 
     /**
      * build the filter FieldDescription array

+ 29 - 0
Builder/ListBuilder.php

@@ -40,6 +40,10 @@ class ListBuilder implements ListBuilderInterface
      */
     public function fixFieldDescription(Admin $admin, FieldDescription $fieldDescription, array $options = array())
     {
+        if ($fieldDescription->getName() == '_action')
+        {
+          $this->buildActionFieldDescription($fieldDescription);
+        }
 
         $fieldDescription->mergeOptions($options);
         $fieldDescription->setAdmin($admin);
@@ -98,4 +102,29 @@ class ListBuilder implements ListBuilderInterface
             $admin->attachAdminClass($fieldDescription);
         }
     }
+    
+    public function buildActionFieldDescription(FieldDescription $fieldDescription)
+    {
+        if (null === $fieldDescription->getTemplate())
+        {
+            $fieldDescription->setTemplate('SonataAdminBundle:CRUD:list__action.html.twig');
+        }
+        
+        if (null === $fieldDescription->getType())
+        {
+            $fieldDescription->setType('action');
+        }
+        
+        if (null === $fieldDescription->getOption('name'))
+        {
+            $fieldDescription->setOption('name', 'Action');
+        }
+        
+        if (null === $fieldDescription->getOption('code'))
+        {
+            $fieldDescription->setOption('code', 'Action');
+        }
+      
+        return $fieldDescription;
+    }
 }