コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function doExecute(Request $request)
 {
     $jobInstance = $this->jobInstanceRepo->findOneBy(['code' => $this->getOption('job_profile')]);
     if (null === $jobInstance) {
         throw new \LogicException(sprintf('The job instance "%s" does not exist. Please contact your administrator', $this->getOption('job_profile')));
     }
     $rawConfiguration = addslashes(json_encode(['reference_data' => $this->configuration->getEntityClass(), 'ids' => $this->massActionDispatcher->dispatch($request)]));
     $this->jobLauncher->launch($jobInstance, $this->getUser(), $rawConfiguration);
     return new Response();
 }
コード例 #2
0
 /**
  * TODO: Get from datagrid builder ?
  *
  * @return \Pim\Bundle\DataGridBundle\Extension\MassAction\Actions\Export\ExportMassAction
  */
 protected function getExportMassAction()
 {
     if ($this->exportMassAction === null) {
         $this->exportMassAction = $this->massActionDispatcher->getMassActionByNames($this->request->get('actionName'), $this->request->get('gridName'));
     }
     return $this->exportMassAction;
 }
コード例 #3
0
 /**
  * {@inheritdoc}
  */
 public function adapt(Request $request)
 {
     if (in_array($request->get('gridName'), [self::PRODUCT_GRID_NAME])) {
         $filters = $this->massActionDispatcher->getRawFilters($request);
     } else {
         $items = $this->massActionDispatcher->dispatch($request);
         foreach ($items as &$object) {
             if (is_array($object)) {
                 $object = $object[0];
             }
         }
         $itemIds = [];
         foreach ($items as $item) {
             $itemIds[] = $item->getId();
         }
         $filters = [['field' => 'id', 'operator' => 'IN', 'value' => $itemIds]];
     }
     return $filters;
 }
コード例 #4
0
 /**
  * Mass delete action
  *
  * @return JsonResponse
  */
 public function massActionAction()
 {
     $response = $this->massActionDispatcher->dispatch($this->request);
     $data = ['successful' => $response->isSuccessful(), 'message' => $response->getMessage()];
     return new JsonResponse(array_merge($data, $response->getOptions()));
 }
コード例 #5
0
 /**
  * Dispatch mass action
  *
  * @param Request $request
  */
 protected function dispatchMassAction(Request $request)
 {
     $this->objects = $this->massActionDispatcher->dispatch($request);
 }
コード例 #6
0
 /**
  * {@inheritdoc}
  */
 protected function getTemplateVars(Request $request, FormInterface $form)
 {
     $entityIds = $this->massActionDispatcher->dispatch($request);
     return ['objectCount' => count($entityIds), 'formAction' => $this->getActionUrl($this->getType(), $form->getData(), $this->getGridUrlParameters($request))] + parent::getTemplateVars($request, $form);
 }