** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ $widget = (new CWidget())->setTitle(_('Actions'))->setControls((new CForm('get'))->cleanItems()->addItem((new CList())->addItem([_('Event source'), SPACE, new CComboBox('eventsource', $data['eventsource'], 'submit()', [EVENT_SOURCE_TRIGGERS => _('Triggers'), EVENT_SOURCE_DISCOVERY => _('Discovery'), EVENT_SOURCE_AUTO_REGISTRATION => _('Auto registration'), EVENT_SOURCE_INTERNAL => _x('Internal', 'event source')])])->addItem(new CSubmit('form', _('Create action'))))); // create form $actionForm = (new CForm())->setName('actionForm'); // create table $actionTable = (new CTableInfo())->setHeader([(new CColHeader((new CCheckBox('all_items'))->onClick("checkAll('" . $actionForm->getName() . "', 'all_items', 'g_actionid');")))->addClass(ZBX_STYLE_CELL_WIDTH), make_sorting_header(_('Name'), 'name', $this->data['sort'], $this->data['sortorder']), _('Conditions'), _('Operations'), make_sorting_header(_('Status'), 'status', $this->data['sort'], $this->data['sortorder'])]); if ($this->data['actions']) { $actionConditionStringValues = actionConditionValueToString($this->data['actions'], $this->data['config']); $actionOperationDescriptions = getActionOperationDescriptions($this->data['actions']); foreach ($this->data['actions'] as $aIdx => $action) { $conditions = []; $operations = []; order_result($action['filter']['conditions'], 'conditiontype', ZBX_SORT_DOWN); foreach ($action['filter']['conditions'] as $cIdx => $condition) { $conditions[] = getConditionDescription($condition['conditiontype'], $condition['operator'], $actionConditionStringValues[$aIdx][$cIdx]); $conditions[] = BR(); } sortOperations($data['eventsource'], $action['operations']); foreach ($action['operations'] as $oIdx => $operation) { $operations[] = $actionOperationDescriptions[$aIdx][$oIdx]; } if ($action['status'] == ACTION_STATUS_DISABLED) { $status = (new CLink(_('Disabled'), 'actionconf.php?action=action.massenable&g_actionid[]=' . $action['actionid'] . url_param('eventsource')))->addClass(ZBX_STYLE_LINK_ACTION)->addClass(ZBX_STYLE_RED)->addSID(); } else { $status = (new CLink(_('Enabled'), 'actionconf.php?action=action.massdisable&g_actionid[]=' . $action['actionid'] . url_param('eventsource')))->addClass(ZBX_STYLE_LINK_ACTION)->addClass(ZBX_STYLE_GREEN)->addSID(); } $actionTable->addRow([new CCheckBox('g_actionid[' . $action['actionid'] . ']', $action['actionid']), new CLink($action['name'], 'actionconf.php?form=update&actionid=' . $action['actionid']), $conditions, $operations, $status]); } } // append table to form
foreach ($this->data['new_operation']['opconditions'] as $cIdx => $opcondition) { if (!isset($opcondition['conditiontype'])) { $opcondition['conditiontype'] = 0; } if (!isset($opcondition['operator'])) { $opcondition['operator'] = 0; } if (!isset($opcondition['value'])) { $opcondition['value'] = 0; } if (!str_in_array($opcondition['conditiontype'], $allowed_opconditions)) { continue; } $label = num2letter($i); $labelCol = (new CCol($label))->addClass('label')->setAttribute('data-conditiontype', $opcondition['conditiontype'])->setAttribute('data-formulaid', $label); $operationConditionsTable->addRow([$labelCol, getConditionDescription($opcondition['conditiontype'], $opcondition['operator'], $operationConditionStringValues[$cIdx]), (new CCol([(new CButton('remove', _('Remove')))->onClick('javascript: removeOperationCondition(' . $i . ');')->addClass(ZBX_STYLE_BTN_LINK), new CVar('new_operation[opconditions][' . $i . '][conditiontype]', $opcondition['conditiontype']), new CVar('new_operation[opconditions][' . $i . '][operator]', $opcondition['operator']), new CVar('new_operation[opconditions][' . $i . '][value]', $opcondition['value'])]))->addClass(ZBX_STYLE_NOWRAP)], null, 'opconditions_' . $i); $i++; } $calcTypeComboBox = new CComboBox('new_operation[evaltype]', $this->data['new_operation']['evaltype'], 'submit()', [CONDITION_EVAL_TYPE_AND_OR => _('And/Or'), CONDITION_EVAL_TYPE_AND => _('And'), CONDITION_EVAL_TYPE_OR => _('Or')]); $calcTypeComboBox->setId('operationEvaltype'); $new_operation_formlist->addRow(_('Type of calculation'), [$calcTypeComboBox, (new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN), (new CSpan())->setId('operationConditionLabel')]); if (!isset($_REQUEST['new_opcondition'])) { $operationConditionsTable->addRow((new CCol((new CSubmit('new_opcondition', _('New')))->addClass(ZBX_STYLE_BTN_LINK)))->setColspan(3)); } $new_operation_formlist->addRow(_('Conditions'), (new CDiv($operationConditionsTable))->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)->setAttribute('style', 'min-width: ' . ZBX_TEXTAREA_STANDARD_WIDTH . 'px;')); } // append new operation condition to form list if (isset($_REQUEST['new_opcondition'])) { $newOperationConditionTable = (new CTable())->setAttribute('style', 'width: 100%;'); $allowedOpConditions = get_opconditions_by_eventsource($this->data['eventsource']); $new_opcondition = getRequest('new_opcondition', []);