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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
<?php declare(strict_types = 0);
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
/**
* Problems widget form view.
*
* @var CView $this
* @var array $data
*/
$form = (new CWidgetFormView($data));
$groupids = array_key_exists('groupids', $data['fields'])
? new CWidgetFieldMultiSelectGroupView($data['fields']['groupids'])
: null;
$form
->addField(
new CWidgetFieldRadioButtonListView($data['fields']['show'])
)
->addField($groupids)
->addField(array_key_exists('exclude_groupids', $data['fields'])
? new CWidgetFieldMultiSelectGroupView($data['fields']['exclude_groupids'])
: null
)
->addField(array_key_exists('hostids', $data['fields'])
? (new CWidgetFieldMultiSelectHostView($data['fields']['hostids']))
->setFilterPreselect([
'id' => $groupids->getId(),
'accept' => CMultiSelect::FILTER_PRESELECT_ACCEPT_ID,
'submit_as' => 'groupid'
])
: null
)
->addField(
new CWidgetFieldTextBoxView($data['fields']['problem'])
)
->addField(
new CWidgetFieldSeveritiesView($data['fields']['severities'])
)
->addField(
new CWidgetFieldRadioButtonListView($data['fields']['evaltype'])
)
->addField(
new CWidgetFieldTagsView($data['fields']['tags'])
)
->addField(
new CWidgetFieldRadioButtonListView($data['fields']['show_tags'])
)
->addField(
new CWidgetFieldRadioButtonListView($data['fields']['tag_name_format'])
)
->addField(
(new CWidgetFieldTextBoxView($data['fields']['tag_priority']))->setPlaceholder(_('comma-separated list'))
)
->addField(
new CWidgetFieldRadioButtonListView($data['fields']['show_opdata'])
)
->addField(
new CWidgetFieldCheckBoxView($data['fields']['show_symptoms'])
)
->addField(
new CWidgetFieldCheckBoxView($data['fields']['show_suppressed'])
)
->addItem(getAcknowledgementStatusFieldsViews($form, $data['fields']))
->addField(
new CWidgetFieldSelectView($data['fields']['sort_triggers'])
)
->addField(
new CWidgetFieldCheckBoxView($data['fields']['show_timeline'])
)
->addField(
new CWidgetFieldIntegerBoxView($data['fields']['show_lines'])
)
->includeJsFile('widget.edit.js.php')
->addJavaScript('widget_problems_form.init('.json_encode([
'sort_with_enabled_show_timeline' => [
SCREEN_SORT_TRIGGERS_TIME_DESC => true,
SCREEN_SORT_TRIGGERS_TIME_ASC => true
]
], JSON_THROW_ON_ERROR).');')
->show();
function getAcknowledgementStatusFieldsViews(CWidgetFormView $form, array $fields): array {
$acknowledgement_status_field = $form->registerField(
new CWidgetFieldRadioButtonListView($fields['acknowledgement_status'])
);
$acknowledged_by_me_field = $form->registerField(new CWidgetFieldCheckBoxView($fields['acknowledged_by_me']));
return [
new CLabel(_('Acknowledgement status'), 'acknowledgement_status'),
new CFormField(new CHorList([
$acknowledgement_status_field->getView()->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
$acknowledged_by_me_field->getLabel()->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
$acknowledged_by_me_field->getView()
]))
];
}
|