浏览代码

Merge pull request #1256 from imenem/new-style-flash-messages

CRUDController now uses a new API to set the session flash message.
Thomas 12 年之前
父节点
当前提交
d271b25c9c
共有 2 个文件被更改,包括 25 次插入12 次删除
  1. 22 9
      Controller/CRUDController.php
  2. 3 3
      Resources/doc/reference/batch_actions.rst

+ 22 - 9
Controller/CRUDController.php

@@ -199,9 +199,9 @@ class CRUDController extends Controller
         $modelManager = $this->admin->getModelManager();
         $modelManager = $this->admin->getModelManager();
         try {
         try {
             $modelManager->batchDelete($this->admin->getClass(), $query);
             $modelManager->batchDelete($this->admin->getClass(), $query);
-            $this->get('session')->setFlash('sonata_flash_success', 'flash_batch_delete_success');
+            $this->addFlash('sonata_flash_success', 'flash_batch_delete_success');
         } catch ( ModelManagerException $e ) {
         } catch ( ModelManagerException $e ) {
-            $this->get('session')->setFlash('sonata_flash_error', 'flash_batch_delete_error');
+            $this->addFlash('sonata_flash_error', 'flash_batch_delete_error');
         }
         }
 
 
         return new RedirectResponse($this->admin->generateUrl('list', array('filter' => $this->admin->getFilterParameters())));
         return new RedirectResponse($this->admin->generateUrl('list', array('filter' => $this->admin->getFilterParameters())));
@@ -235,7 +235,7 @@ class CRUDController extends Controller
                     return $this->renderJson(array('result' => 'ok'));
                     return $this->renderJson(array('result' => 'ok'));
                 }
                 }
 
 
-                $this->get('session')->setFlash('sonata_flash_success', 'flash_delete_success');
+                $this->addFlash('sonata_flash_success', 'flash_delete_success');
 
 
             } catch (ModelManagerException $e) {
             } catch (ModelManagerException $e) {
 
 
@@ -243,7 +243,7 @@ class CRUDController extends Controller
                     return $this->renderJson(array('result' => 'error'));
                     return $this->renderJson(array('result' => 'error'));
                 }
                 }
 
 
-                $this->get('session')->setFlash('sonata_flash_error', 'flash_delete_error');
+                $this->addFlash('sonata_flash_error', 'flash_delete_error');
             }
             }
 
 
             return new RedirectResponse($this->admin->generateUrl('list'));
             return new RedirectResponse($this->admin->generateUrl('list'));
