コード例 #1
0
** 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
コード例 #2
0
     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', []);