示例#1
0
 /**
  * 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();
     }
 }