<?php declare(strict_types = 0);
$form = (new CForm())
->setId('script-userinput-form')
->addItem((new CSubmitButton())->addClass(ZBX_STYLE_FORM_SUBMIT_HIDDEN));
if ($data['manualinput_validator_type'] == ZBX_SCRIPT_MANUALINPUT_TYPE_LIST) {
$form
->addItem(
(new CSpan($data['manualinput_prompt']))
->addClass(ZBX_STYLE_WORDBREAK)
->addClass(ZBX_STYLE_FLOAT_LEFT)
)
->addItem(
(new CSelect('manualinput'))
->addStyle('margin-top: 8px;')
->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)
->addOptions(CSelect::createOptionsFromArray($data['dropdown_options']))
->setValue(array_shift($data['dropdown_options']))
->addClass(ZBX_STYLE_FLOAT_LEFT)
);
}
else {
$form
->addItem((new CSpan($data['manualinput_prompt']))->addClass(ZBX_STYLE_WORDBREAK))
->addItem(
new CFormField(
(new CTextBox('manualinput', $data['manualinput_default_value'], false,
DB::getFieldLength('scripts', 'manualinput_default_value')
))
->addStyle('margin-top: 8px;')
->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)
)
);
}
$buttons = [
[
'title' => _('Cancel'),
'class' => ZBX_STYLE_BTN_ALT,
'cancel' => true,
'action' => ''
]
];
if ($data['test']) {
$buttons[] = [
'title' => _('Test'),
'keepOpen' => true,
'isSubmit' => true,
'action' => 'script_userinput_popup.submitTestForm();',
'class' => 'userinput-submit',
'enabled' => $data['manualinput_validator_type'] == ZBX_SCRIPT_MANUALINPUT_TYPE_STRING
];
}
else {
$buttons[] = [
'title' => $data['has_confirmation'] ? _('Continue') : _('Execute'),
'keepOpen' => true,
'isSubmit' => true,
'action' => 'script_userinput_popup.submit();'
];
}
$form
->addItem(
(new CScriptTag('script_userinput_popup.init('.json_encode([
'test' => $data['test'],
'input_type' => $data['manualinput_validator_type'],
'default_input' => $data['manualinput_default_value'],
'input_validator' => $data['manualinput_validator']
]).');'))->setOnDocumentReady()