summaryrefslogtreecommitdiffstats
path: root/library/Graphite/ProvidedHook/Monitoring/DetailviewExtension.php
blob: 23912a75ee1b24c2195ce9f341ea0e857cbb595a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php

namespace Icinga\Module\Graphite\ProvidedHook\Monitoring;

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\Monitoring\Hook\DetailviewExtensionHook;
use Icinga\Module\Monitoring\Object\MonitoredObject;

class DetailviewExtension extends DetailviewExtensionHook
{
    use TimeRangePickerTrait;

    public function getHtmlForObject(MonitoredObject $object)
    {
        if (Icinga::app()->getRequest()->getUrl()->getParam('graph_debug')) {
            IPT::enable();
        }

        $graphs = (string) Graphs::forMonitoredObject($object)
            ->setWidth('440')
            ->setHeight('220')
            ->setClasses(['object-detail-view'])
            ->setPreloadDummy()
            ->setShowNoGraphsFound(false)
            ->handleRequest();

        if ($graphs !== '') {
            $this->handleTimeRangePickerRequest();
            return '<h2>' . mt('graphite', 'Graphs') . '</h2>'
                . $this->renderTimeRangePicker($this->getView())
                . '<div class="graphite-graph-color-registry"></div>'
                . $graphs;
        }

        return '';
    }
}