/** * @param Request $request * @param EventIdentifier $eventIdentifier * @return JsonResponse */ public function renderAction(Request $request, EventIdentifier $eventIdentifier) { if ($request->get('decimal')) { $decimal = $request->get('decimal'); } else { $decimal = 0; } if ($request->get('limit')) { $limit = max($request->get('limit'), 2); } else { $limit = 2; } $conn = $this->container->get('database_connection'); $sql = "SELECT value FROM `event` WHERE event_identifier_id=" . $eventIdentifier->getId() . " ORDER BY created desc limit " . $limit; $rows = $conn->query($sql)->fetchAll(); $chart = new \StdClass(); $datas = []; foreach ($rows as $row) { $datas[]['value'] = round($row['value'], $decimal); } $chart->item = $datas; $response = new JsonResponse($chart); $response->setEncodingOptions($response->getEncodingOptions() | JSON_PRETTY_PRINT); return $response; }
public function renderAction(Request $request, EventIdentifier $eventIdentifier) { if ($request->get('interval')) { $intervalType = $request->get('interval'); } else { $intervalType = 'd'; } if ($request->get('decimal')) { $decimal = $request->get('decimal'); } else { $decimal = 0; } if ($request->get('labelInterval')) { $labelInterval = $request->get('labelInterval'); } else { $labelInterval = 1; } switch ($intervalType) { case 'd': $groupDateForm = "%Y%m%d"; $selectDateForm = "%d.%m.%Y"; $interval = 'P1M'; break; case 'h': $groupDateForm = "%Y%m%d%H"; $selectDateForm = "%h %p"; $interval = 'P1D'; break; default: return new JsonResponse(['status' => 'error', 'message' => 'IntervalType ' . $intervalType . ' does not exists.'], 404); } $startDate = new \DateTime('now'); $startDate->sub(new \DateInterval($interval)); $conn = $this->container->get('database_connection'); $sql = "SELECT AVG(value) as avgValue, DATE_FORMAT(created, '" . $selectDateForm . "') as timespan FROM `event` WHERE event_identifier_id=" . $eventIdentifier->getId() . " and created > '" . $startDate->format('Y-m-d H:i:s') . "' GROUP BY DATE_FORMAT(created, '" . $groupDateForm . "')"; $rows = $conn->query($sql)->fetchAll(); $chart = new \StdClass(); $chart->x_axis = ['labels' => []]; $datas = []; $i = 0; foreach ($rows as $row) { if ($i % $labelInterval == 0) { $chart->x_axis['labels'][] = strtolower($row['timespan']); } else { $chart->x_axis['labels'][] = ''; } $i++; $datas[] = round($row['avgValue'], $decimal); } $chart->series = [['data' => $datas]]; $response = new JsonResponse($chart); $response->setEncodingOptions($response->getEncodingOptions() | JSON_PRETTY_PRINT); return $response; }
public function unMarkAsIgnoredIssueAction(EventIdentifier $eventIdentifier) { $this->setProject($eventIdentifier->getProject()); $this->assertUserRights(UserRole::ROLE_COLLABORATOR); $eventIdentifier->setIgnoredIssue(false); $project = $eventIdentifier->getProject(); $project->incOpenIncidentCount(); $em = $this->getDoctrine()->getManager(); $em->persist($eventIdentifier); $em->persist($project); $em->flush(); return $this->redirectToRoute("bauer_incident_dashboard_core_homepage", array('project' => $project->getIdentifier())); }
public function onRawEventAdd(NewRawEventEvent $rawEventEvent) { $rawEvent = $rawEventEvent->getRawEvent(); $eventIdentifier = $this->doctrineManager->getRepository('KoalamonIncidentDashboardBundle:EventIdentifier')->findOneBy(['identifier' => $rawEvent->getIdentifier(), 'project' => $rawEventEvent->getProject()]); if (!$eventIdentifier) { $system = $this->doctrineManager->getRepository('KoalamonIncidentDashboardBundle:System')->findOneBy(['identifier' => $rawEvent->getSystem()]); $eventIdentifier = new EventIdentifier(); $eventIdentifier->setIdentifier($rawEvent->getIdentifier()); $eventIdentifier->setSystem($system); $eventIdentifier->setProject($rawEventEvent->getProject()); $this->doctrineManager->persist($eventIdentifier); $this->doctrineManager->flush(); } $rawEventEvent->getEvent()->setEventIdentifier($eventIdentifier); }
private function persistEventCount($count) { $em = $this->getContainer()->get('doctrine')->getManager(); /** @var \Doctrine\ORM\EntityManager $em */ $eventIdentifier = $em->getRepository('KoalamonIncidentDashboardBundle:EventIdentifier')->findOneBy(['identifier' => self::DELETED_EVENT_COUNT_IDENTIFIER_ID]); /** @var EventIdentifier $eventIdentifier */ if ($eventIdentifier) { $eventIdentifier->setEventCount($eventIdentifier->getEventCount() + $count); } else { $eventIdentifier = new EventIdentifier(); $eventIdentifier->setIdentifier(self::DELETED_EVENT_COUNT_IDENTIFIER_ID); $eventIdentifier->setProject($em->getRepository('KoalamonIncidentDashboardBundle:Project')->find(0)); $eventIdentifier->setEventCount($count); } $em->persist($eventIdentifier); $em->flush(); }