mirror of
https://github.com/Icinga/icingaweb2-module-businessprocess.git
synced 2025-12-20 23:00:16 -05:00
Storing overrides as part of a node's name leads to way too complicated code. A separate field is not only better for compatibility but also more straightforward to process.
40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
|
|
// Avoid complaints about missing namespace and invalid class name
|
|
// @codingStandardsIgnoreStart
|
|
class Zend_View_Helper_FormStateOverrides extends Zend_View_Helper_FormElement
|
|
{
|
|
// @codingStandardsIgnoreEnd
|
|
|
|
public function formStateOverrides($name, $value = null, $attribs = null)
|
|
{
|
|
$states = $attribs['states'];
|
|
unset($attribs['states']);
|
|
$attribs['multiple'] = '';
|
|
|
|
$html = '';
|
|
foreach ($states as $state => $label) {
|
|
if ($state === 0) {
|
|
continue;
|
|
}
|
|
|
|
$chosen = $state;
|
|
if (isset($value[$state])) {
|
|
$chosen = $value[$state];
|
|
}
|
|
|
|
$options = [$state => t('Keep actual state')] + $states;
|
|
|
|
$html .= '<label><span>' . $this->view->escape($label) . '</span>';
|
|
$html .= $this->view->formSelect(
|
|
sprintf('%s[%d]', substr($name, 0, -2), $state),
|
|
$chosen,
|
|
$attribs,
|
|
$options
|
|
);
|
|
$html .= '</label>';
|
|
}
|
|
|
|
return $html;
|
|
}
|
|
}
|