/**
* Journal Setup Wizard Step 4 - Saves Journal 's step 4 data
* @param Request $request
* @param null $setupId
* @return JsonResponse
*/
private function step4Control(Request $request, $setupId)
{
$em = $this->getDoctrine()->getManager();
/** @var JournalSetupProgress $setup */
$setup = $em->getRepository('OjsJournalBundle:JournalSetupProgress')->find($setupId);
/** @var Journal $journal */
$journal = $em->getRepository('OjsJournalBundle:Journal')->find($setup->getJournal()->getId());
if (!$this->isGranted('EDIT', $journal)) {
throw new AccessDeniedException();
}
$setup->setCurrentStep(2);
$data = $request->request->all();
$pages = $data['page'];
$twig = $this->get('ojs.cms.twig.post_extension');
foreach ($pages as $page) {
if (empty($page['title'])) {
return new JsonResponse(['success' => '0']);
}
$page_ = new JournalPost();
$page_->setJournal($journal);
$page_->setContent($page['content'])->setObject($twig->encode($journal))->setObjectId($journal->getId())->setPostType('default')->setTitle($page['title']);
$em->persist($page_);
}
$em->flush();
return new JsonResponse(['success' => '1']);
}