@@ -297,7 +297,7 @@ class CRUDController extends Controller
             // persist if the form was valid and if in preview mode the preview was approved
             // persist if the form was valid and if in preview mode the preview was approved
             if ($isFormValid && (!$this->isInPreviewMode() || $this->isPreviewApproved())) {
             if ($isFormValid && (!$this->isInPreviewMode() || $this->isPreviewApproved())) {
                 $this->admin->update($object);
                 $this->admin->update($object);
-                $this->get('session')->setFlash('sonata_flash_success', 'flash_edit_success');
+                $this->addFlash('sonata_flash_success', 'flash_edit_success');
 
 
                 if ($this->isXmlHttpRequest()) {
                 if ($this->isXmlHttpRequest()) {
                     return $this->renderJson(array(
                     return $this->renderJson(array(
@@ -313,7 +313,7 @@ class CRUDController extends Controller
             // show an error message if the form failed validation
             // show an error message if the form failed validation
             if (!$isFormValid) {
             if (!$isFormValid) {
                 if (!$this->isXmlHttpRequest()) {
                 if (!$this->isXmlHttpRequest()) {
-                    $this->get('session')->setFlash('sonata_flash_error', 'flash_edit_error');
+                    $this->addFlash('sonata_flash_error', 'flash_edit_error');
                 }
                 }
             } elseif ($this->isPreviewRequested()) {
             } elseif ($this->isPreviewRequested()) {
                 // enable the preview template if the form was valid and preview was requested
                 // enable the preview template if the form was valid and preview was requested
@@ -417,7 +417,7 @@ class CRUDController extends Controller
         $datagrid->buildPager();
         $datagrid->buildPager();
 
 
         if (true !== $nonRelevantMessage) {
         if (true !== $nonRelevantMessage) {
-            $this->get('session')->setFlash('sonata_flash_info', $nonRelevantMessage);
+            $this->addFlash('sonata_flash_info', $nonRelevantMessage);
 
 
             return new RedirectResponse($this->admin->generateUrl('list', array('filter' => $this->admin->getFilterParameters())));
             return new RedirectResponse($this->admin->generateUrl('list', array('filter' => $this->admin->getFilterParameters())));
         }
         }
@@ -494,7 +494,7 @@ class CRUDController extends Controller
                     ));
                     ));
                 }
                 }
 
 
-                $this->get('session')->setFlash('sonata_flash_success','flash_create_success');
+                $this->addFlash('sonata_flash_success','flash_create_success');
                 // redirect to edit mode
                 // redirect to edit mode
                 return $this->redirectTo($object);
                 return $this->redirectTo($object);
             }
             }
@@ -502,7 +502,7 @@ class CRUDController extends Controller
             // show an error message if the form failed validation
             // show an error message if the form failed validation
             if (!$isFormValid) {
             if (!$isFormValid) {
                 if (!$this->isXmlHttpRequest()) {
                 if (!$this->isXmlHttpRequest()) {
-                    $this->get('session')->setFlash('sonata_flash_error', 'flash_create_error');
+                    $this->addFlash('sonata_flash_error', 'flash_create_error');
                 }
                 }
             } elseif ($this->isPreviewRequested()) {
             } elseif ($this->isPreviewRequested()) {
                 // pick the preview template if the form was valid and preview was requested
                 // pick the preview template if the form was valid and preview was requested
@@ -716,4 +716,17 @@ class CRUDController extends Controller
 
 
         return $this->get('sonata.admin.exporter')->getResponse($format, $filename, $this->admin->getDataSourceIterator());
         return $this->get('sonata.admin.exporter')->getResponse($format, $filename, $this->admin->getDataSourceIterator());
     }
     }
+
+    /**
+     * Adds a flash message for type.
+     *
+     * @param string $type
+     * @param string $message
+     */
+    public function addFlash($type, $message)
+    {
+        $this->get('session')
+             ->getFlashBag()
+             ->add($type, $message);
+    }
 }
 }

+ 3 - 3
Resources/doc/reference/batch_actions.rst

@@ -150,7 +150,7 @@ passed query is ``null``.
         $target = $modelManager->find($this->admin->getClass(), $request->get('targetId'));
         $target = $modelManager->find($this->admin->getClass(), $request->get('targetId'));
 
 
         if( $target === null){
         if( $target === null){
-            $this->get('session')->setFlash('sonata_flash_info', 'flash_batch_merge_no_target');
+            $this->addFlash('sonata_flash_info', 'flash_batch_merge_no_target');
 
 
             return new RedirectResponse($this->admin->generateUrl('list',$this->admin->getFilterParameters()));
             return new RedirectResponse($this->admin->generateUrl('list',$this->admin->getFilterParameters()));
         }
         }
@@ -166,12 +166,12 @@ passed query is ``null``.
 
 
             $modelManager->update($selectedModel);
             $modelManager->update($selectedModel);
         } catch (\Exception $e) {
         } catch (\Exception $e) {
-            $this->get('session')->setFlash('sonata_flash_error', 'flash_batch_merge_error');
+            $this->addFlash('sonata_flash_error', 'flash_batch_merge_error');
 
 
             return new RedirectResponse($this->admin->generateUrl('list',$this->admin->getFilterParameters()));
             return new RedirectResponse($this->admin->generateUrl('list',$this->admin->getFilterParameters()));
         }
         }
 
 
-        $this->get('session')->setFlash('sonata_flash_success', 'flash_batch_merge_success');
+        $this->addFlash('sonata_flash_success', 'flash_batch_merge_success');
 
 
         return new RedirectResponse($this->admin->generateUrl('list',$this->admin->getFilterParameters()));
         return new RedirectResponse($this->admin->generateUrl('list',$this->admin->getFilterParameters()));
     }
     }