Browse Source

refactor flash messaging, added item name to flash messages

Benoit Pointet 13 years ago
parent
commit
5e89297dfe

+ 30 - 10
Controller/CRUDController.php

@@ -177,9 +177,9 @@ class CRUDController extends Controller
         $modelManager = $this->admin->getModelManager();
         try {
             $modelManager->batchDelete($this->admin->getClass(), $query);
-            $this->get('session')->setFlash('sonata_flash_success', 'flash_batch_delete_success');
+            $this->setFlash('sonata_flash_success', 'flash_batch_delete_success');
         } catch ( ModelManagerException $e ) {
-            $this->get('session')->setFlash('sonata_flash_error', 'flash_batch_delete_error');
+            $this->setFlash('sonata_flash_error', 'flash_batch_delete_error');
         }
 
         return new RedirectResponse($this->admin->generateUrl('list', $this->admin->getFilterParameters()));
@@ -206,9 +206,9 @@ class CRUDController extends Controller
         if ($this->getRequest()->getMethod() == 'DELETE') {
             try {
                 $this->admin->delete($object);
-                $this->get('session')->setFlash('sonata_flash_success', 'flash_delete_success');
+                $this->setFlash('sonata_flash_success', 'flash_delete_success', $object);
             } catch ( ModelManagerException $e ) {
-                $this->get('session')->setFlash('sonata_flash_error', 'flash_delete_error');
+                $this->setFlash('sonata_flash_error', 'flash_delete_error', $object);
             }
 
             return new RedirectResponse($this->admin->generateUrl('list'));
@@ -251,7 +251,7 @@ class CRUDController extends Controller
 
             if ($form->isValid()) {
                 $this->admin->update($object);
-                $this->get('session')->setFlash('sonata_flash_success', 'flash_edit_success');
+                $this->setFlash('sonata_flash_success', 'flash_edit_success', $object);
 
                 if ($this->isXmlHttpRequest()) {
                     return $this->renderJson(array(
@@ -264,7 +264,7 @@ class CRUDController extends Controller
                 return $this->redirectTo($object);
             }
 
-            $this->get('session')->setFlash('sonata_flash_error', 'flash_edit_error');
+            $this->setFlash('sonata_flash_error', 'flash_edit_error', $object);
         }
 
         $view = $form->createView();
@@ -332,7 +332,7 @@ class CRUDController extends Controller
         }
 
         if (count($idx) == 0 && !$all_elements) { // no item selected
-            $this->get('session')->setFlash('sonata_flash_info', 'flash_batch_empty');
+            $this->setFlash('sonata_flash_info', 'flash_batch_empty');
 
             return new RedirectResponse($this->admin->generateUrl('list', $this->admin->getFilterParameters()));
         }
@@ -410,11 +410,12 @@ class CRUDController extends Controller
                     ));
                 }
 
-                $this->get('session')->setFlash('sonata_flash_success','flash_create_success');
+                $this->setFlash('sonata_flash_success', 'flash_create_success', $object);
+
                 // redirect to edit mode
                 return $this->redirectTo($object);
             }
-            $this->get('session')->setFlash('sonata_flash_error', 'flash_create_error');
+            $this->setFlash('sonata_flash_error', 'flash_create_error', $object);
         }
 
         $view = $form->createView();
@@ -550,4 +551,23 @@ class CRUDController extends Controller
 
         return $this->get('sonata.admin.exporter')->getResponse($format, $filename, $this->admin->getDataSourceIterator());
     }
-}
+
+    /**
+     * Sets a flash message for an action on some object.
+     *
+     * @param string $name
+     * @param string $value
+     * @param array $object
+     * @return void
+     */
+    protected function setFlash($name, $value, $object = null)
+    {
+        $parameters = array();
+        if ($object) {
+            $parameters = array('%name%' =>$this->admin->toString($object));
+        }
+        $message = $this->admin->trans($value, $parameters, 'SonataAdminBundle');
+
+        $this->get('session')->setFlash($name, $message);
+    }
+}

+ 6 - 6
Resources/translations/SonataAdminBundle.de.xliff

@@ -132,19 +132,19 @@
             </trans-unit>
             <trans-unit id="flash_create_success">
               <source>flash_create_success</source>
-              <target>Element wurde erfolgreich hinzugefügt.</target>
+              <target>Das Element "%name%" wurde erfolgreich hinzugefügt.</target>
             </trans-unit>
             <trans-unit id="flash_create_error">
               <source>flash_create_error</source>
-              <target>Beim Hinzufügen des Elements ist ein Fehler aufgetreten.</target>
+              <target>Beim Hinzufügen des Elements "%name%" ist ein Fehler aufgetreten.</target>
             </trans-unit>
             <trans-unit id="flash_edit_success">
               <source>flash_edit_success</source>
-              <target>Element wurde erfolgreich bearbeitet.</target>
+              <target>Das Element "%name%" wurde erfolgreich bearbeitet.</target>
             </trans-unit>
             <trans-unit id="flash_edit_error">
               <source>flash_edit_error</source>
