Пример #1
0
 public function prepareRow($item, $class = null, $id = null)
 {
     if ($item === null) {
         return null;
     }
     if (is_object($item) && strtolower(get_class($item)) === 'ccol') {
         if (isset($this->header) && !isset($item->attributes['colspan'])) {
             $item->attributes['colspan'] = $this->colnum;
         }
     }
     if (!is_object($item) || strtolower(get_class($item)) !== 'crow') {
         $item = new CRow($item);
         if ($id !== null) {
             $item->setId($id);
         }
     }
     if ($class !== null) {
         $item->addClass($class);
     }
     return $item;
 }
// append host summary to widget header
$triggersWidget->addItem(get_header_host_table('trigger_prototypes', $data['hostid'], $data['parent_discoveryid']));
$triggersForm = (new CForm())->setName('triggersForm')->addVar('action', $data['action'])->addVar('parent_discoveryid', $data['parent_discoveryid']);
foreach ($data['g_triggerid'] as $triggerid) {
    $triggersForm->addVar('g_triggerid[' . $triggerid . ']', $triggerid);
}
$triggersFormList = (new CFormList('triggersFormList'))->addRow([_('Severity'), SPACE, (new CVisibilityBox('visible[priority]', 'priority_div', _('Original')))->setChecked(isset($data['visible']['priority']))], (new CDiv(new CSeverity(['name' => 'priority', 'value' => $data['priority']])))->setId('priority_div'));
// append dependencies to form list
$dependenciesTable = (new CTable())->setAttribute('style', 'width: 100%;')->setHeader([_('Name'), _('Action')]);
foreach ($data['dependencies'] as $dependency) {
    $triggersForm->addVar('dependencies[]', $dependency['triggerid'], 'dependencies_' . $dependency['triggerid']);
    $depTriggerDescription = CHtml::encode(implode(', ', zbx_objectValues($dependency['hosts'], 'name')) . NAME_DELIMITER . $dependency['description']);
    if ($dependency['flags'] == ZBX_FLAG_DISCOVERY_PROTOTYPE) {
        $description = (new CLink($depTriggerDescription, 'trigger_prototypes.php?form=update' . url_param('parent_discoveryid') . '&triggerid=' . $dependency['triggerid']))->setAttribute('target', '_blank');
    } elseif ($dependency['flags'] == ZBX_FLAG_DISCOVERY_NORMAL) {
        $description = (new CLink($depTriggerDescription, 'triggers.php?form=update&triggerid=' . $dependency['triggerid']))->setAttribute('target', '_blank');
    }
    $row = new CRow([$description, (new CCol((new CButton('remove', _('Remove')))->onClick('javascript: removeDependency(\'' . $dependency['triggerid'] . '\');')->addClass(ZBX_STYLE_BTN_LINK)))->addClass(ZBX_STYLE_NOWRAP)]);
    $row->setId('dependency_' . $dependency['triggerid']);
    $dependenciesTable->addRow($row);
}
$dependenciesDiv = (new CDiv([$dependenciesTable, new CHorList([(new CButton('add_dep_trigger', _('Add')))->onClick('return PopUp("popup.php?dstfrm=massupdate&dstact=add_dependency&reference=deptrigger' . '&dstfld1=new_dependency&srctbl=triggers&objname=triggers&srcfld1=triggerid&multiselect=1' . '&with_triggers=1&normal_only=1&noempty=1");')->addClass(ZBX_STYLE_BTN_LINK), (new CButton('add_dep_trigger_prototype', _('Add prototype')))->onClick('return PopUp("popup.php?dstfrm=massupdate&dstact=add_dependency&reference=deptrigger' . '&dstfld1=new_dependency&srctbl=trigger_prototypes&objname=triggers&srcfld1=triggerid' . url_param('parent_discoveryid') . '&multiselect=1");')->addClass(ZBX_STYLE_BTN_LINK)])]))->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)->setAttribute('style', 'min-width: ' . ZBX_TEXTAREA_BIG_WIDTH . 'px;')->setId('dependencies_div');
$triggersFormList->addRow([_('Replace dependencies'), SPACE, (new CVisibilityBox('visible[dependencies]', 'dependencies_div', _('Original')))->setChecked(isset($data['visible']['dependencies']))], $dependenciesDiv);
$triggersTab = new CTabView();
$triggersTab->addTab('triggersTab', _('Mass update'), $triggersFormList);
// append buttons to form
$triggersTab->setFooter(makeFormFooter(new CSubmit('massupdate', _('Update')), [new CButtonCancel(url_param('parent_discoveryid'))]));
// append tabs to form
$triggersForm->addItem($triggersTab);
$triggersWidget->addItem($triggersForm);
return $triggersWidget;
Пример #3
0
 foreach ($expressions as $id => $expr) {
     $imgup = (new CImg('images/general/arrow_up.png', 'up', 12, 14))->onClick('javascript: element_up("logtr' . $id . '");')->onMouseover('javascript: this.style.cursor = "pointer";')->addClass('updown');
     $imgdn = (new CImg('images/general/arrow_down.png', 'down', 12, 14))->onClick('javascript: element_down("logtr' . $id . '");')->onMouseover('javascript: this.style.cursor = "pointer";')->addClass('updown');
     $row = new CRow([htmlspecialchars($expr['value']), $expr['type'] == CTextTriggerConstructor::EXPRESSION_TYPE_MATCH ? _('Include') : _('Exclude'), [$imgup, ' ', $imgdn], (new CCol((new CButton(null, _('Remove')))->addClass(ZBX_STYLE_BTN_LINK)->onClick('javascript: remove_expression("logtr' . $id . '");')))->addClass(ZBX_STYLE_NOWRAP)]);
     $row->setId('logtr' . $id);
     $table->addRow($row);
     $form->addVar('expressions[' . $id . '][value]', $expr['value']);
     $form->addVar('expressions[' . $id . '][type]', $expr['type']);
     $maxId = max($maxId, $id);
 }
 zbx_add_post_js('logexpr_count=' . ($maxId + 1) . ';');
 zbx_add_post_js('processExpressionList();');
 $maxId = 0;
 foreach ($keys as $id => $val) {
     $row = new CRow([htmlspecialchars($val['value']), $val['type'], (new CCol((new CButton(null, _('Remove')))->addClass(ZBX_STYLE_BTN_LINK)->onClick('javascript: remove_keyword("keytr' . $id . '");')))->addClass(ZBX_STYLE_NOWRAP)]);
     $row->setId('keytr' . $id);
     $keyTable->addRow($row);
     $form->addVar('keys[' . $id . '][value]', $val['value']);
     $form->addVar('keys[' . $id . '][type]', $val['type']);
     $maxId = max($maxId, $id);
 }
 zbx_add_post_js('key_count=' . ($maxId + 1) . ';');
 $form_list->addRow(null, (new CDiv($keyTable))->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)->setAttribute('style', 'min-width: ' . ZBX_TEXTAREA_BIG_WIDTH . 'px;'));
 $form_list->addRow(null, (new CDiv($table))->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)->setAttribute('style', 'min-width: ' . ZBX_TEXTAREA_BIG_WIDTH . 'px;'));
 $sev_select = new CComboBox('priority', $priority);
 $config = select_config();
 $severityNames = [];
 for ($severity = TRIGGER_SEVERITY_NOT_CLASSIFIED; $severity < TRIGGER_SEVERITY_COUNT; $severity++) {
     $severityNames[] = getSeverityName($severity, $config);
 }
 $sev_select->addItems($severityNames);
            $from = dowHrMinToStr($serviceTime['ts_from']);
            $to = dowHrMinToStr($serviceTime['ts_to'], true);
            break;
        case SERVICE_TIME_TYPE_DOWNTIME:
            $type = (new CSpan(_('Downtime')))->addClass('disabled');
            $from = dowHrMinToStr($serviceTime['ts_from']);
            $to = dowHrMinToStr($serviceTime['ts_to'], true);
            break;
        case SERVICE_TIME_TYPE_ONETIME_DOWNTIME:
            $type = (new CSpan(_('One-time downtime')))->addClass('disabled');
            $from = zbx_date2str(DATE_TIME_FORMAT, $serviceTime['ts_from']);
            $to = zbx_date2str(DATE_TIME_FORMAT, $serviceTime['ts_to']);
            break;
    }
    $row = new CRow([[$type, new CVar('times[' . $i . '][type]', $serviceTime['type']), new CVar('times[' . $i . '][ts_from]', $serviceTime['ts_from']), new CVar('times[' . $i . '][ts_to]', $serviceTime['ts_to']), new CVar('times[' . $i . '][note]', $serviceTime['note'])], $from . ' - ' . $to, htmlspecialchars($serviceTime['note']), (new CCol((new CButton('remove', _('Remove')))->onClick('javascript: removeTime(\'' . $i . '\');')->addClass(ZBX_STYLE_BTN_LINK)))->addClass(ZBX_STYLE_NOWRAP)]);
    $row->setId('times_' . $i);
    $servicesTimeTable->addRow($row);
    $i++;
}
$servicesTimeFormList->addRow(_('Service times'), (new CDiv($servicesTimeTable))->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)->setAttribute('style', 'min-width: ' . ZBX_TEXTAREA_BIG_WIDTH . 'px;'));
// create service time table
$serviceTimeTable = (new CTable())->addRow([_('Period type'), new CComboBox('new_service_time[type]', $this->data['new_service_time']['type'], 'submit()', [SERVICE_TIME_TYPE_UPTIME => _('Uptime'), SERVICE_TIME_TYPE_DOWNTIME => _('Downtime'), SERVICE_TIME_TYPE_ONETIME_DOWNTIME => _('One-time downtime')])]);
if ($this->data['new_service_time']['type'] == SERVICE_TIME_TYPE_ONETIME_DOWNTIME) {
    // downtime since
    if (isset($_REQUEST['new_service_time']['from'])) {
        $fromYear = getRequest('new_service_time_from_year');
        $fromMonth = getRequest('new_service_time_from_month');
        $fromDay = getRequest('new_service_time_from_day');
        $fromHours = getRequest('new_service_time_from_hour');
        $fromMinutes = getRequest('new_service_time_from_minute');
        $fromDate = ['y' => $fromYear, 'm' => $fromMonth, 'd' => $fromDay, 'h' => $fromHours, 'i' => $fromMinutes];