/** * @param string $operationAlias * * @AclAncestor("pim_enrich_mass_edit") * * @throws NotFoundResourceException * * @return \Symfony\Component\HttpFoundation\Response */ public function performAction($operationAlias) { $gridName = $this->request->get('gridName'); $operation = $this->operationRegistry->get($operationAlias); $itemsName = $operation->getItemsName(); $productCount = $this->request->get('objectsCount'); $form = $this->massEditFormResolver->getConfigurationForm($operationAlias); $form->remove('operationAlias'); $form->submit($this->request); if ($form->isValid()) { $operation = $form->getData(); $pimFilters = $this->gridFilterAdapter->adapt($this->request); $operation->setFilters($pimFilters); $jobCode = $operation->getBatchJobCode(); $jobInstance = $this->getRepository('Akeneo\\Component\\Batch\\Model\\JobInstance')->findOneBy(['code' => $jobCode]); if (null === $jobInstance) { throw new NotFoundResourceException(sprintf('No job found with job code "%s"', $jobCode)); } $operation->finalize(); $rawConfiguration = $operation->getBatchConfig(); $this->simpleJobLauncher->launch($jobInstance, $this->getUser(), $rawConfiguration); } if ($form->isValid()) { $this->addFlash('success', sprintf('pim_enrich.mass_edit_action.%s.launched_flash', $operationAlias)); $route = $this->getRouteFromMapping($gridName); return $this->redirectToRoute($route); } return $this->render(sprintf('PimEnrichBundle:MassEditAction:configure/%s.html.twig', $operationAlias), ['form' => $form->createView(), 'operationAlias' => $operationAlias, 'itemsName' => $itemsName, 'productCount' => $productCount, 'queryParams' => $this->getQueryParams()]); }
/** * Launch the background process related to the mass edit action * * @AclAncestor("pim_enrich_mass_edit") * * @param Request $request * @param string $operationAlias * * @throws NotFoundResourceException * * @return Response */ public function performAction(Request $request, $operationAlias) { $form = $this->massEditFormResolver->getConfigurationForm($operationAlias); $itemsCount = $request->get('itemsCount'); $configureTemplate = $this->getPerformOperationTemplate($operationAlias); $form->remove('operationAlias'); $form->submit($request); $queryParams = $this->getQueryParams($request); if ($form->isValid()) { $pimFilters = $this->gridFilterAdapter->adapt($request); $operation = $form->getData(); $operation->setFilters($pimFilters); $this->operationLauncher->launch($operation); $request->getSession()->getFlashBag()->add('success', new Message(sprintf('pim_enrich.mass_edit_action.%s.launched_flash', $operationAlias))); $redirectRoute = $this->getPerformOperationRedirectRoute(); return new RedirectResponse($this->router->generate($redirectRoute, ['dataLocale' => $queryParams['dataLocale']])); } return $this->templating->renderResponse($configureTemplate, ['form' => $form->createView(), 'operationAlias' => $operationAlias, 'itemsCount' => $itemsCount, 'queryParams' => $queryParams]); }