summaryrefslogtreecommitdiffstats
path: root/library/Icinga/Web/View/Helper/IcingaCheckbox.php
blob: 07cf01fee14bbd4a7bdfa2843ac021629699338e (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
<?php
/* Icinga Web 2 | (c) 2019 Icinga GmbH | GPLv2+ */

namespace Icinga\Web\View\Helper;

class IcingaCheckbox extends \Zend_View_Helper_FormCheckbox
{
    public function icingaCheckbox($name, $value = null, $attribs = null, array $checkedOptions = null)
    {
        if (! isset($attribs['id'])) {
            $attribs['id'] = $this->view->protectId('icingaCheckbox_' . $name);
        }

        $attribs['class'] = (isset($attribs['class']) ? $attribs['class'] . ' ' : '') . 'sr-only';
        $html = parent::formCheckbox($name, $value, $attribs, $checkedOptions);

        $class = 'toggle-switch';
        if (isset($attribs['disabled'])) {
            $class .= ' disabled';
        }

        return $html
            . '<label for="'
            . $attribs['id']
            . '" aria-hidden="true"'
            . ' class="'
            . $class
            . '"><span class="toggle-slider"></span></label>';
    }
}