diff options
Diffstat (limited to 'library/Icinga/Web/View/Helper')
-rw-r--r-- | library/Icinga/Web/View/Helper/IcingaCheckbox.php | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/library/Icinga/Web/View/Helper/IcingaCheckbox.php b/library/Icinga/Web/View/Helper/IcingaCheckbox.php new file mode 100644 index 0000000..07cf01f --- /dev/null +++ b/library/Icinga/Web/View/Helper/IcingaCheckbox.php @@ -0,0 +1,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>'; + } +} |