2016-05-19 08:59:25 -04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Icinga\Module\Director\Web\Form\Element;
|
|
|
|
|
|
|
|
|
|
use Zend_Form_Element_Select as ZfSelect;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Input control for booleans
|
|
|
|
|
*/
|
|
|
|
|
class Boolean extends ZfSelect
|
|
|
|
|
{
|
|
|
|
|
public $options = array(
|
2026-02-11 11:34:51 -05:00
|
|
|
'' => '- please choose -',
|
2016-05-19 08:59:25 -04:00
|
|
|
'y' => 'Yes',
|
|
|
|
|
'n' => 'No',
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
public function getValue()
|
|
|
|
|
{
|
|
|
|
|
$value = $this->getUnfilteredValue();
|
|
|
|
|
|
|
|
|
|
if ($value === 'y' || $value === true) {
|
|
|
|
|
return true;
|
|
|
|
|
} elseif ($value === 'n' || $value === false) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2017-07-13 04:38:06 -04:00
|
|
|
public function isValid($value, $context = null)
|
|
|
|
|
{
|
|
|
|
|
if ($value === 'y' || $value === 'n') {
|
2017-08-18 10:15:30 -04:00
|
|
|
$this->setValue($value);
|
2017-07-13 04:38:06 -04:00
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return parent::isValid($value, $context);
|
|
|
|
|
}
|
|
|
|
|
|
2017-01-13 13:47:54 -05:00
|
|
|
/**
|
|
|
|
|
* @param string $value
|
|
|
|
|
* @param string $key
|
|
|
|
|
* @codingStandardsIgnoreStart
|
|
|
|
|
*/
|
2026-03-31 06:03:09 -04:00
|
|
|
protected function _filterValue(&$value, &$key)
|
2016-05-19 08:59:25 -04:00
|
|
|
{
|
2017-01-13 13:47:54 -05:00
|
|
|
// @codingStandardsIgnoreEnd
|
2016-12-13 10:04:09 -05:00
|
|
|
if ($value === true) {
|
|
|
|
|
$value = 'y';
|
|
|
|
|
} elseif ($value === false) {
|
|
|
|
|
$value = 'n';
|
|
|
|
|
} elseif ($value === '') {
|
|
|
|
|
$value = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
parent::_filterValue($value, $key);
|
2016-05-19 08:59:25 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function setValue($value)
|
|
|
|
|
{
|
|
|
|
|
if ($value === true) {
|
|
|
|
|
$value = 'y';
|
|
|
|
|
} elseif ($value === false) {
|
|
|
|
|
$value = 'n';
|
2016-05-24 13:59:02 -04:00
|
|
|
} elseif ($value === '') {
|
|
|
|
|
$value = null;
|
2016-05-19 08:59:25 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return parent::setValue($value);
|
|
|
|
|
}
|
|
|
|
|
|
2016-05-19 14:54:18 -04:00
|
|
|
/**
|
|
|
|
|
* @codingStandardsIgnoreStart
|
|
|
|
|
*/
|
2016-05-19 08:59:25 -04:00
|
|
|
protected function _translateOption($option, $value)
|
|
|
|
|
{
|
2016-05-19 14:54:18 -04:00
|
|
|
// @codingStandardsIgnoreEnd
|
2016-05-19 08:59:25 -04:00
|
|
|
if (!isset($this->_translated[$option]) && !empty($value)) {
|
|
|
|
|
$this->options[$option] = mt('director', $value);
|
|
|
|
|
if ($this->options[$option] === $value) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
$this->_translated[$option] = true;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|