Browse Source

Allows to display actions cell on view list
edit and delete fully supported for now

Timothée Barray 14 years ago
parent
commit
4a53cb97de

+ 29 - 0
Admin/Admin.php

@@ -392,6 +392,10 @@ 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);
         }
         }
 
 
@@ -408,6 +412,31 @@ 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

+ 4 - 0
Resources/translations/AdminBundle.en.xliff

@@ -94,6 +94,10 @@
                 <source>confirm_msg</source>
                 <source>confirm_msg</source>
                 <target>Are you sure ?</target>
                 <target>Are you sure ?</target>
             </trans-unit>
             </trans-unit>
+            <trans-unit id="action_edit">
+                <source>action_edit</source>
+                <target>Edit</target>
+            </trans-unit>
         </body>
         </body>
     </file>
     </file>
 </xliff>
 </xliff>

+ 4 - 0
Resources/translations/AdminBundle.fr.xliff

@@ -78,6 +78,10 @@
                 <source>confirm_msg</source>
                 <source>confirm_msg</source>
                 <target>Êtes-vous sûr ?</target>
                 <target>Êtes-vous sûr ?</target>
             </trans-unit>
             </trans-unit>
+            <trans-unit id="action_edit">
+                <source>action_edit</source>
+                <target>Editer</target>
+            </trans-unit>
         </body>
         </body>
     </file>
     </file>
 </xliff>
 </xliff>

+ 0 - 31
Resources/views/CRUD/base_list.html.twig

@@ -22,36 +22,10 @@ file that was distributed with this source code.
 {% block side_menu %}{% if side_menu %}{{ side_menu.render|raw }}{% endif %}{% endblock %}
 {% block side_menu %}{% if side_menu %}{{ side_menu.render|raw }}{% endif %}{% endblock %}
 
 
 {% block list_table %}
 {% block list_table %}
-<<<<<<< HEAD
     {% if datagrid.results|length > 0 %}
     {% if datagrid.results|length > 0 %}
         <form action="{{ admin.generateUrl('batch') }}" method="POST" >
         <form action="{{ admin.generateUrl('batch') }}" method="POST" >
             <table>
             <table>
                 {% block table_header %}
                 {% block table_header %}
-=======
-    <form action="{{ admin.generateUrl('batch') }}" method="POST" >
-        <table>
-            {% block table_header %}
-                <tr>
-                    {% for field_description in list.elements %}
-                        {% if field_description.getOption('code') == '_batch' %}
-                            <th class="sonata-ba-list-field-header sonata-ba-list-field-header-batch"><input type="checkbox" id="list_batch_checkbox" /></th>
-                        {% else %}
-                                {% spaceless %}<th class="sonata-ba-list-field-header sonata-ba-list-field-header-{{ field_description.type}}">
-                                    {% if field_description.options.name is defined %}
-                                        {% trans field_description.options.name from admin.translationdomain %}
-                                    {% else %}
-                                        {% trans field_description.name from admin.translationdomain %}
-                                    {% endif %}
-                                </th>{% endspaceless %}
-                        {% endif %}
-                    {% endfor %}
-                </tr>
-            {% endblock %}
-
-
-            {% block table_body %}
-                {% for object in datagrid.results %}
->>>>>>> first implementation for delete in view list
                     <tr>
                     <tr>
                         {% for field_description in list.elements %}
                         {% for field_description in list.elements %}
                             {% if field_description.getOption('code') == '_batch' %}
                             {% if field_description.getOption('code') == '_batch' %}
@@ -68,11 +42,6 @@ file that was distributed with this source code.
                                     </th>{% endspaceless %}
                                     </th>{% endspaceless %}
                             {% endif %}
                             {% endif %}
                         {% endfor %}
                         {% endfor %}
-                        <td>
-                            <a href="{{ admin.generateUrl('delete', {'id': object.id}) }}" class="delete_link">
-                              <img src="{{ asset('bundles/sonataadmin/famfamfam/delete.png') }}" alt="{% trans 'list_delete' from 'AdminBundle' %}" title="{% trans 'list_delete' from 'AdminBundle' %}" />
-                            </a>
-                        </td>
                     </tr>
                     </tr>
                 {% endblock %}
                 {% endblock %}
 
 

+ 5 - 0
Resources/views/CRUD/list__action.html.twig

@@ -0,0 +1,5 @@
+<td>
+    {% for actions in field_description.options.actions %}
+        {% include 'SonataAdminBundle:CRUD:list__action' ~ actions ~ '.html.twig' %}
+    {% endfor %}
+</td>

+ 3 - 0
Resources/views/CRUD/list__action_delete.html.twig

@@ -0,0 +1,3 @@
+<a href="{{ admin.generateUrl('delete', {'id': object.id}) }}" class="delete_link" title="{% trans 'action_delete' from 'AdminBundle' %}">
+    <img src="{{ asset('bundles/sonataadmin/famfamfam/delete.png') }}" alt="{% trans 'action_delete' from 'AdminBundle' %}" />
+</a>

+ 3 - 0
Resources/views/CRUD/list__action_edit.html.twig

@@ -0,0 +1,3 @@
+<a href="{{ admin.generateUrl('edit', {'id': object.id}) }}" class="edit_link" title="{% trans 'action_edit' from 'AdminBundle' %}">
+    <img src="{{ asset('bundles/sonataadmin/famfamfam/page_white_edit.png') }}" alt="{% trans 'action_edit' from 'AdminBundle' %}" />
+</a>