get('audit.audit_data.service'); $entities = $auditDataService->getEntities(); $columns = $auditDataService->getColumns(); $entity = null; $count = null; $result = null; $page = null; $pages = 1; $is_post = false; /* @var $filterForm AuditFilterType */ $filterForm = $this->createForm(AuditFilterType::class); $filterForm->handleRequest($request); $showRowFilter = array(); $showRowFilter['types'] = array('display'=>'none','check'=>'fa fa-square-o'); $showRowFilter['users'] = array('display'=>'none','check'=>'fa fa-square-o'); $showRowFilter['idx'] = array('display'=>'none','check'=>'fa fa-square-o'); $showRowFilter['dateTo'] = array('display'=>'none','check'=>'fa fa-square-o'); $showRowFilter['dateFrom'] = array('display'=>'none','check'=>'fa fa-square-o'); $showRowFilter['searchValue'] = array('display'=>'none','check'=>'fa fa-square-o'); $showRowFilter['resxpage'] = array('display'=>'none','check'=>'fa fa-square-o'); if ($filterForm->isSubmitted()) { $data = $filterForm->getData(); $results = $auditDataService->getResults($data); foreach($data as $row => $value) { if(is_null($value) || empty($value)) { $showRowFilter[$row] = array('display'=>'none','check'=>'fa fa-square-o'); } else { $showRowFilter[$row] = array('display'=>'block','check'=>'fa fa-check-square-o'); } } $is_post = true; extract($data); extract($results); $entity = array_search($entity, $entities); } return $this->render('AuditBundle:Audit:index.html.twig', array( 'base_template' => $this->getBaseTemplate($request), 'admin_pool' => $this->get('sonata.admin.pool'), 'entities' => $entities, 'columns' => $columns, 'form' => $filterForm->createView(), 'is_post' => $is_post, 'data' => $result, 'entity' => $entity, 'total' => $count, 'params' => array( 'label' => $this->get('translator')->trans('Auditoría de Entidades', array(), 'AuditBundle'), 'regs' => $count, 'page' => $page, 'pages' => $pages ), 'showRowFilter' => $showRowFilter )); } /** * @param Request $request * @param string $classValue * @param id $id * @param Revision $rev * * @return string * * @Route("/admin/audit/view/{classValue}/{id}/{rev}", name="entity_audit_view_details") */ public function viewAction(Request $request, $classValue, $id, $rev) { /* @var $auditDataService AuditDataService */ $auditDataService = $this->get('audit.audit_data.service'); $className = array_search($classValue, $auditDataService->getEntities()); $result = $auditDataService->viewRevision($className, $id, $rev); $data = array( 'label' => $this->get('translator')->trans( 'Detalles de la revisión: %rev%', array( '%rev%' => $rev ), 'AuditBundle'), 'className' => $className, 'classValue' => $classValue, 'id' => $id, 'rev' => $rev, 'revdata' => $result['revdata'], 'details' => $result['rev_details'], 'revisions' => $result['rev_revisions'], ); return $this->render('AuditBundle:Audit:view.html.twig', array( 'base_template' => $this->getBaseTemplate($request), 'data' => $data, 'admin_pool' => $this->get('sonata.admin.pool'), )); } /** * @param Request $request * @param string $classValue * @param int $id * @param Revision $oldRev * @param Revision $newRev * * @return string * * @Route("/admin/flowdat2/entity/audit/compare/{classValue}/{id}", name="entity_audit_compare_revs") */ public function compareAction(Request $request, $classValue, $id, $oldRev = null, $newRev = null) { try { $oldRev = $request->query->get('oldRev'); $newRev = $request->query->get('newRev'); /* @var $auditDataService AuditDataService */ $auditDataService = $this->get('audit.audit_data.service'); $className = array_search($classValue, $auditDataService->getEntities()); $diff = $auditDataService->diff($className, $id, $oldRev, $newRev); $data = array( 'label' => $this->get('translator')->trans( 'Comparativa entre las revisiones %oldRev% y %newRev%', array( '%oldRev%' => $oldRev, '%newRev%' => $newRev ), 'AuditBundle'), 'className' => $className, 'classValue' => $classValue, 'id' => $id, 'oldRev' => $oldRev, 'newRev' => $newRev, 'diff' => $diff, ); return $this->render('AuditBundle:Audit:compare.html.twig', array( 'base_template' => $this->getBaseTemplate($request), 'data' => $data, 'admin_pool' => $this->get('sonata.admin.pool'), )); } catch (NoRevisionFoundException $ex) { $this->get('session')->getFlashBag()->add('sonata_error', $ex->getMessage()); return $this->redirect($this->generateUrl('entity_audit')); } } /** * @return string */ private function getBaseTemplate(Request $request) { $adminPool = $this->get('sonata.admin.pool'); if ($request->isXmlHttpRequest()) { return $adminPool->getTemplate('ajax'); } return $adminPool->getTemplate('layout'); } }