summaryrefslogtreecommitdiffstats
path: root/library/Graphite/ProvidedHook/Icingadb/ServiceDetailExtension.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--library/Graphite/ProvidedHook/Icingadb/ServiceDetailExtension.php46
1 files changed, 46 insertions, 0 deletions
diff --git a/library/Graphite/ProvidedHook/Icingadb/ServiceDetailExtension.php b/library/Graphite/ProvidedHook/Icingadb/ServiceDetailExtension.php
new file mode 100644
index 0000000..63c2b79
--- /dev/null
+++ b/library/Graphite/ProvidedHook/Icingadb/ServiceDetailExtension.php
@@ -0,0 +1,46 @@
+<?php
+
+namespace Icinga\Module\Graphite\ProvidedHook\Icingadb;
+
+use Icinga\Application\Icinga;
+use Icinga\Module\Graphite\Util\InternalProcessTracker as IPT;
+use Icinga\Module\Graphite\Web\Controller\TimeRangePickerTrait;
+use Icinga\Module\Graphite\Web\Widget\Graphs;
+use Icinga\Module\Icingadb\Hook\ServiceDetailExtensionHook;
+use Icinga\Module\Icingadb\Model\Service;
+use ipl\Html\Html;
+use ipl\Html\HtmlString;
+use ipl\Html\ValidHtml;
+
+class ServiceDetailExtension extends ServiceDetailExtensionHook
+{
+ use TimeRangePickerTrait;
+
+ public function getHtmlForObject(Service $service): ValidHtml
+ {
+ if (Icinga::app()->getRequest()->getUrl()->getParam('graph_debug')) {
+ IPT::enable();
+ }
+
+ $graphs = (string) Graphs::forIcingadbObject($service)
+ ->setWidth(440)
+ ->setHeight(220)
+ ->setClasses(['object-detail-view'])
+ ->setPreloadDummy()
+ ->setShowNoGraphsFound(false)
+ ->handleRequest();
+
+ if (! empty($graphs)) {
+ $this->handleTimeRangePickerRequest();
+
+ $header = Html::tag('h2', [], 'Graphs');
+ $timepicker = HtmlString::create($this->renderTimeRangePicker(Icinga::app()->getViewRenderer()->view));
+ $graphColorRegistry = Html::tag('div', ['class' => 'graphite-graph-color-registry']);
+ $graphs = HtmlString::create($graphs);
+
+ return HtmlString::create($header . $timepicker . $graphColorRegistry . $graphs);
+ }
+
+ return HtmlString::create('');
+ }
+}