Browse Source

move buildAdminField to ListBuilder class

Timothée Barray 14 years ago
parent
commit
b2098b1fcb
2 changed files with 29 additions and 29 deletions
  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
         // normalize field
         foreach ($this->listFieldDescriptions as $fieldDescription) {
         foreach ($this->listFieldDescriptions as $fieldDescription) {
-            if ($fieldDescription->getName() == '_action')
-            {
-              $this->buildActionFieldDescription($fieldDescription);
-            }
             $this->getListBuilder()->fixFieldDescription($this, $fieldDescription);
             $this->getListBuilder()->fixFieldDescription($this, $fieldDescription);
         }
         }
 
 
@@ -412,31 +408,6 @@ abstract class Admin implements AdminInterface
 
 
         return $this->listFieldDescriptions;
         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
      * 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())
     public function fixFieldDescription(Admin $admin, FieldDescription $fieldDescription, array $options = array())
     {
     {
+        if ($fieldDescription->getName() == '_action')
+        {
+          $this->buildActionFieldDescription($fieldDescription);
+        }
 
 
         $fieldDescription->mergeOptions($options);
         $fieldDescription->mergeOptions($options);
         $fieldDescription->setAdmin($admin);
         $fieldDescription->setAdmin($admin);
@@ -98,4 +102,29 @@ class ListBuilder implements ListBuilderInterface
             $admin->attachAdminClass($fieldDescription);
             $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;
+    }
 }
 }