-              <target>Beim Bearbeiten des Elements ist ein Fehler aufgetreten.</target>
+              <target>Beim Bearbeiten des Elements "%name%" ist ein Fehler aufgetreten.</target>
             </trans-unit>
             <trans-unit id="flash_batch_delete_success">
               <source>flash_batch_delete_success</source>
@@ -156,11 +156,11 @@
             </trans-unit>
             <trans-unit id="flash_delete_error">
               <source>flash_delete_error</source>
-              <target>Beim Löschen des Elements ist ein Fehler aufgetreten.</target>
+              <target>Beim Löschen des Elements "%name%" ist ein Fehler aufgetreten.</target>
             </trans-unit>
             <trans-unit id="flash_delete_success">
               <source>flash_delete_success</source>
-              <target>Element wurde erfolgreich gelöscht.</target>
+              <target>Das Element "%name%" wurde erfolgreich gelöscht.</target>
             </trans-unit>
             <trans-unit id="link_breadcrumb_dashboard">
                 <source>breadcrumb.link_dashboard</source>

+ 6 - 6
Resources/translations/SonataAdminBundle.en.xliff

@@ -132,19 +132,19 @@
             </trans-unit>
             <trans-unit id='flash_create_success'>
               <source>flash_create_success</source>
-              <target>Item has been successfully created.</target>
+              <target>Item "%name%" has been successfully created.</target>
             </trans-unit>
             <trans-unit id='flash_create_error'>
               <source>flash_create_error</source>
-              <target>An error has occurred during item creation.</target>
+              <target>An error has occurred during the creation of item "%name%".</target>
             </trans-unit>
             <trans-unit id='flash_edit_success'>
               <source>flash_edit_success</source>
-              <target>Item has been successfully updated.</target>
+              <target>Item "%name%" has been successfully updated.</target>
             </trans-unit>
             <trans-unit id='flash_edit_error'>
               <source>flash_edit_error</source>
-              <target>An error has occurred during item update.</target>
+              <target>An error has occurred during update of item "%name%".</target>
             </trans-unit>
             <trans-unit id='flash_batch_delete_success'>
               <source>flash_batch_delete_success</source>
@@ -156,11 +156,11 @@
             </trans-unit>
             <trans-unit id='flash_delete_error'>
               <source>flash_delete_error</source>
-              <target>An Error has occurred during item deletion.</target>
+              <target>An Error has occurred during deletion of item "%name%".</target>
             </trans-unit>
             <trans-unit id='flash_delete_success'>
               <source>flash_delete_success</source>
-              <target>Item has been deleted successfully.</target>
+              <target>Item "%name%" has been deleted successfully.</target>
             </trans-unit>
             <trans-unit id="link_breadcrumb_dashboard">
                 <source>breadcrumb.link_dashboard</source>

+ 6 - 6
Resources/translations/SonataAdminBundle.fr.xliff

@@ -132,19 +132,19 @@
             </trans-unit>
             <trans-unit id='flash_create_success'>
               <source>flash_create_success</source>
-              <target>L'élément a été crée avec succès.</target>
+              <target>L'élément "%name%" a été crée avec succès.</target>
             </trans-unit>
             <trans-unit id='flash_create_error'>
               <source>flash_create_error</source>
-              <target>Une erreur est intervenue lors de la création de l'élément.</target>
+              <target>Une erreur est intervenue lors de la création de l'élément "%name%".</target>
             </trans-unit>
             <trans-unit id='flash_edit_success'>
               <source>flash_edit_success</source>
-              <target>L'élément a été mis à jour avec succès.</target>
+              <target>L'élément "%name%" a été mis à jour avec succès.</target>
             </trans-unit>
             <trans-unit id='flash_edit_error'>
               <source>flash_edit_error</source>
-              <target>Une erreur est intervenue lors de la mise à jour de l'élément.</target>
+              <target>Une erreur est intervenue lors de la mise à jour de l'élément "%name%".</target>
             </trans-unit>
             <trans-unit id='flash_batch_delete_success'>
               <source>flash_batch_delete_success</source>
@@ -156,11 +156,11 @@
             </trans-unit>
             <trans-unit id='flash_delete_error'>
               <source>flash_delete_error</source>
-              <target>Une erreur est intervenue lors de la suppression de l'élément.</target>
+              <target>Une erreur est intervenue lors de la suppression de l'élément "%name%".</target>
             </trans-unit>
             <trans-unit id='flash_delete_success'>
               <source>flash_delete_success</source>
-              <target>Les éléments ont été supprimés avec succès.</target>
+              <target>L'élément "%name%" a été supprimé avec succès.</target>
             </trans-unit>
             <trans-unit id="link_breadcrumb_dashboard">
                 <source>breadcrumb.link_dashboard</source>

+ 1 - 1
Resources/views/standard_layout.html.twig

@@ -131,7 +131,7 @@ file that was distributed with this source code.
                     {% set session_var = 'sonata_flash_' ~ notice_level %}
                     {% if app.session.hasFlash(session_var) %}
                         <div class="alert-message {{ notice_level }}">
-                            {{ app.session.flash(session_var) | trans([],'SonataAdminBundle') }}
+                            {{ app.session.flash(session_var) }}
                             {#<a class="close" href="#">×</a>#}
                         </div>
                     {% endif %}