public function toString($destroy = true) { if (count($this->tabs) == 1) { $this->setAttribute('class', 'min-width ui-tabs ui-widget ui-widget-content ui-corner-all widget'); $header = reset($this->headers); $header = new CDiv($header); $header->addClass('ui-corner-all ui-widget-header header'); $header->setAttribute('id', 'tab_' . key($this->headers)); $this->addItem($header); $tab = reset($this->tabs); $tab->addClass('ui-tabs ui-tabs-panel ui-widget ui-widget-content ui-corner-all widget'); $this->addItem($tab); } else { $headersList = new CList(); foreach ($this->headers as $id => $header) { $tabLink = new CLink($header, '#' . $id, null, null, false); $tabLink->setAttribute('id', 'tab_' . $id); $headersList->addItem($tabLink); } $this->addItem($headersList); $this->addItem($this->tabs); $options = array(); if (!is_null($this->selectedTab)) { $options['selected'] = $this->selectedTab; } if ($this->rememberTab) { $options['cookie'] = array(); } zbx_add_post_js('jQuery("#' . $this->id . '").tabs(' . zbx_jsvalue($options, true) . ').show();'); } return parent::toString($destroy); }
/** * Process screen. * * @return CDiv (screen inside container) */ public function get() { $this->dataId = 'graph_' . $this->screenitem['screenitemid'] . '_' . $this->screenitem['screenid']; $resourceid = !empty($this->screenitem['real_resourceid']) ? $this->screenitem['real_resourceid'] : $this->screenitem['resourceid']; $containerid = 'graph_container_' . $this->screenitem['screenitemid'] . '_' . $this->screenitem['screenid']; $graphDims = getGraphDims(); $graphDims['graphHeight'] = $this->screenitem['height']; $graphDims['width'] = $this->screenitem['width']; // get time control $timeControlData = array('id' => $this->getDataId(), 'containerid' => $containerid, 'objDims' => $graphDims, 'loadImage' => 1, 'periodFixed' => CProfile::get('web.screens.timelinefixed', 1), 'sliderMaximumTimePeriod' => ZBX_MAX_PERIOD); // host feature if ($this->screenitem['dynamic'] == SCREEN_DYNAMIC_ITEM && !empty($this->hostid)) { $newitemid = get_same_item_for_host($resourceid, $this->hostid); $resourceid = !empty($newitemid) ? $newitemid : ''; } if ($this->mode == SCREEN_MODE_PREVIEW && !empty($resourceid)) { $this->action = 'history.php?action=' . HISTORY_GRAPH . '&itemids[]=' . $resourceid . '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow'] . $this->getProfileUrlParams(); } if ($resourceid && $this->mode != SCREEN_MODE_EDIT) { if ($this->mode == SCREEN_MODE_PREVIEW) { $timeControlData['loadSBox'] = 1; } } $timeControlData['src'] = $resourceid ? 'chart.php?itemids[]=' . $resourceid . '&' . $this->screenitem['url'] . '&width=' . $this->screenitem['width'] . '&height=' . $this->screenitem['height'] : 'chart3.php?'; $timeControlData['src'] .= $this->mode == SCREEN_MODE_EDIT ? '&period=3600&stime=' . date(TIMESTAMP_FORMAT, time()) : '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow']; $timeControlData['src'] .= $this->getProfileUrlParams(); // output if ($this->mode == SCREEN_MODE_JS) { return 'timeControl.addObject("' . $this->getDataId() . '", ' . CJs::encodeJson($this->timeline) . ', ' . CJs::encodeJson($timeControlData) . ')'; } else { if ($this->mode == SCREEN_MODE_SLIDESHOW) { insert_js('timeControl.addObject("' . $this->getDataId() . '", ' . CJs::encodeJson($this->timeline) . ', ' . CJs::encodeJson($timeControlData) . ');'); } else { zbx_add_post_js('timeControl.addObject("' . $this->getDataId() . '", ' . CJs::encodeJson($this->timeline) . ', ' . CJs::encodeJson($timeControlData) . ');'); } if ($this->mode == SCREEN_MODE_EDIT || $this->mode == SCREEN_MODE_SLIDESHOW) { $item = new CDiv(); } elseif ($this->mode == SCREEN_MODE_PREVIEW) { $item = new CLink(null, 'history.php?action=' . HISTORY_GRAPH . '&itemids[]=' . $resourceid . '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow']); } $item->setAttribute('id', $containerid); return $this->getOutput($item); } }
function bodyToString($destroy = true) { $left = new CDiv(null, 'left'); $left->addItem(new CDiv($this->getList(), 'left_menu')); $link1 = new CLink('www.zabbix.com', 'http://www.zabbix.com/', null, null, true); $link1->setAttribute('target', '_blank'); $link2 = new CLink('GPL v2', 'http://www.zabbix.com/license.php', null, null, true); $link2->setAttribute('target', '_blank'); $licence = new CDiv(array($link1, BR(), ' Licensed under ', $link2), 'setup_wizard_licence'); $left->addItem($licence); $right = new CDiv(null, 'right'); if ($this->getStep() == 0) { $right->addItem(new CDiv(null, 'blank_title')); $right->addItem(new CDiv($this->getState(), 'blank_under_title')); $container = new CDiv(array($left, $right), 'setup_wizard setup_wizard_welcome'); } else { $right->addItem(new CDiv($this->stage[$this->getStep()]['title'], 'setup_title')); $right->addItem(new CDiv($this->getState(), 'under_title')); $container = new CDiv(array($left, $right), 'setup_wizard'); } if (isset($this->stage[$this->getStep() + 1])) { $next = new CSubmit('next[' . $this->getStep() . ']', _('Next') . SPACE . '»'); } else { $next = new CSubmit('finish', _('Finish')); } if (isset($this->HIDE_CANCEL_BUTTON) && $this->HIDE_CANCEL_BUTTON) { $cancel = null; } else { $cancel = new CDiv(new CSubmit('cancel', _('Cancel')), 'footer_left'); } if ($this->DISABLE_NEXT_BUTTON) { $next->setEnabled(false); } // if the user is not logged in (first setup run) hide the "previous" button on the final step if ($this->getStep() && (CWebUser::$data && CWebUser::getType() == USER_TYPE_SUPER_ADMIN || $this->getStep() < 5)) { $back = new CSubmit('back[' . $this->getStep() . ']', '«' . SPACE . _('Previous')); } else { $back = null; } $footer = new CDiv(array($cancel, new CDiv(array($back, $next), 'footer_right')), 'footer'); $container->addItem($footer); return parent::bodyToString($destroy) . $container->ToString(); }
/** * Creates nodes that can be used to display the service configuration tree using the CTree class. * * @see CTree * * @param array $services * @param array $parentService * @param array $service * @param array $dependency * @param array $tree */ function createServiceConfigurationTree(array $services, &$tree, array $parentService = array(), array $service = array(), array $dependency = array()) { if (!$service) { $caption = new CLink(_('root'), '#', 'service-conf-menu'); $caption->setAttribute('data-menu', array('serviceid' => 0, 'name' => _('root'), 'hasDependencies' => true)); $serviceNode = array('id' => 0, 'parentid' => 0, 'caption' => $caption, 'trigger' => array(), 'algorithm' => SPACE, 'description' => SPACE); $service = $serviceNode; $service['serviceid'] = 0; $service['dependencies'] = array(); $service['trigger'] = array(); // add all top level services as children of "root" foreach ($services as $topService) { if (!$topService['parent']) { $service['dependencies'][] = array('servicedownid' => $topService['serviceid'], 'soft' => 0, 'linkid' => 0); } } $tree = array($serviceNode); } else { // caption $caption = new CLink($service['name'], '#', 'service-conf-menu'); // service is deletable only if it has no hard dependency $deletable = true; foreach ($service['dependencies'] as $dep) { if ($dep['soft'] == 0) { $deletable = false; break; } } $caption->setAttribute('data-menu', array('serviceid' => $service['serviceid'], 'name' => $service['name'], 'deletable' => $deletable)); $serviceNode = array('id' => $service['serviceid'], 'caption' => $caption, 'description' => $service['trigger'] ? $service['trigger']['description'] : '-', 'parentid' => $parentService ? $parentService['serviceid'] : 0, 'algorithm' => serviceAlgorythm($service['algorithm'])); } if (!$dependency || !$dependency['soft']) { $tree[$serviceNode['id']] = $serviceNode; foreach ($service['dependencies'] as $dependency) { $childService = $services[$dependency['servicedownid']]; createServiceConfigurationTree($services, $tree, $service, $childService, $dependency); } } else { $serviceNode['caption'] = new CSpan($serviceNode['caption'], 'service-caption-soft'); $tree[$serviceNode['id'] . '.' . $dependency['linkid']] = $serviceNode; } }
public function toString($destroy = true) { if (count($this->tabs) == 1) { $this->setAttribute('class', 'min-width ui-tabs ui-widget ui-widget-content ui-corner-all widget'); $header = reset($this->headers); $header = new CDiv($header); $header->addClass('ui-corner-all ui-widget-header header'); $header->setAttribute('id', 'tab_' . key($this->headers)); $this->addItem($header); $tab = reset($this->tabs); $tab->addClass('ui-tabs ui-tabs-panel ui-widget ui-widget-content ui-corner-all widget'); $this->addItem($tab); } else { $headersList = new CList(); foreach ($this->headers as $id => $header) { $tabLink = new CLink($header, '#' . $id, null, null, false); $tabLink->setAttribute('id', 'tab_' . $id); $headersList->addItem($tabLink); } $this->addItem($headersList); $this->addItem($this->tabs); if ($this->selectedTab === null) { $activeTab = get_cookie('tab', 0); $createEvent = ''; } else { $activeTab = $this->selectedTab; $createEvent = 'create: function() { jQuery.cookie("tab", ' . $this->selectedTab . '); },'; } $disabledTabs = $this->disabledTabs === null ? '' : 'disabled: ' . CJs::encodeJson($this->disabledTabs) . ','; zbx_add_post_js(' jQuery("#' . $this->id . '").tabs({ ' . $createEvent . ' ' . $disabledTabs . ' active: ' . $activeTab . ', activate: function(event, ui) { jQuery.cookie("tab", ui.newTab.index().toString()); } }) .css("visibility", "visible");'); } return parent::toString($destroy); }
function bodyToString($destroy = true) { $left = new CDiv(null, 'left'); $left->addItem(new CDiv(null, 'setup_logo')); $left->addItem(new CDiv(ZABBIX_VERSION, 'setup_version')); $left->addItem(new CDiv($this->getList(), 'left_menu')); $link1 = new CLink('www.zabbix.com', 'http://www.zabbix.com/', null, null, true); $link1->setAttribute('target', '_blank'); $link2 = new CLink('GPL v2', 'http://www.zabbix.com/license.php', null, null, true); $link2->setAttribute('target', '_blank'); $licence = new CDiv(array($link1, BR(), ' Licensed under ', $link2), 'setup_wizard_licence'); $left->addItem($licence); $right = new CDiv(null, 'right'); if ($this->getStep() == 0) { $right->addItem(new CDiv(null, 'blank_title')); $right->addItem(new CDiv($this->getState(), 'blank_under_title')); $container = new CDiv(array($left, $right), 'setup_wizard setup_wizard_welcome'); } else { $right->addItem(new CDiv($this->stage[$this->getStep()]['title'], 'setup_title')); $right->addItem(new CDiv($this->getState(), 'under_title')); $container = new CDiv(array($left, $right), 'setup_wizard'); } if (isset($this->stage[$this->getStep() + 1])) { $next = new CSubmit('next[' . $this->getStep() . ']', _('Next') . ' >>'); } else { $next = new CSubmit('finish', _('Finish')); } if (isset($this->HIDE_CANCEL_BUTTON) && $this->HIDE_CANCEL_BUTTON) { $cancel = null; } else { $cancel = new CDiv(new CSubmit('cancel', _('Cancel')), 'footer_left'); } if ($this->DISABLE_NEXT_BUTTON) { $next->setEnabled(false); } $footer = new CDiv(array($cancel, new CDiv(array($this->getStep() != 0 ? new CSubmit('back[' . $this->getStep() . ']', '<< ' . _('Previous')) : null, $next), 'footer_right')), 'footer'); $container->addItem($footer); return parent::bodyToString($destroy) . $container->ToString(); }
$sysmapList->addRow(_('Height'), new CNumericBox('height', $this->data['sysmap']['height'], 5)); // append background image to form list $imageComboBox = new CComboBox('backgroundid', $this->data['sysmap']['backgroundid']); $imageComboBox->addItem(0, _('No image')); foreach ($this->data['images'] as $image) { $imageComboBox->addItem($image['imageid'], $image['name']); } $sysmapList->addRow(_('Background image'), $imageComboBox); // append iconmapping to form list $iconMappingComboBox = new CComboBox('iconmapid', $this->data['sysmap']['iconmapid']); $iconMappingComboBox->addItem(0, _('<manual>')); foreach ($this->data['iconMaps'] as $iconMap) { $iconMappingComboBox->addItem($iconMap['iconmapid'], $iconMap['name']); } $iconMappingsLink = new CLink(_('show icon mappings'), 'adm.iconmapping.php'); $iconMappingsLink->setAttribute('target', '_blank'); $sysmapList->addRow(_('Automatic icon mapping'), array($iconMappingComboBox, SPACE, $iconMappingsLink)); // append multiple checkboxes to form list $sysmapList->addRow(_('Icon highlight'), new CCheckBox('highlight', $this->data['sysmap']['highlight'], null, 1)); $sysmapList->addRow(_('Mark elements on trigger status change'), new CCheckBox('markelements', $this->data['sysmap']['markelements'], null, 1)); $sysmapList->addRow(_('Expand single problem'), new CCheckBox('expandproblem', $this->data['sysmap']['expandproblem'], null, 1)); $sysmapList->addRow(_('Advanced labels'), new CCheckBox('label_format', $this->data['sysmap']['label_format'], null, 1)); // append hostgroup to form list $labelTypeHostgroupComboBox = new CComboBox('label_type_hostgroup', $this->data['sysmap']['label_type_hostgroup'], null, $this->data['labelTypesLimited']); $customLabelHostgroupTextArea = new CTextArea('label_string_hostgroup', $this->data['sysmap']['label_string_hostgroup']); if ($this->data['sysmap']['label_type_hostgroup'] != MAP_LABEL_TYPE_CUSTOM) { $customLabelHostgroupTextArea->addClass('hidden'); } $sysmapList->addRow(_('Host group label type'), array($labelTypeHostgroupComboBox, BR(), $customLabelHostgroupTextArea)); // append host to form list $labelTypeHostComboBox = new CComboBox('label_type_host', $this->data['sysmap']['label_type_host'], null, $this->data['labelTypes']);
function insert_mass_update_item_form() { global $USER_DETAILS; $frmItem = new CFormTable(S_ITEM, null, 'post'); $frmItem->setHelp('web.items.item.php'); $frmItem->setTitle(S_MASS_UPDATE); $frmItem->addVar('massupdate', 1); $frmItem->addVar('group_itemid', get_request('group_itemid', array())); $frmItem->addVar('config', get_request('config', 0)); $delay = get_request('delay', 30); $history = get_request('history', 90); $status = get_request('status', 0); $type = get_request('type', 0); $snmp_community = get_request('snmp_community', 'public'); $snmp_port = get_request('snmp_port', 161); $value_type = get_request('value_type', ITEM_VALUE_TYPE_UINT64); $data_type = get_request('data_type', ITEM_DATA_TYPE_DECIMAL); $trapper_hosts = get_request('trapper_hosts', ''); $units = get_request('units', ''); $authtype = get_request('authtype', ''); $username = get_request('username', ''); $password = get_request('password', ''); $publickey = get_request('publickey', ''); $privatekey = get_request('privatekey', ''); $valuemapid = get_request('valuemapid', 0); $delta = get_request('delta', 0); $trends = get_request('trends', 365); $applications = get_request('applications', array()); $delay_flex = get_request('delay_flex', array()); $snmpv3_securityname = get_request('snmpv3_securityname', ''); $snmpv3_securitylevel = get_request('snmpv3_securitylevel', 0); $snmpv3_authpassphrase = get_request('snmpv3_authpassphrase', ''); $snmpv3_privpassphrase = get_request('snmpv3_privpassphrase', ''); $formula = get_request('formula', '1'); $logtimefmt = get_request('logtimefmt', ''); $delay_flex_el = array(); $i = 0; foreach ($delay_flex as $val) { if (!isset($val['delay']) && !isset($val['period'])) { continue; } array_push($delay_flex_el, array(new CCheckBox('rem_delay_flex[]', 'no', null, $i), $val['delay'], SPACE . S_SEC_AT . SPACE, $val['period']), BR()); $frmItem->addVar("delay_flex[" . $i . "][delay]", $val['delay']); $frmItem->addVar("delay_flex[" . $i . "][period]", $val['period']); $i++; if ($i >= 7) { break; } /* limit count of intervals * 7 intervals by 30 symbols = 210 characters * db storage field is 256 */ } if (count($delay_flex_el) == 0) { array_push($delay_flex_el, S_NO_FLEXIBLE_INTERVALS); } else { array_push($delay_flex_el, new CButton('del_delay_flex', S_DELETE_SELECTED)); } if (count($applications) == 0) { array_push($applications, 0); } $itemTypes = item_type2str(); // http items only for internal processes unset($itemTypes[ITEM_TYPE_HTTPTEST]); $cmbType = new CComboBox('type', $type); $cmbType->addItems($itemTypes); $frmItem->addRow(array(new CVisibilityBox('type_visible', get_request('type_visible'), 'type', S_ORIGINAL), S_TYPE), $cmbType); $frmItem->addRow(array(new CVisibilityBox('community_visible', get_request('community_visible'), 'snmp_community', S_ORIGINAL), S_SNMP_COMMUNITY), new CTextBox('snmp_community', $snmp_community, 16)); $frmItem->addRow(array(new CVisibilityBox('securityname_visible', get_request('securityname_visible'), 'snmpv3_securityname', S_ORIGINAL), S_SNMPV3_SECURITY_NAME), new CTextBox('snmpv3_securityname', $snmpv3_securityname, 64)); $cmbSecLevel = new CComboBox('snmpv3_securitylevel', $snmpv3_securitylevel); $cmbSecLevel->addItem(ITEM_SNMPV3_SECURITYLEVEL_NOAUTHNOPRIV, "noAuthNoPriv"); $cmbSecLevel->addItem(ITEM_SNMPV3_SECURITYLEVEL_AUTHNOPRIV, "authNoPriv"); $cmbSecLevel->addItem(ITEM_SNMPV3_SECURITYLEVEL_AUTHPRIV, "authPriv"); $frmItem->addRow(array(new CVisibilityBox('securitylevel_visible', get_request('securitylevel_visible'), 'snmpv3_securitylevel', S_ORIGINAL), S_SNMPV3_SECURITY_LEVEL), $cmbSecLevel); $frmItem->addRow(array(new CVisibilityBox('authpassphrase_visible', get_request('authpassphrase_visible'), 'snmpv3_authpassphrase', S_ORIGINAL), S_SNMPV3_AUTH_PASSPHRASE), new CTextBox('snmpv3_authpassphrase', $snmpv3_authpassphrase, 64)); $frmItem->addRow(array(new CVisibilityBox('privpassphras_visible', get_request('privpassphras_visible'), 'snmpv3_privpassphrase', S_ORIGINAL), S_SNMPV3_PRIV_PASSPHRASE), new CTextBox('snmpv3_privpassphrase', $snmpv3_privpassphrase, 64)); $frmItem->addRow(array(new CVisibilityBox('port_visible', get_request('port_visible'), 'snmp_port', S_ORIGINAL), S_SNMP_PORT), new CNumericBox('snmp_port', $snmp_port, 5)); $cmbValType = new CComboBox('value_type', $value_type); $cmbValType->addItem(ITEM_VALUE_TYPE_UINT64, S_NUMERIC_UNSIGNED); $cmbValType->addItem(ITEM_VALUE_TYPE_FLOAT, S_NUMERIC_FLOAT); $cmbValType->addItem(ITEM_VALUE_TYPE_STR, S_CHARACTER); $cmbValType->addItem(ITEM_VALUE_TYPE_LOG, S_LOG); $cmbValType->addItem(ITEM_VALUE_TYPE_TEXT, S_TEXT); $frmItem->addRow(array(new CVisibilityBox('value_type_visible', get_request('value_type_visible'), 'value_type', S_ORIGINAL), S_TYPE_OF_INFORMATION), $cmbValType); $cmbDataType = new CComboBox('data_type', $data_type); $cmbDataType->addItem(ITEM_DATA_TYPE_DECIMAL, item_data_type2str(ITEM_DATA_TYPE_DECIMAL)); $cmbDataType->addItem(ITEM_DATA_TYPE_OCTAL, item_data_type2str(ITEM_DATA_TYPE_OCTAL)); $cmbDataType->addItem(ITEM_DATA_TYPE_HEXADECIMAL, item_data_type2str(ITEM_DATA_TYPE_HEXADECIMAL)); $frmItem->addRow(array(new CVisibilityBox('data_type_visible', get_request('data_type_visible'), 'data_type', S_ORIGINAL), S_DATA_TYPE), $cmbDataType); $frmItem->addRow(array(new CVisibilityBox('units_visible', get_request('units_visible'), 'units', S_ORIGINAL), S_UNITS), new CTextBox('units', $units, 40)); $cmbAuthType = new CComboBox('authtype', $authtype); $cmbAuthType->addItem(ITEM_AUTHTYPE_PASSWORD, S_PASSWORD); $cmbAuthType->addItem(ITEM_AUTHTYPE_PUBLICKEY, S_PUBLIC_KEY); $frmItem->addRow(array(new CVisibilityBox('authtype_visible', get_request('authtype_visible'), 'authtype', S_ORIGINAL), S_AUTHENTICATION_METHOD), $cmbAuthType); $frmItem->addRow(array(new CVisibilityBox('username_visible', get_request('username_visible'), 'username', S_ORIGINAL), S_USER_NAME), new CTextBox('username', $username, 40)); $frmItem->addRow(array(new CVisibilityBox('publickey_visible', get_request('publickey_visible'), 'publickey', S_ORIGINAL), S_PUBLIC_KEY_FILE), new CTextBox('publickey', $publickey, 40)); $frmItem->addRow(array(new CVisibilityBox('privatekey_visible', get_request('privatekey_visible'), 'privatekey', S_ORIGINAL), S_PRIVATE_KEY_FILE), new CTextBox('privatekey', $privatekey, 40)); $frmItem->addRow(array(new CVisibilityBox('password_visible', get_request('password_visible'), 'password', S_ORIGINAL), S_PASSWORD), new CTextBox('password', $password, 40)); $frmItem->addRow(array(new CVisibilityBox('formula_visible', get_request('formula_visible'), 'formula', S_ORIGINAL), S_CUSTOM_MULTIPLIER . ' (0 - ' . S_DISABLED . ')'), new CTextBox('formula', $formula, 40)); $frmItem->addRow(array(new CVisibilityBox('delay_visible', get_request('delay_visible'), 'delay', S_ORIGINAL), S_UPDATE_INTERVAL_IN_SEC), new CNumericBox('delay', $delay, 5)); $delay_flex_el = new CSpan($delay_flex_el); $delay_flex_el->setAttribute('id', 'delay_flex_list'); $frmItem->addRow(array(new CVisibilityBox('delay_flex_visible', get_request('delay_flex_visible'), array('delay_flex_list', 'new_delay_flex_el'), S_ORIGINAL), S_FLEXIBLE_INTERVALS), $delay_flex_el); $new_delay_flex_el = new CSpan(array(S_DELAY, SPACE, new CNumericBox("new_delay_flex[delay]", "50", 5), S_PERIOD, SPACE, new CTextBox("new_delay_flex[period]", "1-7,00:00-23:59", 27), BR(), new CButton("add_delay_flex", S_ADD))); $new_delay_flex_el->setAttribute('id', 'new_delay_flex_el'); $frmItem->addRow(S_NEW_FLEXIBLE_INTERVAL, $new_delay_flex_el, 'new'); $frmItem->addRow(array(new CVisibilityBox('history_visible', get_request('history_visible'), 'history', S_ORIGINAL), S_KEEP_HISTORY_IN_DAYS), new CNumericBox('history', $history, 8)); $frmItem->addRow(array(new CVisibilityBox('trends_visible', get_request('trends_visible'), 'trends', S_ORIGINAL), S_KEEP_TRENDS_IN_DAYS), new CNumericBox('trends', $trends, 8)); $cmbStatus = new CComboBox('status', $status); foreach (array(ITEM_STATUS_ACTIVE, ITEM_STATUS_DISABLED, ITEM_STATUS_NOTSUPPORTED) as $st) { $cmbStatus->addItem($st, item_status2str($st)); } $frmItem->addRow(array(new CVisibilityBox('status_visible', get_request('status_visible'), 'status', S_ORIGINAL), S_STATUS), $cmbStatus); $frmItem->addRow(array(new CVisibilityBox('logtimefmt_visible', get_request('logtimefmt_visible'), 'logtimefmt', S_ORIGINAL), S_LOG_TIME_FORMAT), new CTextBox("logtimefmt", $logtimefmt, 16)); $cmbDelta = new CComboBox('delta', $delta); $cmbDelta->addItem(0, S_AS_IS); $cmbDelta->addItem(1, S_DELTA_SPEED_PER_SECOND); $cmbDelta->addItem(2, S_DELTA_SIMPLE_CHANGE); $frmItem->addRow(array(new CVisibilityBox('delta_visible', get_request('delta_visible'), 'delta', S_ORIGINAL), S_STORE_VALUE), $cmbDelta); $cmbMap = new CComboBox('valuemapid', $valuemapid); $cmbMap->addItem(0, S_AS_IS); $db_valuemaps = DBselect('SELECT * FROM valuemaps WHERE ' . DBin_node('valuemapid')); while ($db_valuemap = DBfetch($db_valuemaps)) { $cmbMap->addItem($db_valuemap["valuemapid"], get_node_name_by_elid($db_valuemap["valuemapid"], null, ': ') . $db_valuemap["name"]); } $link = new CLink(S_SHOW_VALUE_MAPPINGS, 'config.php?config=6'); $link->setAttribute('target', '_blank'); $frmItem->addRow(array(new CVisibilityBox('valuemapid_visible', get_request('valuemapid_visible'), 'valuemapid', S_ORIGINAL), S_SHOW_VALUE), array($cmbMap, SPACE, $link)); $frmItem->addRow(array(new CVisibilityBox('trapper_hosts_visible', get_request('trapper_hosts_visible'), 'trapper_hosts', S_ORIGINAL), S_ALLOWED_HOSTS), new CTextBox('trapper_hosts', $trapper_hosts, 40)); $cmbApps = new CListBox('applications[]', $applications, 6); $cmbApps->addItem(0, '-' . S_NONE . '-'); if (isset($_REQUEST['hostid'])) { $sql = 'SELECT applicationid,name ' . ' FROM applications ' . ' WHERE hostid=' . $_REQUEST['hostid'] . ' ORDER BY name'; $db_applications = DBselect($sql); while ($db_app = DBfetch($db_applications)) { $cmbApps->addItem($db_app["applicationid"], $db_app["name"]); } } $frmItem->addRow(array(new CVisibilityBox('applications_visible', get_request('applications_visible'), 'applications[]', S_ORIGINAL), S_APPLICATIONS), $cmbApps); $frmItem->addItemToBottomRow(array(new CButton("update", S_UPDATE), SPACE, new CButtonCancel(url_param('groupid') . url_param("hostid") . url_param("config")))); return $frmItem; }
return null; } if (!defined('ZBX_PAGE_NO_MENU')) { $help = new CLink(_('Help'), 'http://www.zabbix.com/documentation/', 'small_font', null, 'nosid'); $help->setTarget('_blank'); $support = new CLink(_('Get support'), 'http://www.zabbix.com/support.php', 'small_font', null, 'nosid'); $support->setTarget('_blank'); $printview = new CLink(_('Print'), '', 'small_font print-link', null, 'nosid'); $page_header_r_col = array($help, '|', $support, '|', $printview, '|'); if (!CWebUser::isGuest()) { array_push($page_header_r_col, new CLink(_('Profile'), 'profile.php', 'small_font', null, 'nosid'), '|'); } if (isset(CWebUser::$data['debug_mode']) && CWebUser::$data['debug_mode'] == GROUP_DEBUG_MODE_ENABLED) { $debug = new CLink(_('Debug'), '#debug', 'small_font', null, 'nosid'); $d_script = " if (!isset('state', this)) { this.state = 'none'; }" . " if (this.state == 'none') { this.state = 'block'; }" . " else { this.state = 'none'; }" . " showHideByName('zbx_debug_info', this.state);"; $debug->setAttribute('onclick', 'javascript: ' . $d_script); array_push($page_header_r_col, $debug, '|'); } if (CWebUser::isGuest()) { $page_header_r_col[] = array(new CLink(_('Login'), 'index.php?reconnect=1', 'small_font', null, null)); } else { // it is not possible to logout from HTTP authentication $chck = $page['file'] == 'authentication.php' && isset($_REQUEST['save'], $_REQUEST['config']); if ($chck && $_REQUEST['config'] == ZBX_AUTH_HTTP || !$chck && isset($config) && $config['authentication_type'] == ZBX_AUTH_HTTP) { $logout = new CLink(_('Logout'), '', 'small_font', null, 'nosid'); $logout->setHint(_s('It is not possible to logout from HTTP authentication.'), null, null, false); } else { $logout = new CLink(_('Logout'), 'index.php?reconnect=1', 'small_font', null, null); } array_push($page_header_r_col, $logout); }
$deltaComboBox->addItems($deltaOptions); } $itemFormList->addRow(_('Store value'), $deltaComboBox, false, 'row_delta'); // append valuemap to form list if ($this->data['limited']) { $itemForm->addVar('valuemapid', $this->data['valuemapid']); $valuemapComboBox = new CTextBox('valuemap_name', !empty($this->data['valuemaps']) ? $this->data['valuemaps'] : _('As is'), ZBX_TEXTBOX_SMALL_SIZE, 'yes'); } else { $valuemapComboBox = new CComboBox('valuemapid', $this->data['valuemapid']); $valuemapComboBox->addItem(0, _('As is')); foreach ($this->data['valuemaps'] as $valuemap) { $valuemapComboBox->addItem($valuemap['valuemapid'], get_node_name_by_elid($valuemap['valuemapid'], null, NAME_DELIMITER) . CHtml::encode($valuemap['name'])); } } $link = new CLink(_('show value mappings'), 'adm.valuemapping.php'); $link->setAttribute('target', '_blank'); $itemFormList->addRow(_('Show value'), array($valuemapComboBox, SPACE, $link), null, 'row_valuemap'); $itemFormList->addRow(_('Allowed hosts'), new CTextBox('trapper_hosts', $this->data['trapper_hosts'], ZBX_TEXTBOX_STANDARD_SIZE), false, 'row_trapper_hosts'); // append applications to form list $itemFormList->addRow(_('New application'), new CTextBox('new_application', $this->data['new_application'], ZBX_TEXTBOX_STANDARD_SIZE), false, null, 'new'); $applicationComboBox = new CListBox('applications[]', $this->data['applications'], 6); $applicationComboBox->addItem(0, '-' . _('None') . '-'); foreach ($this->data['db_applications'] as $application) { $applicationComboBox->addItem($application['applicationid'], CHtml::encode($application['name'])); } $itemFormList->addRow(_('Applications'), $applicationComboBox); // append populate host to form list if (empty($this->data['parent_discoveryid'])) { $itemCloned = isset($_REQUEST['clone']); $hostInventoryFieldComboBox = new CComboBox('inventory_link'); $hostInventoryFieldComboBox->addItem(0, '-' . _('None') . '-', $this->data['inventory_link'] == '0' ? 'yes' : null);
$input = new CTextArea('host_inventory[' . $inventoryInfo['db_field'] . ']', $host_inventory[$inventoryInfo['db_field']]); $input->addStyle('width: 64em;'); } else { $fieldLength = $hostInventoryTable['fields'][$inventoryInfo['db_field']]['length']; $input = new CTextBox('host_inventory[' . $inventoryInfo['db_field'] . ']', $host_inventory[$inventoryInfo['db_field']]); $input->setAttribute('maxlength', $fieldLength); $input->addStyle('width: ' . ($fieldLength > 64 ? 64 : $fieldLength) . 'em;'); } if ($inventory_mode == HOST_INVENTORY_DISABLED) { $input->setAttribute('disabled', 'disabled'); } // link to populating item at the right side (if any) if (isset($hostItemsToInventory[$inventoryNo])) { $itemName = itemName($hostItemsToInventory[$inventoryNo]); $populatingLink = new CLink($itemName, 'items.php?form=update&itemid=' . $hostItemsToInventory[$inventoryNo]['itemid']); $populatingLink->setAttribute('title', _s('This field is automatically populated by item "%s".', $itemName)); $populatingItemCell = array(' ← ', $populatingLink); $input->addClass('linked_to_item'); // this will be used for disabling fields via jquery if ($inventory_mode == HOST_INVENTORY_AUTOMATIC) { $input->setAttribute('disabled', 'disabled'); } } else { $populatingItemCell = ''; } $input->addStyle('float: left;'); $populatingItem = new CSpan($populatingItemCell, 'populating_item'); if ($inventory_mode != HOST_INVENTORY_AUTOMATIC) { // those links are visible only in automatic mode $populatingItem->addStyle('display: none'); }
function insert_mass_update_item_form($elements_array_name) { global $USER_DETAILS; $frmItem = new CFormTable(S_ITEM, null, 'post'); $frmItem->SetHelp('web.items.item.php'); $frmItem->SetTitle(S_MASS_UPDATE); $frmItem->addVar('form_mass_update', 1); $frmItem->addVar('group_itemid', get_request('group_itemid', array())); $frmItem->addVar('config', get_request('config', 0)); if ($_REQUEST['groupid'] > 0) { $frmItem->addVar('groupid', $_REQUEST['groupid']); } $frmItem->addVar('hostid', $_REQUEST['hostid']); $description = get_request('description', ''); $key = get_request('key', ''); $host = get_request('host', null); $delay = get_request('delay', 30); $history = get_request('history', 90); $status = get_request('status', 0); $type = get_request('type', 0); $snmp_community = get_request('snmp_community', 'public'); $snmp_oid = get_request('snmp_oid', 'interfaces.ifTable.ifEntry.ifInOctets.1'); $snmp_port = get_request('snmp_port', 161); $value_type = get_request('value_type', ITEM_VALUE_TYPE_UINT64); $data_type = get_request('data_type', ITEM_DATA_TYPE_DECIMAL); $trapper_hosts = get_request('trapper_hosts', ''); $units = get_request('units', ''); $valuemapid = get_request('valuemapid', 0); $delta = get_request('delta', 0); $trends = get_request('trends', 365); $applications = get_request('applications', array()); $delay_flex = get_request('delay_flex', array()); $snmpv3_securityname = get_request('snmpv3_securityname', ''); $snmpv3_securitylevel = get_request('snmpv3_securitylevel', 0); $snmpv3_authpassphrase = get_request('snmpv3_authpassphrase', ''); $snmpv3_privpassphrase = get_request('snmpv3_privpassphrase', ''); $formula = get_request('formula', '1'); $logtimefmt = get_request('logtimefmt', ''); $add_groupid = get_request('add_groupid', get_request('groupid', 0)); $delay_flex_el = array(); $i = 0; foreach ($delay_flex as $val) { if (!isset($val['delay']) && !isset($val['period'])) { continue; } array_push($delay_flex_el, array(new CCheckBox('rem_delay_flex[]', 'no', null, $i), $val['delay'], ' sec at ', $val['period']), BR()); $frmItem->addVar("delay_flex[" . $i . "][delay]", $val['delay']); $frmItem->addVar("delay_flex[" . $i . "][period]", $val['period']); $i++; if ($i >= 7) { break; } /* limit count of intervals * 7 intervals by 30 symbols = 210 characters * db storage field is 256 */ } if (count($delay_flex_el) == 0) { array_push($delay_flex_el, "No flexible intervals"); } else { array_push($delay_flex_el, new CButton('del_delay_flex', S_DELETE_SELECTED)); } if (count($applications) == 0) { array_push($applications, 0); } $cmbType = new CComboBox('type', $type); foreach (array(ITEM_TYPE_ZABBIX, ITEM_TYPE_ZABBIX_ACTIVE, ITEM_TYPE_SIMPLE, ITEM_TYPE_SNMPV1, ITEM_TYPE_SNMPV2C, ITEM_TYPE_SNMPV3, ITEM_TYPE_TRAPPER, ITEM_TYPE_INTERNAL, ITEM_TYPE_AGGREGATE, ITEM_TYPE_AGGREGATE, ITEM_TYPE_EXTERNAL, ITEM_TYPE_DB_MONITOR) as $it) { $cmbType->addItem($it, item_type2str($it)); } $frmItem->addRow(array(new CVisibilityBox('type_visible', get_request('type_visible'), 'type', S_ORIGINAL), S_TYPE), $cmbType); $frmItem->addRow(array(new CVisibilityBox('community_visible', get_request('community_visible'), 'snmp_community', S_ORIGINAL), S_SNMP_COMMUNITY), new CTextBox('snmp_community', $snmp_community, 16)); $frmItem->addRow(array(new CVisibilityBox('securityname_visible', get_request('securityname_visible'), 'snmpv3_securityname', S_ORIGINAL), S_SNMPV3_SECURITY_NAME), new CTextBox('snmpv3_securityname', $snmpv3_securityname, 64)); $cmbSecLevel = new CComboBox('snmpv3_securitylevel', $snmpv3_securitylevel); $cmbSecLevel->addItem(ITEM_SNMPV3_SECURITYLEVEL_NOAUTHNOPRIV, "NoAuthPriv"); $cmbSecLevel->addItem(ITEM_SNMPV3_SECURITYLEVEL_AUTHNOPRIV, "AuthNoPriv"); $cmbSecLevel->addItem(ITEM_SNMPV3_SECURITYLEVEL_AUTHPRIV, "AuthPriv"); $frmItem->addRow(array(new CVisibilityBox('securitylevel_visible', get_request('securitylevel_visible'), 'snmpv3_securitylevel', S_ORIGINAL), S_SNMPV3_SECURITY_LEVEL), $cmbSecLevel); $frmItem->addRow(array(new CVisibilityBox('authpassphrase_visible', get_request('authpassphrase_visible'), 'snmpv3_authpassphrase', S_ORIGINAL), S_SNMPV3_AUTH_PASSPHRASE), new CTextBox('snmpv3_authpassphrase', $snmpv3_authpassphrase, 64)); $frmItem->addRow(array(new CVisibilityBox('privpassphras_visible', get_request('privpassphras_visible'), 'snmpv3_privpassphrase', S_ORIGINAL), S_SNMPV3_PRIV_PASSPHRASE), new CTextBox('snmpv3_privpassphrase', $snmpv3_privpassphrase, 64)); $frmItem->addRow(array(new CVisibilityBox('port_visible', get_request('port_visible'), 'snmp_port', S_ORIGINAL), S_SNMP_PORT), new CNumericBox('snmp_port', $snmp_port, 5)); $cmbValType = new CComboBox('value_type', $value_type); $cmbValType->AddItem(ITEM_VALUE_TYPE_UINT64, S_NUMERIC_UNSIGNED); $cmbValType->AddItem(ITEM_VALUE_TYPE_FLOAT, S_NUMERIC_FLOAT); $cmbValType->AddItem(ITEM_VALUE_TYPE_STR, S_CHARACTER); $cmbValType->AddItem(ITEM_VALUE_TYPE_LOG, S_LOG); $cmbValType->AddItem(ITEM_VALUE_TYPE_TEXT, S_TEXT); $frmItem->AddRow(array(new CVisibilityBox('value_type_visible', get_request('value_type_visible'), 'value_type', S_ORIGINAL), S_TYPE_OF_INFORMATION), $cmbValType); $cmbDataType = new CComboBox('data_type', $data_type); $cmbDataType->addItem(ITEM_DATA_TYPE_DECIMAL, item_data_type2str(ITEM_DATA_TYPE_DECIMAL)); $cmbDataType->addItem(ITEM_DATA_TYPE_OCTAL, item_data_type2str(ITEM_DATA_TYPE_OCTAL)); $cmbDataType->addItem(ITEM_DATA_TYPE_HEXADECIMAL, item_data_type2str(ITEM_DATA_TYPE_HEXADECIMAL)); $frmItem->addRow(array(new CVisibilityBox('data_type_visible', get_request('data_type_visible'), 'data_type', S_ORIGINAL), S_DATA_TYPE), $cmbDataType); $frmItem->addRow(array(new CVisibilityBox('units_visible', get_request('units_visible'), 'units', S_ORIGINAL), S_UNITS), new CTextBox('units', $units, 40)); $frmItem->addRow(array(new CVisibilityBox('formula_visible', get_request('formula_visible'), 'formula', S_ORIGINAL), S_CUSTOM_MULTIPLIER . ' (0 - ' . S_DISABLED . ')'), new CTextBox('formula', $formula, 40)); $frmItem->addRow(array(new CVisibilityBox('delay_visible', get_request('delay_visible'), 'delay', S_ORIGINAL), S_UPDATE_INTERVAL_IN_SEC), new CNumericBox('delay', $delay, 5)); $delay_flex_el = new CSpan($delay_flex_el); $delay_flex_el->setAttribute('id', 'delay_flex_list'); $frmItem->addRow(array(new CVisibilityBox('delay_flex_visible', get_request('delay_flex_visible'), array('delay_flex_list', 'new_delay_flex_el'), S_ORIGINAL), S_FLEXIBLE_INTERVALS), $delay_flex_el); $new_delay_flex_el = new CSpan(array(S_DELAY, SPACE, new CNumericBox("new_delay_flex[delay]", "50", 5), S_PERIOD, SPACE, new CTextBox("new_delay_flex[period]", "1-7,00:00-23:59", 27), BR(), new CButton("add_delay_flex", S_ADD))); $new_delay_flex_el->setAttribute('id', 'new_delay_flex_el'); $frmItem->addRow(S_NEW_FLEXIBLE_INTERVAL, $new_delay_flex_el, 'new'); $frmItem->addRow(array(new CVisibilityBox('history_visible', get_request('history_visible'), 'history', S_ORIGINAL), S_KEEP_HISTORY_IN_DAYS), new CNumericBox('history', $history, 8)); $frmItem->addRow(array(new CVisibilityBox('trends_visible', get_request('trends_visible'), 'trends', S_ORIGINAL), S_KEEP_TRENDS_IN_DAYS), new CNumericBox('trends', $trends, 8)); $cmbStatus = new CComboBox('status', $status); foreach (array(ITEM_STATUS_ACTIVE, ITEM_STATUS_DISABLED, ITEM_STATUS_NOTSUPPORTED) as $st) { $cmbStatus->addItem($st, item_status2str($st)); } $frmItem->addRow(array(new CVisibilityBox('status_visible', get_request('status_visible'), 'status', S_ORIGINAL), S_STATUS), $cmbStatus); $frmItem->addRow(array(new CVisibilityBox('logtimefmt_visible', get_request('logtimefmt_visible'), 'logtimefmt', S_ORIGINAL), S_LOG_TIME_FORMAT), new CTextBox("logtimefmt", $logtimefmt, 16)); $cmbDelta = new CComboBox('delta', $delta); $cmbDelta->addItem(0, S_AS_IS); $cmbDelta->addItem(1, S_DELTA_SPEED_PER_SECOND); $cmbDelta->addItem(2, S_DELTA_SIMPLE_CHANGE); $frmItem->addRow(array(new CVisibilityBox('delta_visible', get_request('delta_visible'), 'delta', S_ORIGINAL), S_STORE_VALUE), $cmbDelta); $cmbMap = new CComboBox('valuemapid', $valuemapid); $cmbMap->addItem(0, S_AS_IS); $db_valuemaps = DBselect('SELECT * FROM valuemaps WHERE ' . DBin_node('valuemapid')); while ($db_valuemap = DBfetch($db_valuemaps)) { $cmbMap->addItem($db_valuemap["valuemapid"], get_node_name_by_elid($db_valuemap["valuemapid"]) . $db_valuemap["name"]); } $link = new CLink("throw map", "config.php?config=6", "action"); $link->setAttribute("target", "_blank"); $frmItem->addRow(array(new CVisibilityBox('valuemapid_visible', get_request('valuemapid_visible'), 'valuemapid', S_ORIGINAL), S_SHOW_VALUE, SPACE, $link), $cmbMap); $frmItem->addRow(array(new CVisibilityBox('trapper_hosts_visible', get_request('trapper_hosts_visible'), 'trapper_hosts', S_ORIGINAL), S_ALLOWED_HOSTS), new CTextBox('trapper_hosts', $trapper_hosts, 40)); $cmbApps = new CListBox('applications[]', $applications, 6); $cmbApps->addItem(0, "-" . S_NONE . "-"); $db_applications = DBselect("SELECT DISTINCT applicationid,name FROM applications" . " WHERE hostid=" . $_REQUEST['hostid'] . " order by name"); while ($db_app = DBfetch($db_applications)) { $cmbApps->addItem($db_app["applicationid"], $db_app["name"]); } $frmItem->addRow(array(new CVisibilityBox('applications_visible', get_request('applications_visible'), 'applications[]', S_ORIGINAL), S_APPLICATIONS), $cmbApps); $frmItem->addItemToBottomRow(array(new CButton("update", S_UPDATE), SPACE, new CButtonCancel(url_param('groupid') . url_param("hostid") . url_param("config")))); $frmItem->show(); }
$dep_res = DBselect($sql_dep); while ($dep_row = DBfetch($dep_res)) { $dep_table->addRow(SPACE . '-' . SPACE . expand_trigger_description($dep_row['triggerid_down'])); $dependency = true; } if ($dependency) { $img = new Cimg('images/general/up_icon.png', 'DEP_UP'); $img->setAttribute('style', 'vertical-align: middle; border: 0px;'); $img->setHint($dep_table); $description = array($img, SPACE, $description); } unset($img, $dep_table, $dependency); //------------------------ if (time(NULL) - $row['lastchange'] < TRIGGER_BLINK_PERIOD) { $tr_status = new CLink(trigger_value2str($row['value'])); $tr_status->setAttribute('name', 'blink'); } else { $tr_status = trigger_value2str($row['value']); } $value = new CSpan($tr_status, get_trigger_value_style($row['value'])); if ($_REQUEST['show_actions']) { $actions = array(new CLink(S_CHANGE, 'triggers.php?form=update&triggerid=' . $row['triggerid'] . url_param('hostid'), 'action')); } else { $actions = NULL; } // JS menu $host = null; if ($_REQUEST['hostid'] < 1) { $menus = ''; $host_nodeid = id2nodeid($row['hostid']); foreach ($scripts_by_hosts[$row['hostid']] as $id => $script) {
$goodslaTextBox->setAttribute('disabled', 'disabled'); } $servicesFormList->addRow(_('Calculate SLA, acceptable SLA (in %)'), array($showslaCheckbox, $goodslaTextBox)); // append trigger to form list $servicesFormList->addRow(_('Trigger'), array(new CTextBox('trigger', $this->data['trigger'], ZBX_TEXTBOX_STANDARD_SIZE, true), new CButton('btn1', _('Select'), 'return PopUp("popup.php?' . 'dstfrm=' . $servicesForm->getName() . '&dstfld1=triggerid' . '&dstfld2=trigger' . '&srctbl=triggers' . '&srcfld1=triggerid' . '&srcfld2=description' . '&real_hosts=1' . '&with_triggers=1");', 'formlist'))); $servicesFormList->addRow(_('Sort order (0->999)'), new CTextBox('sortorder', $this->data['sortorder'], 3, false, 3)); /* * Dependencies tab */ $servicesChildTable = new CTable(_('No dependencies defined.'), 'formElementTable'); $servicesChildTable->setAttribute('style', 'min-width:500px;'); $servicesChildTable->setAttribute('id', 'service_children'); $servicesChildTable->setHeader(array(_('Services'), _('Soft'), _('Trigger'), _('Action'))); foreach ($this->data['children'] as $child) { $childrenLink = new CLink($child['name'], 'services.php?form=1&serviceid=' . $child['serviceid']); $childrenLink->setAttribute('target', '_blank'); $row = new CRow(array(array($childrenLink, new CVar('children[' . $child['serviceid'] . '][name]', $child['name']), new CVar('children[' . $child['serviceid'] . '][serviceid]', $child['serviceid'])), new CCheckBox('children[' . $child['serviceid'] . '][soft]', isset($child['soft']) && !empty($child['soft']) ? 'checked' : 'no', null, 1), !empty($child['trigger']) ? $child['trigger'] : '-', new CButton('remove', _('Remove'), 'javascript: removeDependentChild(\'' . $child['serviceid'] . '\');', 'link_menu'))); $row->setAttribute('id', 'children_' . $child['serviceid']); $servicesChildTable->addRow($row); } $servicesDependenciesFormList = new CFormList('servicesDependensiesFormList'); $servicesDependenciesFormList->addRow(_('Depends on'), new CDiv(array($servicesChildTable, new CButton('add_child_service', _('Add'), "javascript: openWinCentered('services.php?cservices=1" . url_param('serviceid') . "', 'ZBX_Services_List', 640, 520, 'scrollbars=1, toolbar=0, menubar=0, resizable=0');", 'link_menu')), 'objectgroup inlineblock border_dotted ui-corner-all')); /* * Service times tab */ $servicesTimeFormList = new CFormList('servicesTimeFormList'); $servicesTimeTable = new CTable(_('No times defined. Work 24x7.'), 'formElementTable'); $servicesTimeTable->setAttribute('style', 'min-width: 500px;'); $servicesTimeTable->setHeader(array(_('Type'), _('Interval'), _('Note'), _('Action'))); $i = 0; foreach ($this->data['times'] as $serviceTime) {
if (empty($this->data['parent_discoveryid'])) { $dependenciesTable = new CTable(_('No dependencies defined.'), 'formElementTable'); $dependenciesTable->setAttribute('style', 'min-width: 500px;'); $dependenciesTable->setAttribute('id', 'dependenciesTable'); $dependenciesTable->setHeader(array(_('Name'), _('Action'))); foreach ($this->data['dependencies'] as $dependency) { $triggersForm->addVar('dependencies[]', $dependency['triggerid'], 'dependencies_' . $dependency['triggerid']); $hostNames = array(); foreach ($dependency['hosts'] as $host) { $hostNames[] = CHtml::encode($host['name']); $hostNames[] = ', '; } array_pop($hostNames); if ($dependency['flags'] == ZBX_FLAG_DISCOVERY_NORMAL) { $description = new CLink(array($hostNames, NAME_DELIMITER, CHtml::encode($dependency['description'])), 'triggers.php?form=update&hostid=' . $dependency['hostid'] . '&triggerid=' . $dependency['triggerid']); $description->setAttribute('target', '_blank'); } else { $description = array($hostNames, NAME_DELIMITER, $dependency['description']); } $row = new CRow(array($description, new CButton('remove', _('Remove'), 'javascript: removeDependency(\'' . $dependency['triggerid'] . '\');', 'link_menu'))); $row->setAttribute('id', 'dependency_' . $dependency['triggerid']); $dependenciesTable->addRow($row); } $dependenciesDiv = new CDiv(array($dependenciesTable, new CButton('btn1', _('Add'), '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", 1000, 700);', 'link_menu')), 'objectgroup inlineblock border_dotted ui-corner-all'); $dependenciesDiv->setAttribute('id', 'dependencies_div'); $triggersFormList->addRow(array(_('Replace dependencies'), SPACE, new CVisibilityBox('visible[dependencies]', isset($this->data['visible']['dependencies']), 'dependencies_div', _('Original'))), $dependenciesDiv); } // append tabs to form $triggersTab = new CTabView(); $triggersTab->addTab('triggersTab', _('Mass update'), $triggersFormList); $triggersForm->addItem($triggersTab);
$options['groupids'] = $groupid; } if (!is_null($writeonly)) { $options['editable'] = true; } $scripts = API::Script()->get($options); order_result($scripts, 'name'); foreach ($scripts as $script) { $description = new CLink($script['name'], '#'); if ($multiselect) { $js_action = 'javascript: addValue(' . zbx_jsvalue($reference) . ', ' . zbx_jsvalue($script['scriptid']) . ');'; } else { $values = array($dstfld1 => $script[$srcfld1], $dstfld2 => $script[$srcfld2]); $js_action = 'javascript: addValues(' . zbx_jsvalue($dstfrm) . ', ' . zbx_jsvalue($values) . '); close_window(); return false;'; } $description->setAttribute('onclick', $js_action . ' jQuery(this).removeAttr("onclick");'); if ($multiselect) { $description = new CCol(array(new CCheckBox('scripts[' . zbx_jsValue($script[$srcfld1]) . ']', null, null, $script['scriptid']), $description)); } if ($script['type'] == ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT) { switch ($script['execute_on']) { case ZBX_SCRIPT_EXECUTE_ON_AGENT: $scriptExecuteOn = _('Agent'); break; case ZBX_SCRIPT_EXECUTE_ON_SERVER: $scriptExecuteOn = _('Server'); break; } } else { $scriptExecuteOn = ''; }
function get_screen($screenid, $editmode, $effectiveperiod = NULL) { global $USER_DETAILS; if ($screenid == 0) { return new CTableInfo(S_NO_SCREENS_DEFINED); } $r = CScreen::get(array('screenids' => $screenid, 'editable' => $editmode == 1 ? 1 : null, 'output' => API_OUTPUT_SHORTEN)); if (empty($r)) { access_deny(); } if (is_null($effectiveperiod)) { $effectiveperiod = ZBX_MIN_PERIOD; } $result = DBselect('SELECT name,hsize,vsize FROM screens WHERE screenid=' . $screenid); $row = DBfetch($result); if (!$row) { return new CTableInfo(S_NO_SCREENS_DEFINED); } $sql = 'SELECT * FROM screens_items WHERE screenid=' . $screenid; $iresult = DBSelect($sql); $skip_field = array(); $irows = array(); while ($irow = DBfetch($iresult)) { $irows[] = $irow; for ($i = 0; $i < $irow['rowspan'] || $i == 0; $i++) { for ($j = 0; $j < $irow['colspan'] || $j == 0; $j++) { if ($i != 0 || $j != 0) { if (!isset($skip_field[$irow['y'] + $i])) { $skip_field[$irow['y'] + $i] = array(); } $skip_field[$irow['y'] + $i][$irow['x'] + $j] = 1; } } } } $table = new CTable(new CLink(S_NO_ROWS_IN_SCREEN . SPACE . $row['name'], 'screenconf.php?config=0&form=update&screenid=' . $screenid), $editmode == 0 || $editmode == 2 ? 'screen_view' : 'screen_edit'); $table->setAttribute('id', 'iframe'); if ($editmode == 1) { $new_cols = array(new Ccol(new Cimg('images/general/zero.gif', 'zero', 1, 1))); for ($c = 0; $c < $row['hsize'] + 1; $c++) { $add_icon = new Cimg('images/general/closed.gif', NULL, NULL, NULL, 'pointer'); $add_icon->addAction('onclick', "javascript: location.href = 'screenedit.php?config=1&screenid={$screenid}&add_col={$c}';"); array_push($new_cols, new Ccol($add_icon)); } $table->addRow($new_cols); } $empty_screen_col = array(); for ($r = 0; $r < $row['vsize']; $r++) { $new_cols = array(); $empty_screen_row = true; if ($editmode == 1) { $add_icon = new Cimg('images/general/closed.gif', NULL, NULL, NULL, 'pointer'); $add_icon->addAction('onclick', "javascript: location.href = 'screenedit.php?config=1&screenid={$screenid}&add_row={$r}';"); array_push($new_cols, new Ccol($add_icon)); } for ($c = 0; $c < $row['hsize']; $c++) { $item = array(); if (isset($skip_field[$r][$c])) { continue; } $item_form = false; $irow = false; foreach ($irows as $tmprow) { if ($tmprow['x'] == $c && $tmprow['y'] == $r) { $irow = $tmprow; break; } } if ($irow) { $screenitemid = $irow['screenitemid']; $resourcetype = $irow['resourcetype']; $resourceid = $irow['resourceid']; $width = $irow['width']; $height = $irow['height']; $colspan = $irow['colspan']; $rowspan = $irow['rowspan']; $elements = $irow['elements']; $valign = $irow['valign']; $halign = $irow['halign']; $style = $irow['style']; $url = $irow['url']; $dynamic = $irow['dynamic']; } else { $screenitemid = 0; $resourcetype = 0; $resourceid = 0; $width = 0; $height = 0; $colspan = 0; $rowspan = 0; $elements = 0; $valign = VALIGN_DEFAULT; $halign = HALIGN_DEFAULT; $style = 0; $url = ''; $dynamic = 0; } if ($screenitemid > 0) { $empty_screen_row = false; $empty_screen_col[$c] = 1; } if ($editmode == 1 && $screenitemid != 0) { $onclick_action = "ZBX_SCREENS['" . $_REQUEST['screenid'] . "'].screen.element_onclick('screenedit.php?form=update" . url_param('screenid') . '&screenitemid=' . $screenitemid . "#form');"; $action = 'screenedit.php?form=update' . url_param('screenid') . '&screenitemid=' . $screenitemid . '#form'; } else { if ($editmode == 1 && $screenitemid == 0) { $onclick_action = "ZBX_SCREENS['" . $_REQUEST['screenid'] . "'].screen.element_onclick('screenedit.php?form=update" . url_param('screenid') . '&x=' . $c . '&y=' . $r . "#form');"; $action = 'screenedit.php?form=update' . url_param('screenid') . '&x=' . $c . '&y=' . $r . '#form'; } else { $action = NULL; } } if ($editmode == 1 && isset($_REQUEST['form']) && isset($_REQUEST['x']) && $_REQUEST['x'] == $c && isset($_REQUEST['y']) && $_REQUEST['y'] == $r) { // click on empty field $item = get_screen_item_form(); $item_form = true; } else { if ($editmode == 1 && isset($_REQUEST['form']) && isset($_REQUEST['screenitemid']) && bccomp($_REQUEST['screenitemid'], $screenitemid) == 0) { // click on element $item = get_screen_item_form(); $item_form = true; } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_GRAPH) { if ($editmode == 0) { $action = 'charts.php?graphid=' . $resourceid . url_param('period') . url_param('stime'); } // GRAPH & ZOOM features $dom_graph_id = 'graph_' . $screenitemid . '_' . $resourceid; $containerid = 'graph_cont_' . $screenitemid . '_' . $resourceid; $graphDims = getGraphDims($resourceid); $graphDims['graphHeight'] = $height; $graphDims['width'] = $width; $graph = get_graph_by_graphid($resourceid); $graphid = $graph['graphid']; $legend = $graph['show_legend']; $graph3d = $graph['show_3d']; //------------- // Host feature if ($dynamic == SCREEN_DYNAMIC_ITEM && isset($_REQUEST['hostid']) && $_REQUEST['hostid'] > 0) { $options = array('hostids' => $_REQUEST['hostid'], 'output' => array('hostid', 'host')); $hosts = CHost::get($options); $host = reset($hosts); $options = array('graphids' => $resourceid, 'output' => API_OUTPUT_EXTEND, 'select_hosts' => API_OUTPUT_REFER, 'select_graph_items' => API_OUTPUT_EXTEND); $graph = CGraph::get($options); $graph = reset($graph); if (count($graph['hosts']) == 1) { // if items from one host we change them, or set calculated if not exist on that host if ($graph['ymax_type'] == GRAPH_YAXIS_TYPE_ITEM_VALUE && $graph['ymax_itemid']) { $new_dinamic = get_same_graphitems_for_host(array(array('itemid' => $graph['ymax_itemid'])), $_REQUEST['hostid'], false); $new_dinamic = reset($new_dinamic); if (isset($new_dinamic['itemid']) && $new_dinamic['itemid'] > 0) { $graph['ymax_itemid'] = $new_dinamic['itemid']; } else { $graph['ymax_type'] = GRAPH_YAXIS_TYPE_CALCULATED; } } if ($graph['ymin_type'] == GRAPH_YAXIS_TYPE_ITEM_VALUE && $graph['ymin_itemid']) { $new_dinamic = get_same_graphitems_for_host(array(array('itemid' => $graph['ymin_itemid'])), $_REQUEST['hostid'], false); $new_dinamic = reset($new_dinamic); if (isset($new_dinamic['itemid']) && $new_dinamic['itemid'] > 0) { $graph['ymin_itemid'] = $new_dinamic['itemid']; } else { $graph['ymin_type'] = GRAPH_YAXIS_TYPE_CALCULATED; } } } $url = $graph['graphtype'] == GRAPH_TYPE_PIE || $graph['graphtype'] == GRAPH_TYPE_EXPLODED ? 'chart7.php' : 'chart3.php'; $url = new Curl($url); foreach ($graph as $name => $value) { if ($name == 'width' || $name == 'height') { continue; } $url->setArgument($name, $value); } $new_items = get_same_graphitems_for_host($graph['gitems'], $_REQUEST['hostid'], false); foreach ($new_items as $gitem) { unset($gitem['gitemid']); unset($gitem['graphid']); foreach ($gitem as $name => $value) { $url->setArgument('items[' . $gitem['itemid'] . '][' . $name . ']', $value); } } $url->setArgument('name', $host['host'] . ': ' . $graph['name']); $url = $url->getUrl(); } //------------- $objData = array('id' => $resourceid, 'domid' => $dom_graph_id, 'containerid' => $containerid, 'objDims' => $graphDims, 'loadSBox' => 0, 'loadImage' => 1, 'loadScroll' => 0, 'dynamic' => 0); $default = false; if ($graphDims['graphtype'] == GRAPH_TYPE_PIE || $graphDims['graphtype'] == GRAPH_TYPE_EXPLODED) { if ($dynamic == SCREEN_SIMPLE_ITEM || empty($url)) { $url = 'chart6.php?graphid=' . $resourceid; $default = true; } $timeline = array(); $timeline['period'] = $effectiveperiod; $timeline['starttime'] = date('YmdHis', get_min_itemclock_by_graphid($resourceid)); if (isset($_REQUEST['stime'])) { $timeline['usertime'] = date('YmdHis', zbxDateToTime($_REQUEST['stime']) + $timeline['period']); } // $src = $url.'&width='.$width.'&height='.$height.'&legend='.$legend.'&graph3d='.$graph3d; $src = $url . '&width=' . $width . '&height=' . $height . '&legend=' . $legend . '&graph3d=' . $graph3d . '&period=' . $effectiveperiod . url_param('stime'); $objData['src'] = $src; } else { if ($dynamic == SCREEN_SIMPLE_ITEM || empty($url)) { $url = 'chart2.php?graphid=' . $resourceid; $default = true; } $src = $url . '&width=' . $width . '&height=' . $height . '&period=' . $effectiveperiod . url_param('stime'); $timeline = array(); if (isset($graphid) && !is_null($graphid) && $editmode != 1) { $timeline['period'] = $effectiveperiod; $timeline['starttime'] = date('YmdHis', time() - ZBX_MAX_PERIOD); //get_min_itemclock_by_graphid($graphid); if (isset($_REQUEST['stime'])) { $timeline['usertime'] = date('YmdHis', zbxDateToTime($_REQUEST['stime']) + $timeline['period']); } $objData['loadSBox'] = 1; } $objData['src'] = $src; } if ($editmode || !$default) { $item = new CDiv(); } else { $item = new CLink(null, $action); } $item->setAttribute('id', $containerid); $item = array($item); if ($editmode == 1) { $item[] = BR(); $item[] = new CLink(S_CHANGE, $action); } if ($editmode == 2) { insert_js('timeControl.addObject("' . $dom_graph_id . '",' . zbx_jsvalue($timeline) . ',' . zbx_jsvalue($objData) . ');'); } else { zbx_add_post_js('timeControl.addObject("' . $dom_graph_id . '",' . zbx_jsvalue($timeline) . ',' . zbx_jsvalue($objData) . ');'); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_SIMPLE_GRAPH) { $dom_graph_id = 'graph_' . $screenitemid . '_' . $resourceid; $containerid = 'graph_cont_' . $screenitemid . '_' . $resourceid; $graphDims = getGraphDims(); $graphDims['graphHeight'] = $height; $graphDims['width'] = $width; $objData = array('id' => $resourceid, 'domid' => $dom_graph_id, 'containerid' => $containerid, 'objDims' => $graphDims, 'loadSBox' => 0, 'loadImage' => 1, 'loadScroll' => 0, 'dynamic' => 0); // Host feature if ($dynamic == SCREEN_DYNAMIC_ITEM && isset($_REQUEST['hostid']) && $_REQUEST['hostid'] > 0) { if ($newitemid = get_same_item_for_host($resourceid, $_REQUEST['hostid'])) { $resourceid = $newitemid; } else { $resourceid = ''; } } //------------- if ($editmode == 0 && !empty($resourceid)) { $action = 'history.php?action=showgraph&itemid=' . $resourceid . url_param('period') . url_param('stime'); } $timeline = array(); $timeline['starttime'] = date('YmdHis', time() - ZBX_MAX_PERIOD); if (!zbx_empty($resourceid) && $editmode != 1) { $timeline['period'] = $effectiveperiod; if (isset($_REQUEST['stime'])) { $timeline['usertime'] = date('YmdHis', zbxDateToTime($_REQUEST['stime']) + $timeline['period']); } $objData['loadSBox'] = 1; } $src = zbx_empty($resourceid) ? 'chart3.php?' : 'chart.php?itemid=' . $resourceid . '&'; $src .= $url . 'width=' . $width . '&height=' . $height; $objData['src'] = $src; if ($editmode) { $item = new CDiv(); } else { $item = new CLink(null, $action); } $item->setAttribute('id', $containerid); $item = array($item); if ($editmode == 1) { $item[] = BR(); $item[] = new CLink(S_CHANGE, $action); } if ($editmode == 2) { insert_js('timeControl.addObject("' . $dom_graph_id . '",' . zbx_jsvalue($timeline) . ',' . zbx_jsvalue($objData) . ');'); } else { zbx_add_post_js('timeControl.addObject("' . $dom_graph_id . '",' . zbx_jsvalue($timeline) . ',' . zbx_jsvalue($objData) . ');'); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_MAP) { $image_map = new CImg("map.php?noedit=1&sysmapid={$resourceid}" . "&width={$width}&height={$height}&curtime=" . time()); if ($editmode == 0) { $options = array('sysmapids' => $resourceid, 'output' => API_OUTPUT_EXTEND, 'select_selements' => API_OUTPUT_EXTEND, 'nopermissions' => 1); $sysmaps = CMap::get($options); $sysmap = reset($sysmaps); $action_map = getActionMapBySysmap($sysmap); $image_map->setMap($action_map->getName()); $item = array($action_map, $image_map); } else { $item = $image_map; // $item = new CLink($image_map, $action); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_PLAIN_TEXT) { // Host feature if ($dynamic == SCREEN_DYNAMIC_ITEM && isset($_REQUEST['hostid']) && $_REQUEST['hostid'] > 0) { if ($newitemid = get_same_item_for_host($resourceid, $_REQUEST['hostid'])) { $resourceid = $newitemid; } else { $resourceid = 0; } } //------------- $item = array(get_screen_plaintext($resourceid, $elements, $style)); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_HOSTGROUP_TRIGGERS) { $params = array('groupids' => null, 'hostids' => null, 'maintenance' => null, 'severity' => null, 'limit' => $elements); $tr_form = S_ALL_S; if ($resourceid > 0) { $options = array('groupids' => $resourceid, 'output' => API_OUTPUT_EXTEND); $hostgroups = CHostgroup::get($options); $hostgroup = reset($hostgroups); $tr_form = new CSpan(S_GROUP . ': ' . $hostgroup['name'], 'white'); $params['groupids'] = $hostgroup['groupid']; } else { $groupid = get_request('tr_groupid', CProfile::get('web.screens.tr_groupid', 0)); $hostid = get_request('tr_hostid', CProfile::get('web.screens.tr_hostid', 0)); CProfile::update('web.screens.tr_groupid', $groupid, PROFILE_TYPE_ID); CProfile::update('web.screens.tr_hostid', $hostid, PROFILE_TYPE_ID); $options = array('monitored_hosts' => 1, 'output' => API_OUTPUT_EXTEND); $groups = CHostGroup::get($options); order_result($groups, 'name'); $options = array('monitored_hosts' => 1, 'output' => API_OUTPUT_EXTEND); if ($groupid > 0) { $options['groupids'] = $groupid; } $hosts = CHost::get($options); $hosts = zbx_toHash($hosts, 'hostid'); order_result($hosts, 'host'); if (!isset($hosts[$hostid])) { $hostid = 0; } $tr_form = new CForm(); $cmbGroup = new CComboBox('tr_groupid', $groupid, 'submit()'); $cmbHosts = new CComboBox('tr_hostid', $hostid, 'submit()'); $cmbGroup->addItem(0, S_ALL_SMALL); $cmbHosts->addItem(0, S_ALL_SMALL); foreach ($groups as $gnum => $group) { $cmbGroup->addItem($group['groupid'], get_node_name_by_elid($group['groupid'], null, ': ') . $group['name']); } foreach ($hosts as $hnum => $host) { $cmbHosts->addItem($host['hostid'], get_node_name_by_elid($host['hostid'], null, ': ') . $host['host']); } $tr_form->addItem(array(S_GROUP . SPACE, $cmbGroup)); $tr_form->addItem(array(SPACE . S_HOST . SPACE, $cmbHosts)); if ($groupid > 0) { $params['groupids'] = $groupid; } if ($hostid > 0) { $params['hostids'] = $hostid; } } $item = array(get_table_header(array(S_STATUS_OF_TRIGGERS_BIG, SPACE, zbx_date2str(S_SCREENS_TRIGGER_FORM_DATE_FORMAT)), $tr_form)); $item[] = make_latest_issues($params); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } ///----------------------- } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_HOST_TRIGGERS) { $params = array('groupids' => null, 'hostids' => null, 'maintenance' => null, 'severity' => null, 'limit' => $elements); $tr_form = S_ALL_S; if ($resourceid > 0) { $options = array('hostids' => $resourceid, 'output' => API_OUTPUT_EXTEND); $hosts = CHost::get($options); $host = reset($hosts); $tr_form = new CSpan(S_HOST . ': ' . $host['host'], 'white'); $params['hostids'] = $host['hostid']; } else { $groupid = get_request('tr_groupid', CProfile::get('web.screens.tr_groupid', 0)); $hostid = get_request('tr_hostid', CProfile::get('web.screens.tr_hostid', 0)); CProfile::update('web.screens.tr_groupid', $groupid, PROFILE_TYPE_ID); CProfile::update('web.screens.tr_hostid', $hostid, PROFILE_TYPE_ID); $options = array('monitored_hosts' => 1, 'output' => API_OUTPUT_EXTEND); $groups = CHostGroup::get($options); order_result($groups, 'name'); $options = array('monitored_hosts' => 1, 'output' => API_OUTPUT_EXTEND); if ($groupid > 0) { $options['groupids'] = $groupid; } $hosts = CHost::get($options); $hosts = zbx_toHash($hosts, 'hostid'); order_result($hosts, 'host'); if (!isset($hosts[$hostid])) { $hostid = 0; } $tr_form = new CForm(); $cmbGroup = new CComboBox('tr_groupid', $groupid, 'submit()'); $cmbHosts = new CComboBox('tr_hostid', $hostid, 'submit()'); $cmbGroup->addItem(0, S_ALL_SMALL); $cmbHosts->addItem(0, S_ALL_SMALL); foreach ($groups as $gnum => $group) { $cmbGroup->addItem($group['groupid'], get_node_name_by_elid($group['groupid'], null, ': ') . $group['name']); } foreach ($hosts as $hnum => $host) { $cmbHosts->addItem($host['hostid'], get_node_name_by_elid($host['hostid'], null, ': ') . $host['host']); } $tr_form->addItem(array(S_GROUP . SPACE, $cmbGroup)); $tr_form->addItem(array(SPACE . S_HOST . SPACE, $cmbHosts)); if ($groupid > 0) { $params['groupids'] = $groupid; } if ($hostid > 0) { $params['hostids'] = $hostid; } } ///----------------------- $item = array(get_table_header(array(S_STATUS_OF_TRIGGERS_BIG, SPACE, zbx_date2str(S_SCREENS_TRIGGER_FORM_DATE_FORMAT)), $tr_form)); $item[] = make_latest_issues($params); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_SYSTEM_STATUS) { $params = array('groupids' => null, 'hostids' => null, 'maintenance' => null, 'severity' => null, 'limit' => null, 'extAck' => 0); $item = array(get_table_header(array(S_SYSTEM_STATUS, SPACE, zbx_date2str(S_SCREENS_TRIGGER_FORM_DATE_FORMAT)))); $item[] = make_system_status($params); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_HOSTS_INFO) { $item = array(new CHostsInfo($resourceid, $style)); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_TRIGGERS_INFO) { $item = new CTriggersInfo($resourceid, null, $style); $item = array($item); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_SERVER_INFO) { // $item = array(get_table_header(S_STATUS_OF_ZABBIX_BIG),make_status_of_zbx()); $item = array(new CServerInfo()); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_CLOCK) { $item = new CFlashClock($width, $height, $style, $action); } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_SCREEN) { $item = array(get_screen($resourceid, 2, $effectiveperiod)); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_TRIGGERS_OVERVIEW) { $hostids = array(); $res = DBselect('SELECT DISTINCT hg.hostid FROM hosts_groups hg WHERE hg.groupid=' . $resourceid); while ($tmp_host = DBfetch($res)) { $hostids[$tmp_host['hostid']] = $tmp_host['hostid']; } $item = array(get_triggers_overview($hostids, $style)); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_DATA_OVERVIEW) { $hostids = array(); $res = DBselect('SELECT DISTINCT hg.hostid FROM hosts_groups hg WHERE hg.groupid=' . $resourceid); while ($tmp_host = DBfetch($res)) { $hostids[$tmp_host['hostid']] = $tmp_host['hostid']; } $item = array(get_items_data_overview($hostids, $style)); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_URL) { $item = array(new CIFrame($url, $width, $height, "auto")); if ($editmode == 1) { array_push($item, BR(), new CLink(S_CHANGE, $action)); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_ACTIONS) { $item = array(get_history_of_actions($elements)); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } } else { if ($screenitemid != 0 && $resourcetype == SCREEN_RESOURCE_EVENTS) { $options = array('monitored' => 1, 'value' => array(TRIGGER_VALUE_TRUE, TRIGGER_VALUE_FALSE), 'limit' => $elements); $hide_unknown = CProfile::get('web.events.filter.hide_unknown', 0); if ($hide_unknown) { $options['value'] = array(TRIGGER_VALUE_TRUE, TRIGGER_VALUE_FALSE); } $item = new CTableInfo(S_NO_EVENTS_FOUND); $item->SetHeader(array(S_TIME, is_show_all_nodes() ? S_NODE : null, S_HOST, S_DESCRIPTION, S_VALUE, S_SEVERITY)); $events = getLastEvents($options); foreach ($events as $enum => $event) { $trigger = $event['trigger']; $host = $event['host']; $value = new CCol(trigger_value2str($event['value']), get_trigger_value_style($event['value'])); // $row = zbx_array_merge($triggers[$row['triggerid']],$row); // if((1 == $hide_unknown) && (!event_initial_time($row,$hide_unknown))) continue; $item->addRow(array(zbx_date2str(S_EVENTS_TRIGGERS_EVENTS_HISTORY_LIST_DATE_FORMAT, $event['clock']), get_node_name_by_elid($event['objectid']), $host['host'], new CLink($trigger['description'], 'tr_events.php?triggerid=' . $event['objectid'] . '&eventid=' . $event['eventid']), $value, new CCol(get_severity_description($trigger['priority']), get_severity_style($trigger['priority'])))); } $item = array($item); if ($editmode == 1) { array_push($item, new CLink(S_CHANGE, $action)); } } else { $item = array(SPACE); if ($editmode == 1) { array_push($item, BR(), new CLink(S_CHANGE, $action)); } } } } } } } } } } } } } } } } } } } } $str_halign = 'def'; if ($halign == HALIGN_CENTER) { $str_halign = 'cntr'; } if ($halign == HALIGN_LEFT) { $str_halign = 'left'; } if ($halign == HALIGN_RIGHT) { $str_halign = 'right'; } $str_valign = 'def'; if ($valign == VALIGN_MIDDLE) { $str_valign = 'mdl'; } if ($valign == VALIGN_TOP) { $str_valign = 'top'; } if ($valign == VALIGN_BOTTOM) { $str_valign = 'bttm'; } if ($editmode == 1 && !$item_form) { $item = new CDiv($item, 'draggable'); $item->setAttribute('id', 'position_' . $r . '_' . $c); if ($editmode == 1) { $item->setAttribute('onclick', 'javascript: ' . $onclick_action); } } $new_col = new CCol($item, $str_halign . '_' . $str_valign); if ($colspan) { $new_col->SetColSpan($colspan); } if ($rowspan) { $new_col->SetRowSpan($rowspan); } array_push($new_cols, $new_col); } if ($editmode == 1) { $rmv_icon = new Cimg('images/general/opened.gif', NULL, NULL, NULL, 'pointer'); if ($empty_screen_row) { $rmv_row_link = "javascript: location.href = 'screenedit.php?config=1&screenid={$screenid}&rmv_row={$r}';"; } else { $rmv_row_link = "javascript: if(Confirm('" . S_THIS_SCREEN_ROW_NOT_EMPTY . '. ' . S_DELETE_IT_Q . "')){" . " location.href = 'screenedit.php?config=1&screenid={$screenid}&rmv_row={$r}';}"; } $rmv_icon->addAction('onclick', $rmv_row_link); array_push($new_cols, new Ccol($rmv_icon)); } $table->addRow(new CRow($new_cols)); } if ($editmode == 1) { $add_icon = new Cimg('images/general/closed.gif', NULL, NULL, NULL, 'pointer'); $add_icon->addAction('onclick', "javascript: location.href = 'screenedit.php?config=1&screenid={$screenid}&add_row={$row['vsize']}';"); $new_cols = array(new Ccol($add_icon)); for ($c = 0; $c < $row['hsize']; $c++) { $rmv_icon = new Cimg('images/general/opened.gif', NULL, NULL, NULL, 'pointer'); if (isset($empty_screen_col[$c])) { $rmv_col_link = "javascript: if(Confirm('" . S_THIS_SCREEN_COLUMN_NOT_EMPTY . '. ' . S_DELETE_IT_Q . "')){" . " location.href = 'screenedit.php?config=1&screenid={$screenid}&rmv_col={$c}';}"; } else { $rmv_col_link = "javascript: location.href = 'screenedit.php?config=1&screenid={$screenid}&rmv_col={$c}';"; } $rmv_icon->addAction('onclick', $rmv_col_link); array_push($new_cols, new Ccol($rmv_icon)); } array_push($new_cols, new Ccol(new Cimg('images/general/zero.gif', 'zero', 1, 1))); $table->addRow($new_cols); } return $table; }
// append logtime to form list $itemFormList->addRow(array(_('Log time format'), SPACE, new CVisibilityBox('visible[logtimefmt]', isset($this->data['visible']['logtimefmt']), 'logtimefmt', _('Original'))), new CTextBox('logtimefmt', $this->data['logtimefmt'], ZBX_TEXTBOX_SMALL_SIZE)); // append delta to form list $deltaComboBox = new CComboBox('delta', $this->data['delta']); $deltaComboBox->addItem(0, _('As is')); $deltaComboBox->addItem(1, _('Delta (speed per second)')); $deltaComboBox->addItem(2, _('Delta (simple change)')); $itemFormList->addRow(array(_('Store value'), SPACE, new CVisibilityBox('visible[delta]', isset($this->data['visible']['delta']), 'delta', _('Original'))), $deltaComboBox); // append valuemap to form list $valueMapsComboBox = new CComboBox('valuemapid', $this->data['valuemapid']); $valueMapsComboBox->addItem(0, _('As is')); foreach ($this->data['valuemaps'] as $valuemap) { $valueMapsComboBox->addItem($valuemap['valuemapid'], get_node_name_by_elid($valuemap['valuemapid'], null, NAME_DELIMITER) . $valuemap['name']); } $valueMapLink = new CLink(_('show value mappings'), 'adm.valuemapping.php'); $valueMapLink->setAttribute('target', '_blank'); $itemFormList->addRow(array(_('Show value'), SPACE, new CVisibilityBox('visible[valuemapid]', isset($this->data['visible']['valuemapid']), 'valuemap', _('Original'))), new CDiv(array($valueMapsComboBox, SPACE, $valueMapLink), null, 'valuemap')); // append trapper hosts to form list $itemFormList->addRow(array(_('Allowed hosts'), SPACE, new CVisibilityBox('visible[trapper_hosts]', isset($this->data['visible']['trapper_hosts']), 'trapper_hosts', _('Original'))), new CTextBox('trapper_hosts', $this->data['trapper_hosts'], ZBX_TEXTBOX_STANDARD_SIZE)); // append applications to form list if (!$this->data['is_multiple_hosts']) { // replace applications $appToReplace = null; if (isset($_REQUEST['applications'])) { $getApps = API::Application()->get(array('applicationids' => $_REQUEST['applications'], 'output' => array('applicationid', 'name'))); foreach ($getApps as $getApp) { $appToReplace[] = array('id' => $getApp['applicationid'], 'name' => $getApp['name']); } } $replaceApp = new CMultiSelect(array('name' => 'applications[]', 'objectName' => 'applications', 'objectOptions' => array('hostid' => $this->data['hostid']), 'data' => $appToReplace)); $itemFormList->addRow(array(_('Replace applications'), SPACE, new CVisibilityBox('visible[applications]', isset($this->data['visible']['applications']), 'applications_', _('Original'))), $replaceApp);
} $hostgroups = CHostGroup::get($options); order_result($hostgroups, 'name'); $all = false; foreach ($hostgroups as $hgnum => $row) { $row['node_name'] = get_node_name_by_elid($row['groupid']); if (!$all) { $name = new CLink(bold(S_MINUS_ALL_GROUPS_MINUS), '#'); $action = get_window_opener($dstfrm, $dstfld1, create_id_by_nodeid(0, $nodeid)) . get_window_opener($dstfrm, $dstfld2, $row['node_name'] . S_MINUS_ALL_GROUPS_MINUS); $name->setAttribute('onclick', $action . " close_window(); return false;"); $table->addRow($name); $all = true; } $name = new CLink($row['name'], '#'); $row['name'] = $row['node_name'] . $row['name']; $name->setAttribute('onclick', get_window_opener($dstfrm, $dstfld1, $row[$srcfld1]) . get_window_opener($dstfrm, $dstfld2, $row[$srcfld2]) . ' return close_window();'); $table->addRow($name); } $table->show(); } else { if ($srctbl == 'drules') { $table = new CTableInfo(S_NO_DISCOVERY_RULES_DEFINED); $table->setHeader(S_NAME); $result = DBselect('SELECT DISTINCT * FROM drules WHERE ' . DBin_node('druleid', $nodeid)); while ($row = DBfetch($result)) { $name = new CSpan($row["name"], 'link'); $action = get_window_opener($dstfrm, $dstfld1, $row[$srcfld1]) . (isset($srcfld2) ? get_window_opener($dstfrm, $dstfld2, $row[$srcfld2]) : ''); $name->setAttribute('onclick', $action . " close_window(); return false;"); $table->addRow($name); } $table->show();
if (isset($page['scripts']) && is_array($page['scripts'])) { foreach ($page['scripts'] as $id => $script) { print ' <script type="text/javascript" src="js/' . $script . '"></script>' . "\n"; } } ?> </head> <body onload="zbxCallPostScripts();"> <?php } define('PAGE_HEADER_LOADED', 1); if (isset($_REQUEST['print'])) { define('ZBX_PAGE_NO_MENU', 1); $req = substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], 'print') - 1); $link = new CLink(bold('«' . S_BACK_BIG), $req, 'small_font'); $link->setAttribute('style', 'padding-left: 10px;'); $printview = new CDiv($link, 'printless'); $printview->setAttribute('style', 'border: 1px #333 dotted;'); $printview->Show(); } if (!defined('ZBX_PAGE_NO_MENU')) { COpt::compare_files_with_menu($ZBX_MENU); $help = new CLink(S_HELP, 'http://www.zabbix.com/documentation.php', 'small_font', null, 'nosid'); $help->setTarget('_blank'); $support = new CLink(S_GET_SUPPORT, 'http://www.zabbix.com/support.php', 'small_font', null, 'nosid'); $support->setTarget('_blank'); $printview = new CLink(S_PRINT, $_SERVER['REQUEST_URI'] . (empty($_GET) ? '?' : '&') . 'print=1', 'small_font', null, 'nosid'); $page_header_r_col = array($help, '|', $support, '|', $printview); if ($USER_DETAILS['alias'] != ZBX_GUEST_USER) { $page_header_r_col[] = array('|'); array_push($page_header_r_col, new CLink(S_PROFILE, 'profile.php', 'small_font', null, 'nosid'), '|');
/** * Process screen. * * @return CDiv (screen inside container) */ public function get() { $this->dataId = 'graph_' . $this->screenitem['screenitemid'] . '_' . $this->screenitem['screenid']; $resourceid = !empty($this->screenitem['real_resourceid']) ? $this->screenitem['real_resourceid'] : $this->screenitem['resourceid']; $containerid = 'graph_container_' . $this->screenitem['screenitemid'] . '_' . $this->screenitem['screenid']; $graphDims = getGraphDims($resourceid); $graphDims['graphHeight'] = $this->screenitem['height']; $graphDims['width'] = $this->screenitem['width']; $graph = get_graph_by_graphid($resourceid); $graphid = $graph['graphid']; $legend = $graph['show_legend']; $graph3d = $graph['show_3d']; if ($this->screenitem['dynamic'] == SCREEN_DYNAMIC_ITEM && !empty($this->hostid)) { // get host $hosts = API::Host()->get(array('hostids' => $this->hostid, 'output' => array('hostid', 'name'))); $host = reset($hosts); // get graph $graph = API::Graph()->get(array('graphids' => $resourceid, 'output' => API_OUTPUT_EXTEND, 'selectHosts' => API_OUTPUT_REFER, 'selectGraphItems' => API_OUTPUT_EXTEND)); $graph = reset($graph); // if items from one host we change them, or set calculated if not exist on that host if (count($graph['hosts']) == 1) { if ($graph['ymax_type'] == GRAPH_YAXIS_TYPE_ITEM_VALUE && $graph['ymax_itemid']) { $newDinamic = get_same_graphitems_for_host(array(array('itemid' => $graph['ymax_itemid'])), $this->hostid, false); $newDinamic = reset($newDinamic); if (isset($newDinamic['itemid']) && $newDinamic['itemid'] > 0) { $graph['ymax_itemid'] = $newDinamic['itemid']; } else { $graph['ymax_type'] = GRAPH_YAXIS_TYPE_CALCULATED; } } if ($graph['ymin_type'] == GRAPH_YAXIS_TYPE_ITEM_VALUE && $graph['ymin_itemid']) { $newDinamic = get_same_graphitems_for_host(array(array('itemid' => $graph['ymin_itemid'])), $this->hostid, false); $newDinamic = reset($newDinamic); if (isset($newDinamic['itemid']) && $newDinamic['itemid'] > 0) { $graph['ymin_itemid'] = $newDinamic['itemid']; } else { $graph['ymin_type'] = GRAPH_YAXIS_TYPE_CALCULATED; } } } // get url $this->screenitem['url'] = $graph['graphtype'] == GRAPH_TYPE_PIE || $graph['graphtype'] == GRAPH_TYPE_EXPLODED ? 'chart7.php' : 'chart3.php'; $this->screenitem['url'] = new CUrl($this->screenitem['url']); foreach ($graph as $name => $value) { if ($name == 'width' || $name == 'height') { continue; } $this->screenitem['url']->setArgument($name, $value); } $newGraphItems = get_same_graphitems_for_host($graph['gitems'], $this->hostid, false); foreach ($newGraphItems as $newGraphItem) { unset($newGraphItem['gitemid'], $newGraphItem['graphid']); foreach ($newGraphItem as $name => $value) { $this->screenitem['url']->setArgument('items[' . $newGraphItem['itemid'] . '][' . $name . ']', $value); } } $this->screenitem['url']->setArgument('name', $host['name'] . ': ' . $graph['name']); $this->screenitem['url'] = $this->screenitem['url']->getUrl(); } // get time control $timeControlData = array('id' => $this->getDataId(), 'containerid' => $containerid, 'objDims' => $graphDims, 'loadSBox' => 0, 'loadImage' => 1, 'periodFixed' => CProfile::get('web.screens.timelinefixed', 1), 'sliderMaximumTimePeriod' => ZBX_MAX_PERIOD); $isDefault = false; if ($graphDims['graphtype'] == GRAPH_TYPE_PIE || $graphDims['graphtype'] == GRAPH_TYPE_EXPLODED) { if ($this->screenitem['dynamic'] == SCREEN_SIMPLE_ITEM || empty($this->screenitem['url'])) { $this->screenitem['url'] = 'chart6.php?graphid=' . $resourceid . '&screenid=' . $this->screenitem['screenid']; $isDefault = true; } $this->timeline['starttime'] = date('YmdHis', get_min_itemclock_by_graphid($resourceid)); $timeControlData['src'] = $this->screenitem['url'] . '&width=' . $this->screenitem['width'] . '&height=' . $this->screenitem['height'] . '&legend=' . $legend . '&graph3d=' . $graph3d . $this->getProfileUrlParams(); $timeControlData['src'] .= $this->mode == SCREEN_MODE_EDIT ? '&period=3600&stime=' . date('YmdHis', time()) : '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow']; } else { if ($this->screenitem['dynamic'] == SCREEN_SIMPLE_ITEM || empty($this->screenitem['url'])) { $this->screenitem['url'] = 'chart2.php?graphid=' . $resourceid . '&screenid=' . $this->screenitem['screenid']; $isDefault = true; } if ($this->mode != SCREEN_MODE_EDIT && !empty($graphid)) { if ($this->mode == SCREEN_MODE_PREVIEW) { $timeControlData['loadSBox'] = 1; } } $timeControlData['src'] = $this->screenitem['url'] . '&width=' . $this->screenitem['width'] . '&height=' . $this->screenitem['height'] . $this->getProfileUrlParams(); $timeControlData['src'] .= $this->mode == SCREEN_MODE_EDIT ? '&period=3600&stime=' . date('YmdHis', time()) : '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow']; } // output if ($this->mode == SCREEN_MODE_JS) { return 'timeControl.addObject("' . $this->getDataId() . '", ' . zbx_jsvalue($this->timeline) . ', ' . zbx_jsvalue($timeControlData) . ')'; } else { if ($this->mode == SCREEN_MODE_SLIDESHOW) { insert_js('timeControl.addObject("' . $this->getDataId() . '", ' . zbx_jsvalue($this->timeline) . ', ' . zbx_jsvalue($timeControlData) . ');'); } else { zbx_add_post_js('timeControl.addObject("' . $this->getDataId() . '", ' . zbx_jsvalue($this->timeline) . ', ' . zbx_jsvalue($timeControlData) . ');'); } if ($this->mode == SCREEN_MODE_EDIT || $this->mode == SCREEN_MODE_SLIDESHOW || !$isDefault) { $item = new CDiv(); } elseif ($this->mode == SCREEN_MODE_PREVIEW) { $item = new CLink(null, 'charts.php?graphid=' . $resourceid . '&period=' . $this->timeline['period'] . '&stime=' . $this->timeline['stimeNow']); } $item->setAttribute('id', $containerid); return $this->getOutput($item); } }