Bläddra i källkod

Added request parameter to batchAction

Christian Gripp 9 år sedan
förälder
incheckning
a7b74af4f8
2 ändrade filer med 9 tillägg och 5 borttagningar
  1. 6 3
      Controller/CRUDController.php
  2. 3 2
      Resources/doc/reference/batch_actions.rst

+ 6 - 3
Controller/CRUDController.php

@@ -260,15 +260,18 @@ class CRUDController extends Controller
      * Execute a batch delete.
      *
      * @param ProxyQueryInterface $query
+     * @param Request             $request
      *
      * @return RedirectResponse
      *
      * @throws AccessDeniedException If access is not granted
      */
-    public function batchActionDelete(ProxyQueryInterface $query)
+    public function batchActionDelete(ProxyQueryInterface $query, Request $request = null)
     {
         $this->admin->checkAccess('batchDelete');
 
+        $request = $this->resolveRequest($request);
+
         $modelManager = $this->admin->getModelManager();
         try {
             $modelManager->batchDelete($this->admin->getClass(), $query);
@@ -568,7 +571,7 @@ class CRUDController extends Controller
         $isRelevantAction = sprintf('batchAction%sIsRelevant', ucfirst($camelizedAction));
 
         if (method_exists($this, $isRelevantAction)) {
-            $nonRelevantMessage = call_user_func(array($this, $isRelevantAction), $idx, $allElements);
+            $nonRelevantMessage = call_user_func(array($this, $isRelevantAction), $idx, $allElements, $request);
         } else {
             $nonRelevantMessage = count($idx) != 0 || $allElements; // at least one item is selected
         }
@@ -629,7 +632,7 @@ class CRUDController extends Controller
             $query = null;
         }
 
-        return call_user_func(array($this, $finalAction), $query);
+        return call_user_func(array($this, $finalAction), $query, $request);
     }
 
     /**

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

@@ -75,10 +75,11 @@ granularity), the passed query is ``null``.
     {
         /**
          * @param ProxyQueryInterface $selectedModelQuery
+         * @param Request             $request
          *
          * @return RedirectResponse
          */
-        public function batchActionMerge(ProxyQueryInterface $selectedModelQuery)
+        public function batchActionMerge(ProxyQueryInterface $selectedModelQuery, Request $request = null)
         {
             if (!$this->admin->isGranted('EDIT') || !$this->admin->isGranted('DELETE')) {
                 throw new AccessDeniedException();
@@ -193,7 +194,7 @@ This method may return three different values:
 
     class CRUDController extends BaseController
     {
-        public function batchActionMergeIsRelevant(array $selectedIds, $allEntitiesSelected)
+        public function batchActionMergeIsRelevant(array $selectedIds, $allEntitiesSelected, Request $request = null)
         {
             // here you have access to all POST parameters, if you use some custom ones
             // POST parameters are kept even after the confirmation page.