/** * Set a widget detail when needed * * @param WidgetDetailEvent $event * * @return void */ public function onWidgetDetailGenerate(WidgetDetailEvent $event) { $this->checkPermissions($event); if ($event->getType() == 'report') { $widget = $event->getWidget(); $params = $widget->getParams(); if (!$event->isCached()) { list($reportId, $graph) = explode(':', $params['graph']); $report = $this->model->getEntity($reportId); if ($report && $this->security->hasEntityAccess('report:reports:viewown', 'report:reports:viewother', $report->getCreatedBy())) { $reportData = $this->model->getReportData($report, null, ['ignoreTableData' => true, 'graphName' => $graph, 'dateFrom' => $params['dateFrom'], 'dateTo' => $params['dateTo']]); if (isset($reportData['graphs'][$graph])) { $graphData = $reportData['graphs'][$graph]; $event->setTemplateData(['chartData' => $graphData['data'], 'chartType' => $graphData['type'], 'chartHeight' => $widget->getHeight() - 90, 'reportId' => $report->getId(), 'dateFrom' => $params['dateFrom'], 'dateTo' => $params['dateTo']]); } } } $event->setTemplate('MauticReportBundle:SubscribedEvents\\Dashboard:widget.html.php'); $event->stopPropagation(); } }