ConfigExtension   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
c 1
b 0
f 0
dl 0
loc 26
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getStatus() 0 12 2
A updateCMSFields() 0 9 1
1
<?php
2
3
namespace BiffBangPow\SSMonitor\Client\Extension;
4
5
use BiffBangPow\SSMonitor\Client\Core\ClientInterface;
6
use BiffBangPow\SSMonitor\Client\Module\AllPackageVersions;
7
use BiffBangPow\SSMonitor\Client\Module\CorePackageVersions;
8
use BiffBangPow\SSMonitor\Client\Module\SSConfiguration;
9
use BiffBangPow\SSMonitor\Client\Module\SystemInfo;
10
use SilverStripe\Core\ClassInfo;
11
use SilverStripe\Core\Extension;
12
use SilverStripe\Forms\FieldList;
13
use SilverStripe\Forms\LiteralField;
14
use SilverStripe\View\HTML;
15
16
/**
17
 * Class \BiffBangPow\SSMonitor\Client\Extension\ConfigExtension
18
 *
19
 * @property \SilverStripe\SiteConfig\SiteConfig|\BiffBangPow\SSMonitor\Client\Extension\ConfigExtension $owner
20
 */
21
class ConfigExtension extends Extension
22
{
23
    public function updateCMSFields(FieldList $fields)
24
    {
25
        $status = $this->getStatus();
26
        $statusHTML = HTML::createTag('div', [], $status);
27
28
        $fields->addFieldsToTab('Root.Status', [
29
            LiteralField::create('statusheading',
30
                HTML::createTag('h1', [], _t(__CLASS__ . '.statuspage', 'System Status'))),
31
            LiteralField::create('stats', $statusHTML)
32
        ]);
33
    }
34
35
    private function getStatus()
36
    {
37
        $classes = ClassInfo::implementorsOf(ClientInterface::class);
38
39
        $html = '';
40
41
        foreach ($classes as $class) {
42
            $classInst = (new $class);
43
            $html .= $classInst->forTemplate();
44
        }
45
46
        return $html;
47
    }
48
}
49