summaryrefslogtreecommitdiffstats
path: root/application/controllers/PhperrorController.php
blob: 40a32c1a7512fda7a8cba8ed054f1a510877b6c0 (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
41
42
43
<?php

namespace Icinga\Module\Director\Controllers;

use Icinga\Application\Icinga;
use Icinga\Module\Director\Application\DependencyChecker;
use Icinga\Module\Director\Web\Table\Dependency\DependencyInfoTable;
use Icinga\Web\Controller;

class PhperrorController extends Controller
{
    public function errorAction()
    {
        $this->getTabs()->add('error', array(
            'label' => $this->translate('Error'),
            'url'   => $this->getRequest()->getUrl()
        ))->activate('error');
        $msg = $this->translate(
            "PHP version 5.4.x is required for Director >= 1.4.0, you're running %s."
            . ' Please either upgrade PHP or downgrade Icinga Director'
        );
        $this->view->title = $this->translate('Unsatisfied dependencies');
        $this->view->message = sprintf($msg, PHP_VERSION);
    }

    public function dependenciesAction()
    {
        $checker = new DependencyChecker(Icinga::app());
        if ($checker->satisfiesDependencies($this->Module())) {
            $this->redirectNow('director');
        }
        $this->setAutorefreshInterval(15);
        $this->getTabs()->add('error', [
            'label' => $this->translate('Error'),
            'url'   => $this->getRequest()->getUrl()
        ])->activate('error');
        $this->view->title = $this->translate('Unsatisfied dependencies');
        $this->view->table = (new DependencyInfoTable($checker, $this->Module()))->render();
        $this->view->message = $this->translate(
            "Icinga Director depends on the following modules, please install/upgrade as required"
        );
    }
}