/** * {@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(); }
/** * 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; }
/** * {@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; }
/** * 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())); }
/** * Dispatch mass action * * @param Request $request */ protected function dispatchMassAction(Request $request) { $this->objects = $this->massActionDispatcher->dispatch($request); }
/** * {@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); }