public function batchActionPublish(ProxyQueryInterface $selectedModelQuery)
{
if ($this->admin->isGranted('PUBLISH') === false) {
throw new AccessDeniedException();
}
$modelManager = $this->admin->getModelManager();
$selectedModels = $selectedModelQuery->execute();
// do the merge work here
try {
foreach ($selectedModels as $selectedModel) {
/** @var PageInterface $selectedModel */
$selectedModel->setStatus(PageInterface::STATUS_PUBLISHED);
$modelManager->update($selectedModel);
$this->makeSnapshot($selectedModel);
}
} catch (\Exception $e) {
$this->get('session')->getFlashBag()->add('sonata_flash_error', 'flash_batch_publish_error');
return new RedirectResponse($this->admin->generateUrl('list', $this->admin->getFilterParameters()));
}
$this->get('session')->getFlashBag()->add('sonata_flash_success', 'flash_batch_publish_success');
return new RedirectResponse($this->admin->generateUrl('list', $this->admin->getFilterParameters()));
}