/**
  * Setup scripts.
  *
  * @param ReportRouting $reportRouting
  */
 protected function setScripts(ReportRouting $reportRouting)
 {
     $report = $reportRouting->getReport();
     $scripts = $report->getScripts();
     $content = $report->getResponse();
     $doc = new \DOMDocument();
     $doc->loadHTML($content);
     $heads = $doc->getElementsByTagName('head');
     if ($heads->length == 0) {
         /* If no head is created, add it at the top of HTML */
         $head = $doc->createElement('head');
         $html = $doc->getElementsByTagName('html');
         $html->item(0)->insertBefore($head, $html->item(0)->firstChild);
     } else {
         $head = $heads->item(0);
     }
     foreach ($scripts as $script) {
         $url = $reportRouting->getUrl($script);
         $element = $doc->createElement('script');
         $element->setAttribute('type', 'text/javascript');
         $element->setAttribute('src', $url);
         $head->appendChild($element);
     }
     $report->setResponse($doc->saveHTML());
 }
Example #2
0
 /**
  * @param \DOMElement $element
  * @param string $attribute
  * @param ReportRouting $reportRouting
  */
 protected function prepareAsset(\DOMElement $element, $attribute, ReportRouting $reportRouting)
 {
     $asset = $element->getAttribute($attribute);
     if ($asset) {
         $asset = $this->sanitizeAsset($asset);
         if ($this->assetNeedsTransform($asset)) {
             $asset = $reportRouting->getPath($asset);
         }
         $element->setAttribute($attribute, $asset);
     }
 }
 /**
  * Find and registers all available extensions.
  */
 protected function findExtensions()
 {
     /* TODO: Automate extension addition */
     $routingExtension = new ReportRouting($this->templatingHelper, $this->report);
     $this->extensions[$routingExtension->getName()] = $routingExtension;
 }