public function _getContent($refresh = false) { $table = new CTableInfo(_('No web scenarios found.')); $table->setHeader(array(_('Website'), _('Links'), _('Broken Links'))); $data = array(); // fetch links between HTTP tests and host groups $result = DbFetchArray(DBselect('SELECT website.*, sum(status LIKE "2%") as links_ok, sum(status != "" AND NOT status LIKE "2%") as links_404, sum(status = "" OR status is null) as links_unchecked FROM zabbix_spider.website LEFT JOIN zabbix_spider.page ON page.website = Website.aid group by page.website;')); foreach ($result as $row) { $deadlinks = DbFetchArray(DBselect('SELECT * FROM zabbix_spider.page WHERE NOT status IS NULL AND status != "200" AND status != "" and website = ' . $row['aid'])); $deadlink_output = array(); $link_options = array("target" => "_blank"); foreach ($deadlinks as $deadlink) { $link_link = new CLink($deadlink['url'] == "" ? "root" : substr($deadlink['url'], 0, 50), ($deadlink['url'] == "" || $deadlink['url'][0] == "/" ? $row['url'] : "") . $deadlink['url']); $link_link->setTarget("_blank"); $map_link = new CLink("map", $this->reportUrl . "?pid={$deadlink['aid']}"); $map_link->setTarget("_blank"); $info_link = new CLink($deadlink["status"], "http://www.checkupdown.com/status/E{$deadlink['status']}.html"); $info_link->setTarget("_blank"); $deadlink_output[] = new CDiv(array($link_link, " [ ", $map_link, " | ", $info_link, " ]")); } $link_link = new CLink($row['name'], $row['url']); $link_link->setTarget("_blank"); $map_link = new CLink("map", $this->reportUrl . "?wid={$row['aid']}"); $map_link->setTarget("_blank"); $table->addRow(array(new CDiv(array($link_link, " [ ", $map_link, " ]")), new CDiv(array(new CSpan($row['links_ok'], 'green'), " / ", new CSpan($row['links_404'], 'red'), " / ", new CSpan($row['links_unchecked'], 'gray'))), new CDiv($deadlink_output))); } return $table; }
public function _getContent($refresh = false) { global $DB; $table = new CTableInfo(_('No email log data found')); $table->setHeader(array(_('System'), _('Interval'), _('Next Expected'), _('Last Seen'), _('Total Emails'), _('Actions'))); $data = array(); $db = mysql_connect("192.168.211.7", "zabbix", "asmd213)A)SDM@**@@"); $result = DbFetchArray(DBselect(' SELECT email_schedule.*,COUNT(email_match.schedule) as `email_count` FROM email_tracker.email_schedule LEFT JOIN email_tracker.email_match ON email_match.schedule = email_schedule.id GROUP BY email_schedule.id ORDER BY exec_order ')); foreach ($result as $row) { // $link_link = new CLink($row['name'],$row['url']); // $link_link->setTarget("_blank"); // $map_link = new CLink("map","/spider_report.php?wid=$row[aid]"); // $map_link->setTarget("_blank"); $color = $row['missed'] == 0 ? 'green' : 'red'; $last_seen = empty($row['last_seen']) || $row['last_seen'] == '0000-00-00 00:00:00' ? 'Never' : $row['last_seen']; $table->addRow(array(new CDiv($row['name']), new CDiv($row['expected_interval']), new CDiv($row['next_expected']), new CDiv(new CSpan($last_seen, $color)), new CDiv($row['email_count']), new CLink('Ack', '/zabbix/email.php?action=ack&id=' . $row['id']))); // if (!isset($httpTestData[$row['httptestid']])) { // $data[$row['groupid']]['unknown'] = empty($data[$row['groupid']]['unknown']) ? 1 : ++$data[$row['groupid']]['unknown']; // } // elseif ($httpTestData[$row['httptestid']]['lastfailedstep'] != 0) { // $data[$row['groupid']]['failed'] = empty($data[$row['groupid']]['failed']) ? 1 : ++$data[$row['groupid']]['failed']; // } // else { // $data[$row['groupid']]['ok'] = empty($data[$row['groupid']]['ok']) ? 1 : ++$data[$row['groupid']]['ok']; // } } return $table; }
private function simpleHTML() { $table = new CTableInfo(); $table->addRow($this->makeHeaders()); foreach ($this->tree as $id => $rows) { $table->addRow($this->makeRow($id)); } return $table; }
/** * Generate acknowledgement table * * @param array $event * @param array $event['acknowledges'] * @param array $event['acknowledges']['clock'] * @param array $event['acknowledges']['alias'] * @param array $event['acknowledges']['message'] * * @return CTableInfo */ function makeAckTab($event) { $table = new CTableInfo(_('No acknowledges defined.')); $table->setHeader(array(_('Time'), _('User'), _('Comments'))); if (!empty($event['acknowledges']) && is_array($event['acknowledges'])) { foreach ($event['acknowledges'] as $ack) { $table->addRow(array(zbx_date2str(_('d M Y H:i:s'), $ack['clock']), $ack['alias'], new CCol(zbx_nl2br($ack['message']), 'wraptext'))); } } return $table; }
function make_acktab_by_eventid($eventid) { $table = new CTableInfo(); $table->SetHeader(array(S_TIME, S_USER, S_COMMENTS)); $acks = get_acknowledges_by_eventid($eventid); while ($ack = DBfetch($acks)) { $user = get_user_by_userid($ack['userid']); $table->AddRow(array(date('d-m-Y h:i:s A', $ack['clock']), $user['alias'], new CCol(zbx_nl2br($ack['message']), 'wraptext'))); } return $table; }
/** * Get acknowledgement table. * * @param array $event * @param array $event['acknowledges'] * @param array $event['acknowledges']['clock'] * @param array $event['acknowledges']['alias'] * @param array $event['acknowledges']['message'] * * @return CTableInfo */ function makeAckTab($event) { $acknowledgeTable = new CTableInfo(_('No acknowledges found.')); $acknowledgeTable->setHeader(array(_('Time'), _('User'), _('Comments'))); if (!empty($event['acknowledges']) && is_array($event['acknowledges'])) { foreach ($event['acknowledges'] as $acknowledge) { $acknowledgeTable->addRow(array(zbx_date2str(DATE_TIME_FORMAT_SECONDS, $acknowledge['clock']), getUserFullname($acknowledge), new CCol(zbx_nl2br($acknowledge['message']), 'wraptext'))); } } return $acknowledgeTable; }
/** * Process screen. * * @return CDiv (screen inside container) */ public function get() { // if screen is defined in template, then 'real_resourceid' is defined and should be used if (!empty($this->screenitem['real_resourceid'])) { $this->screenitem['resourceid'] = $this->screenitem['real_resourceid']; } if ($this->screenitem['dynamic'] == SCREEN_DYNAMIC_ITEM && !empty($this->hostid)) { $newitemid = get_same_item_for_host($this->screenitem['resourceid'], $this->hostid); $this->screenitem['resourceid'] = !empty($newitemid) ? $newitemid : 0; } if ($this->screenitem['resourceid'] == 0) { $table = new CTableInfo(_('No values found.')); $table->setHeader(array(_('Timestamp'), _('Item'))); return $this->getOutput($table); } $items = CMacrosResolverHelper::resolveItemNames(array(get_item_by_itemid($this->screenitem['resourceid']))); $item = reset($items); switch ($item['value_type']) { case ITEM_VALUE_TYPE_TEXT: case ITEM_VALUE_TYPE_LOG: $orderField = 'id'; break; case ITEM_VALUE_TYPE_FLOAT: case ITEM_VALUE_TYPE_UINT64: default: $orderField = array('itemid', 'clock'); } $host = get_host_by_itemid($this->screenitem['resourceid']); $table = new CTableInfo(_('No values found.')); $table->setHeader(array(_('Timestamp'), $host['name'] . NAME_DELIMITER . $item['name_expanded'])); $stime = zbxDateToTime($this->timeline['stime']); $histories = API::History()->get(array('history' => $item['value_type'], 'itemids' => $this->screenitem['resourceid'], 'output' => API_OUTPUT_EXTEND, 'sortorder' => ZBX_SORT_DOWN, 'sortfield' => $orderField, 'limit' => $this->screenitem['elements'], 'time_from' => $stime, 'time_till' => $stime + $this->timeline['period'])); foreach ($histories as $history) { switch ($item['value_type']) { case ITEM_VALUE_TYPE_FLOAT: sscanf($history['value'], '%f', $value); break; case ITEM_VALUE_TYPE_TEXT: case ITEM_VALUE_TYPE_STR: case ITEM_VALUE_TYPE_LOG: $value = $this->screenitem['style'] ? new CJsScript($history['value']) : $history['value']; break; default: $value = $history['value']; break; } if ($item['valuemapid'] > 0) { $value = applyValueMap($value, $item['valuemapid']); } $class = $this->screenitem['style'] ? null : 'pre'; $table->addRow(array(zbx_date2str(DATE_TIME_FORMAT_SECONDS, $history['clock']), new CCol($value, $class))); } return $this->getOutput($table); }
function make_acktab_by_eventid($eventid) { $table = new CTableInfo(); $table->SetHeader(array(S_TIME, S_USER, S_COMMENTS)); $acks = get_acknowledges_by_eventid($eventid); while ($ack = DBfetch($acks)) { //$users = CUser::get(array('userids' => $ack['userid'], 'output' => API_OUTPUT_EXTEND)); //$user = reset($users); $table->addRow(array(zbx_date2str(S_ACKNOWINC_BY_EVENTS_DATE_FORMAT, $ack['clock']), $ack['alias'], new CCol(zbx_nl2br($ack['message']), 'wraptext'))); } return $table; }
public function _getContent($refresh = false) { $table = new CTableInfo(_('No Login data found')); $table->setHeader(array(_('User'), _('System'))); $data = array(); $db = mysql_connect($this->config['server'], $this->config['user'], $this->config['password']); $sql = 'SELECT DISTINCT username, GROUP_CONCAT(DISTINCT address SEPARATOR "\\n") as connected_to FROM logs.auth_log WHERE address <> "-" AND NOT username IN ("ANONYMOUS LOGON") AND (current_timestamp-ts_last)<900 GROUP BY username ORDER BY username;'; $result = mysql_query($sql, $db); if (mysql_num_rows($result) == 0) { return $table; } while ($row = mysql_fetch_assoc($result)) { $table->addRow(array($row['username'], new CObject(str_replace("\n", "<br/>", $row['connected_to'])))); } return $table; }
/** * Process screen. * * @return CDiv (screen inside container) */ public function get() { $options = array('monitored' => true, 'value' => array(TRIGGER_VALUE_TRUE, TRIGGER_VALUE_FALSE), 'triggerLimit' => $this->screenitem['elements'], 'eventLimit' => $this->screenitem['elements']); $item = new CTableInfo(_('No events found.')); $item->setHeader(array(_('Time'), is_show_all_nodes() ? _('Node') : null, _('Host'), _('Description'), _('Value'), _('Severity'))); $events = getLastEvents($options); foreach ($events as $event) { $trigger = $event['trigger']; $host = $event['host']; $statusSpan = new CSpan(trigger_value2str($event['value'])); // add colors and blinking to span depending on configuration and trigger parameters addTriggerValueStyle($statusSpan, $event['value'], $event['clock'], $event['acknowledged']); $item->addRow(array(zbx_date2str(_('d M Y H:i:s'), $event['clock']), get_node_name_by_elid($event['objectid']), $host['name'], new CLink($trigger['description'], 'tr_events.php?triggerid=' . $event['objectid'] . '&eventid=' . $event['eventid']), $statusSpan, getSeverityCell($trigger['priority']))); } return $this->getOutput($item); }
public function _getContent($refresh = false) { $table = new CTableInfo(_('No eventlog data found')); $table->setHeader(array(_('System'), _('Notifications'))); $data = array(); $db = mysql_connect($this->config['server'], $this->config['user'], $this->config['password']); $sql = 'SELECT host, priority, COUNT(priority) as eventCount FROM logs.logs GROUP BY host, priority;'; $result = mysql_query($sql, $db); if (mysql_num_rows($result) == 0) { return $table; } $table = new CTableInfo(_('No eventlog data found')); $systems = array(); $headers = array(); $pMerge = array('info' => 'Notice', 'notice' => 'Notice', 'warn' => 'Warning', 'warning' => 'Warning', 'err' => 'Error', 'error' => 'Error', 'crit' => 'Critical', 'critical' => 'Critical'); foreach ($pMerge as $key => $value) { $headers[$value] = $value; } while ($row = mysql_fetch_assoc($result)) { if (!isset($systems[$row['host']])) { $systems[$row['host']] = array(); } if (isset($pMerge[$row['priority']])) { $row['priority'] = $pMerge[$row['priority']]; } $systems[$row['host']][$row['priority']] = $row['eventCount']; $headers[$row['priority']] = $row['priority']; } $headersCompile = array(_("Host")); foreach ($headers as $value) { $headersCompile[] = _($value); } $table->setHeader($headersCompile); foreach ($systems as $systemName => $eventData) { $systemData = array(new CLink($systemName, '/zabbix/eventlog.php?server=' . $systemName)); foreach ($headers as $value) { if (isset($eventData[$value])) { $systemData[] = _($eventData[$value]); } else { $systemData[] = _(""); } } $table->addRow($systemData); } return $table; }
public function _getContent($refresh = false) { if (!isset($this->config['sql'])) { return "SQL not set"; } $table = new CTableInfo($this->emptyText); $resultSet = DBselect($this->config['sql']); $result = DbFetchArray($resultSet); if (!empty($this->columns)) { $headers = array(); foreach ($this->columns as $column) { $headers[] = !empty($column['name']) ? $column['name'] : $column['field']; } } else { if (isset($result[0])) { foreach ($result[0] as $key => $value) { $headers[] = $key; $column = array('eval' => false, 'evalClass' => false, 'class' => null, 'width' => null, 'name' => $key, 'value' => $key); $this->columns[] = $column; } } else { $headers[] = "Empty Table"; } } if ($this->headers) { $table->setHeader($headers); } $index = 0; foreach ($result as $row) { $row['index'] = $index++; $crow = new CRow(null, $this->getRowClass($row)); foreach ($this->columns as $column) { $cell = new CCol($this->getValue($column, $row), $this->getClass($column, $row)); $crow->addItem($cell); } $table->addRow($crow); } return $table; }
/** * Process screen. * * @return CDiv (screen inside container) */ public function get() { $total = 0; // fetch accessible host ids $hosts = API::Host()->get(['output' => ['hostid'], 'preservekeys' => true]); $hostids = array_keys($hosts); if ($this->screenitem['resourceid'] != 0) { $cond_from = ',hosts_groups hg'; $cond_where = ' AND hg.hostid=h.hostid AND hg.groupid=' . zbx_dbstr($this->screenitem['resourceid']); } else { $cond_from = ''; $cond_where = ''; } $db_host_cnt = DBselect('SELECT COUNT(DISTINCT h.hostid) AS cnt' . ' FROM hosts h' . $cond_from . ' WHERE h.available=' . HOST_AVAILABLE_TRUE . ' AND h.status IN (' . HOST_STATUS_MONITORED . ',' . HOST_STATUS_NOT_MONITORED . ')' . ' AND ' . dbConditionInt('h.hostid', $hostids) . $cond_where); $host_cnt = DBfetch($db_host_cnt); $avail = $host_cnt['cnt']; $total += $host_cnt['cnt']; $db_host_cnt = DBselect('SELECT COUNT(DISTINCT h.hostid) AS cnt' . ' FROM hosts h' . $cond_from . ' WHERE h.available=' . HOST_AVAILABLE_FALSE . ' AND h.status IN (' . HOST_STATUS_MONITORED . ',' . HOST_STATUS_NOT_MONITORED . ')' . ' AND ' . dbConditionInt('h.hostid', $hostids) . $cond_where); $host_cnt = DBfetch($db_host_cnt); $notav = $host_cnt['cnt']; $total += $host_cnt['cnt']; $db_host_cnt = DBselect('SELECT COUNT(DISTINCT h.hostid) AS cnt' . ' FROM hosts h' . $cond_from . ' WHERE h.available=' . HOST_AVAILABLE_UNKNOWN . ' AND h.status IN (' . HOST_STATUS_MONITORED . ',' . HOST_STATUS_NOT_MONITORED . ')' . ' AND ' . dbConditionInt('h.hostid', $hostids) . $cond_where); $host_cnt = DBfetch($db_host_cnt); $uncn = $host_cnt['cnt']; $total += $host_cnt['cnt']; $avail = (new CCol($avail . ' ' . _('Available')))->addClass(ZBX_STYLE_GREEN); $notav = (new CCol($notav . ' ' . _('Not available')))->addClass(ZBX_STYLE_RED); $uncn = (new CCol($uncn . ' ' . _('Unknown')))->addClass(ZBX_STYLE_GREY); $total = new CCol($total . ' ' . _('Total')); $header = (new CDiv([new CTag('h4', true, _('Hosts info'))]))->addClass(ZBX_STYLE_DASHBRD_WIDGET_HEAD); if ($this->screenitem['resourceid'] != 0) { $groups = API::HostGroup()->get(['output' => ['name'], 'groupids' => [$this->screenitem['resourceid']]]); $header->addItem((new CList())->addItem([_('Group'), ':', SPACE, $groups[0]['name']])); } $table = new CTableInfo(); if ($this->screenitem['style'] == STYLE_HORIZONTAL) { $table->addRow([$avail, $notav, $uncn, $total]); } else { $table->addRow($avail); $table->addRow($notav); $table->addRow($uncn); $table->addRow($total); } $footer = (new CList())->addItem(_s('Updated: %s', zbx_date2str(TIME_FORMAT_SECONDS)))->addClass(ZBX_STYLE_DASHBRD_WIDGET_FOOT); return $this->getOutput(new CUiWidget(uniqid(), [$header, $table, $footer])); }
/** * Process screen. * * @return CDiv (screen inside container) */ public function get() { $status = get_status(); $server = $status['zabbix_server'] == _('Yes') ? (new CSpan(_('running')))->addClass(ZBX_STYLE_GREEN) : (new CSpan(_('not running')))->addClass(ZBX_STYLE_RED); $user_link = CWebUser::$data['alias']; if (!CWebUser::isGuest()) { $user_link = new CLink($user_link, 'profile.php'); } $server_link = _('Zabbix server'); if (CWebUser::$data['type'] == USER_TYPE_SUPER_ADMIN) { $server_link = new CLink($server_link, 'zabbix.php?action=report.status'); } $table = new CTableInfo(); $table->addRow(_('Users (online)') . NAME_DELIMITER . $status['users_count'] . '(' . $status['users_online'] . ')'); $table->addRow(new CCol([_('Logged in as'), SPACE, $user_link])); $table->addRow(new CCol([$server_link, SPACE, _('is'), SPACE, $server])); $table->addRow(new CCol([_('Hosts (m/n/t)') . NAME_DELIMITER . $status['hosts_count'] . '(', (new CSpan($status['hosts_count_monitored']))->addClass(ZBX_STYLE_GREEN), '/', (new CSpan($status['hosts_count_not_monitored']))->addClass(ZBX_STYLE_RED), '/', (new CSpan($status['hosts_count_template']))->addClass(ZBX_STYLE_GREY), ')'])); $table->addRow(new CCol([_('Items (m/d/n)') . NAME_DELIMITER . $status['items_count'] . '(', (new CSpan($status['items_count_monitored']))->addClass(ZBX_STYLE_GREEN), '/', (new CSpan($status['items_count_disabled']))->addClass(ZBX_STYLE_RED), '/', (new CSpan($status['items_count_not_supported']))->addClass(ZBX_STYLE_GREY), ')'])); $table->addRow(new CCol([_('Triggers (e/d)[p/o]') . NAME_DELIMITER . $status['triggers_count'] . '(' . $status['triggers_count_enabled'] . '/' . $status['triggers_count_disabled'] . ')[', (new CSpan($status['triggers_count_on']))->addClass(ZBX_STYLE_GREEN), '/', (new CSpan($status['triggers_count_off']))->addClass(ZBX_STYLE_RED), ']'])); $footer = (new CList())->addItem(_s('Updated: %s', zbx_date2str(TIME_FORMAT_SECONDS)))->addClass(ZBX_STYLE_DASHBRD_WIDGET_FOOT); return $this->getOutput((new CUiWidget(uniqid(), [$table, $footer]))->setHeader(_('Zabbix server info'))); }
** You should have received a copy of the GNU General Public License ** along with this program; if not, write to the Free Software ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ $mediaTypeWidget = new CWidget(); // create new media type button $createForm = new CForm('get'); $createForm->addItem(new CSubmit('form', _('Create media type'))); $mediaTypeWidget->addPageHeader(_('CONFIGURATION OF MEDIA TYPES'), $createForm); $mediaTypeWidget->addHeader(_('Media types')); $mediaTypeWidget->addHeaderRowNumber(); // create form $mediaTypeForm = new CForm(); $mediaTypeForm->setName('mediaTypesForm'); // create table $mediaTypeTable = new CTableInfo(_('No media types found.')); $mediaTypeTable->setHeader(array(new CCheckBox('all_media_types', null, "checkAll('" . $mediaTypeForm->getName() . "', 'all_media_types', 'mediatypeids');"), $this->data['displayNodes'] ? _('Node') : null, make_sorting_header(_('Name'), 'description'), make_sorting_header(_('Type'), 'type'), _('Status'), _('Used in actions'), _('Details'))); foreach ($this->data['mediatypes'] as $mediaType) { switch ($mediaType['typeid']) { case MEDIA_TYPE_EMAIL: $details = _('SMTP server') . NAME_DELIMITER . '"' . $mediaType['smtp_server'] . '", ' . _('SMTP helo') . NAME_DELIMITER . '"' . $mediaType['smtp_helo'] . '", ' . _('SMTP email') . NAME_DELIMITER . '"' . $mediaType['smtp_email'] . '"'; break; case MEDIA_TYPE_EXEC: $details = _('Script name') . NAME_DELIMITER . '"' . $mediaType['exec_path'] . '"'; break; case MEDIA_TYPE_SMS: $details = _('GSM modem') . NAME_DELIMITER . '"' . $mediaType['gsm_modem'] . '"'; break; case MEDIA_TYPE_JABBER: $details = _('Jabber identifier') . NAME_DELIMITER . '"' . $mediaType['username'] . '"'; break;
$usersWidget->addPageHeader(_('CONFIGURATION OF USERS'), $createForm); // append form header to widget $userGroupListForm = new CForm('get'); $userGroupComboBox = new CComboBox('filter_usrgrpid', $_REQUEST['filter_usrgrpid'], 'submit()'); $userGroupComboBox->addItem(0, _('All')); foreach ($this->data['userGroups'] as $userGroup) { $userGroupComboBox->addItem($userGroup['usrgrpid'], $userGroup['name']); } $userGroupListForm->addItem(array(_('User group') . SPACE, $userGroupComboBox)); $usersWidget->addHeader(_('Users'), $userGroupListForm); $usersWidget->addHeaderRowNumber(); // create form $usersForm = new CForm(); $usersForm->setName('userForm'); // create users table $usersTable = new CTableInfo(_('No users found.')); $usersTable->setHeader(array(new CCheckBox('all_users', null, "checkAll('" . $usersForm->getName() . "', 'all_users', 'group_userid');"), make_sorting_header(_('Alias'), 'alias', $this->data['sort'], $this->data['sortorder']), make_sorting_header(_x('Name', 'user first name'), 'name', $this->data['sort'], $this->data['sortorder']), make_sorting_header(_('Surname'), 'surname', $this->data['sort'], $this->data['sortorder']), make_sorting_header(_('User type'), 'type', $this->data['sort'], $this->data['sortorder']), _('Groups'), _('Is online?'), _('Login'), _('Frontend access'), _('Debug mode'), _('Status'))); foreach ($this->data['users'] as $user) { $userId = $user['userid']; $session = $this->data['usersSessions'][$userId]; // online time if ($session['lastaccess']) { $onlineTime = $user['autologout'] == 0 || ZBX_USER_ONLINE_TIME < $user['autologout'] ? ZBX_USER_ONLINE_TIME : $user['autologout']; $online = $session['lastaccess'] + $onlineTime >= time() ? new CCol(_('Yes') . ' (' . zbx_date2str(DATE_TIME_FORMAT_SECONDS, $session['lastaccess']) . ')', 'enabled') : new CCol(_('No') . ' (' . zbx_date2str(DATE_TIME_FORMAT_SECONDS, $session['lastaccess']) . ')', 'disabled'); } else { $online = new CCol(_('No'), 'disabled'); } // blocked $blocked = $user['attempt_failed'] >= ZBX_LOGIN_ATTEMPTS ? new CLink(_('Blocked'), 'users.php?action=user.massunblock&group_userid[]=' . $userId, 'on') : new CSpan(_('Ok'), 'green'); // user groups order_result($user['usrgrps'], 'name');
$createForm = new CForm('get'); $createForm->cleanItems(); $createForm->addVar('parent_discoveryid', $this->data['parent_discoveryid']); $createForm->addItem(new CSubmit('form', _('Create item prototype'))); $itemsWidget->addPageHeader(_('CONFIGURATION OF ITEM PROTOTYPES'), $createForm); // header $itemsWidget->addHeader(array(_('Item prototypes of') . SPACE, new CSpan($this->data['discovery_rule']['name'], 'parent-discovery'))); $itemsWidget->addHeaderRowNumber(); $itemsWidget->addItem(get_header_host_table('items', $this->data['hostid'], $this->data['parent_discoveryid'])); // create form $itemForm = new CForm(); $itemForm->setName('items'); $itemForm->addVar('hostid', $this->data['hostid']); $itemForm->addVar('parent_discoveryid', $this->data['parent_discoveryid']); // create table $itemTable = new CTableInfo(_('No item prototypes found.')); $sortLink = new CUrl(); $sortLink->setArgument('parent_discoveryid', $this->data['parent_discoveryid']); $sortLink = $sortLink->getUrl(); $itemTable->setHeader(array(new CCheckBox('all_items', null, "checkAll('" . $itemForm->getName() . "', 'all_items', 'group_itemid');"), make_sorting_header(_('Name'), 'name', $sortLink), make_sorting_header(_('Key'), 'key_', $sortLink), make_sorting_header(_('Interval'), 'delay', $sortLink), make_sorting_header(_('History'), 'history', $sortLink), make_sorting_header(_('Trends'), 'trends', $sortLink), make_sorting_header(_('Type'), 'type', $sortLink), _('Applications'), make_sorting_header(_('Status'), 'status', $sortLink))); foreach ($this->data['items'] as $item) { $description = array(); if (!empty($item['templateid'])) { $template_host = get_realhost_by_itemid($item['templateid']); $templateDiscoveryRuleId = get_realrule_by_itemid_and_hostid($this->data['parent_discoveryid'], $template_host['hostid']); $description[] = new CLink($template_host['name'], '?parent_discoveryid=' . $templateDiscoveryRuleId, 'unknown'); $description[] = NAME_DELIMITER; } $description[] = new CLink($item['name_expanded'], '?form=update&itemid=' . $item['itemid'] . '&parent_discoveryid=' . $this->data['parent_discoveryid']); $status = new CLink(itemIndicator($item['status']), '?group_itemid=' . $item['itemid'] . '&parent_discoveryid=' . $this->data['parent_discoveryid'] . '&go=' . ($item['status'] ? 'activate' : 'disable'), itemIndicatorStyle($item['status'])); if (!empty($item['applications'])) {
unset($_REQUEST["form"]); } } $form = new CForm(); $form->SetMethod('get'); $form->AddItem(new CButton("form", S_CREATE_MEDIA_TYPE)); $row_count = 0; $numrows = new CSpan(null, 'info'); $numrows->addOption('name', 'numrows'); $header = get_table_header(array(S_CONFIGURATION_OF_MEDIA_TYPES_BIG, new CSpan(SPACE . SPACE . '|' . SPACE . SPACE, 'divider'), S_FOUND . ': ', $numrows)); show_table_header($header, $form); if (isset($_REQUEST["form"])) { echo SBR; insert_media_type_form(); } else { $table = new CTableInfo(S_NO_MEDIA_TYPES_DEFINED); $table->setHeader(array(make_sorting_link(S_TYPE, 'mt.type'), make_sorting_link(S_DESCRIPTION, 'mt.description'), S_DETAILS)); $result = DBselect('SELECT mt.* ' . ' FROM media_type mt' . ' WHERE ' . DBin_node('mt.mediatypeid') . order_by('mt.type,mt.description')); while ($row = DBfetch($result)) { switch ($row['type']) { case MEDIA_TYPE_EMAIL: $details = S_SMTP_SERVER . ": '" . $row['smtp_server'] . "', " . S_SMTP_HELO . ": '" . $row['smtp_helo'] . "', " . S_SMTP_EMAIL . ": '" . $row['smtp_email'] . "'"; break; case MEDIA_TYPE_EXEC: $details = S_SCRIPT_NAME . ": '" . $row['exec_path'] . "'"; break; case MEDIA_TYPE_SMS: $details = S_GSM_MODEM . ": '" . $row['gsm_modem'] . "'"; break; case MEDIA_TYPE_JABBER: $details = S_JABBER_IDENTIFIER . ": '" . $row['username'] . "'";
$_REQUEST["show"] = get_request("show", 0); $form = new CForm(); $form->SetMethod('get'); $cmbMode = new CComboBox("show", $_REQUEST["show"], "submit();"); $cmbMode->AddItem(0, S_OVERVIEW); $cmbMode->AddItem(1, S_OVERVIEW_BY_PROXY); $cmbMode->AddItem(2, S_DETAILS); $form->AddItem($cmbMode); show_table_header(S_QUEUE_OF_ITEMS_TO_BE_UPDATED_BIG, $form); ?> <?php $now = time(); $item_types = array(ITEM_TYPE_ZABBIX, ITEM_TYPE_ZABBIX_ACTIVE, ITEM_TYPE_SNMPV1, ITEM_TYPE_SNMPV2C, ITEM_TYPE_SNMPV3, ITEM_TYPE_SIMPLE, ITEM_TYPE_INTERNAL, ITEM_TYPE_AGGREGATE, ITEM_TYPE_EXTERNAL); $result = DBselect('SELECT i.itemid,i.nextcheck,i.description,i.key_,i.type,h.host,h.hostid,h.proxy_hostid ' . ' FROM items i,hosts h ' . ' WHERE i.status=' . ITEM_STATUS_ACTIVE . ' AND i.type in (' . implode(',', $item_types) . ') ' . ' AND ((h.status=' . HOST_STATUS_MONITORED . ' AND h.available != ' . HOST_AVAILABLE_FALSE . ') ' . ' OR (h.status=' . HOST_STATUS_MONITORED . ' AND h.available=' . HOST_AVAILABLE_FALSE . ' AND h.disable_until<=' . $now . ')) ' . ' AND i.hostid=h.hostid ' . ' AND i.nextcheck + 5 <' . $now . ' AND i.key_ NOT IN (' . zbx_dbstr('status') . ',' . zbx_dbstr('icmpping') . ',' . zbx_dbstr('icmppingsec') . ',' . zbx_dbstr('zabbix[log]') . ') ' . ' AND i.value_type not in (' . ITEM_VALUE_TYPE_LOG . ') ' . ' AND ' . DBcondition('h.hostid', $available_hosts) . ' AND ' . DBin_node('h.hostid', get_current_nodeid()) . ' ORDER BY i.nextcheck,h.host,i.description,i.key_'); $table = new CTableInfo(S_THE_QUEUE_IS_EMPTY); if ($_REQUEST["show"] == 0) { foreach ($item_types as $type) { $sec_10[$type] = 0; $sec_30[$type] = 0; $sec_60[$type] = 0; $sec_300[$type] = 0; $sec_600[$type] = 0; $sec_rest[$type] = 0; } while ($row = DBfetch($result)) { if ($now - $row["nextcheck"] <= 10) { $sec_10[$row["type"]]++; } else { if ($now - $row["nextcheck"] <= 30) { $sec_30[$row["type"]]++;
$form->addVar('serviceid', $_REQUEST['serviceid']); $cmbPeriod = new CComboBox('period', $period, 'submit();'); $cmbPeriod->addItem('daily', _('Daily')); $cmbPeriod->addItem('weekly', _('Weekly')); $cmbPeriod->addItem('monthly', _('Monthly')); $cmbPeriod->addItem('yearly', _('Yearly')); $form->addItem(array(SPACE . _('Period') . SPACE, $cmbPeriod)); if ($period != 'yearly') { $cmbYear = new CComboBox('year', $year, 'submit();'); for ($y = date('Y') - YEAR_LEFT_SHIFT; $y <= date('Y'); $y++) { $cmbYear->addItem($y, $y); } $form->addItem(array(SPACE . _('Year') . SPACE, $cmbYear)); } show_table_header(array(_('IT SERVICES AVAILABILITY REPORT'), SPACE . '"', new CLink($service['name'], 'srv_status.php?showgraph=1&serviceid=' . $service['serviceid']), '"'), $form); $table = new CTableInfo(); $header = array(_('Ok'), _('Problems'), _('Downtime'), _('SLA'), _('Acceptable SLA')); switch ($period) { case 'yearly': $from = date('Y') - YEAR_LEFT_SHIFT; $to = date('Y'); array_unshift($header, new CCol(_('Year'), 'center')); function get_time($y) { return mktime(0, 0, 0, 1, 1, $y); } function format_time($t) { return zbx_date2str(_x('Y', DATE_FORMAT_CONTEXT), $t); } function format_time2($t)
function make_discovery_status() { $drules = array(); $db_drules = DBselect('select distinct * from drules where ' . DBin_node('druleid') . ' order by name'); while ($drule_data = DBfetch($db_drules)) { $drules[$drule_data['druleid']] = $drule_data; $drules[$drule_data['druleid']]['up'] = 0; $drules[$drule_data['druleid']]['down'] = 0; } $db_dhosts = DBselect('SELECT d.* ' . ' FROM dhosts d ' . ' ORDER BY d.dhostid,d.status,d.ip'); $services = array(); $discovery_info = array(); while ($drule_data = DBfetch($db_dhosts)) { if (DHOST_STATUS_DISABLED == $drule_data['status']) { $drules[$drule_data['druleid']]['down']++; } else { $drules[$drule_data['druleid']]['up']++; } } $header = array(is_show_all_nodes() ? new CCol(S_NODE, 'center') : null, new CCol(S_DISCOVERY_RULE, 'center'), new CCol(S_UP), new CCol(S_DOWN)); $table = new CTableInfo(); $table->setHeader($header, 'vertical_header'); foreach ($drules as $druleid => $drule) { $table->addRow(array(get_node_name_by_elid($druleid), new CLink(get_node_name_by_elid($drule['druleid']) . $drule['name'], 'discovery.php?druleid=' . $druleid), new CSpan($drule['up'], 'green'), new CSpan($drule['down'], $drule['down'] > 0 ? 'red' : 'green'))); } $table->setFooter(new CCol(S_UPDATED . ': ' . date("H:i:s", time()))); return $table; }
$fields = array('period' => array(T_ZBX_STR, O_OPT, P_SYS | P_NZERO, IN('"day","week","month","year"'), NULL)); check_fields($fields); $rprt_wdgt = new CWidget(); $_REQUEST['period'] = getRequest('period', 'day'); $admin_links = CWebUser::$data['type'] == USER_TYPE_ZABBIX_ADMIN || CWebUser::$data['type'] == USER_TYPE_SUPER_ADMIN; $form = new CForm('get'); $cmbPeriod = new CComboBox('period', $_REQUEST['period'], 'submit()'); $cmbPeriod->addItem('day', _('Day')); $cmbPeriod->addItem('week', _('Week')); $cmbPeriod->addItem('month', _('Month')); $cmbPeriod->addItem('year', _('Year')); $form->addItem($cmbPeriod); $rprt_wdgt->addPageHeader(_('MOST BUSY TRIGGERS TOP 100')); $rprt_wdgt->addHeader(_('Report'), $form); $rprt_wdgt->addItem(BR()); $table = new CTableInfo(_('No triggers found.')); $table->setHeader(array(_('Host'), _('Trigger'), _('Severity'), _('Number of status changes'))); switch ($_REQUEST['period']) { case 'week': $time_dif = SEC_PER_WEEK; break; case 'month': $time_dif = SEC_PER_MONTH; break; case 'year': $time_dif = SEC_PER_YEAR; break; case 'day': default: $time_dif = SEC_PER_DAY; break;
$exactComboBox->addItem('1', _('exactly')); $filterTable->addRow(array(array(array(bold(_('Field')), SPACE, $inventoryFieldsComboBox), array($exactComboBox, new CTextBox('filter_field_value', $this->data['filterFieldValue'], 20)))), 'host-inventories'); $filter = new CSubmit('filter_set', _('Filter')); $filter->useJQueryStyle('main'); $reset = new CSubmit('filter_rst', _('Reset')); $reset->useJQueryStyle(); $divButtons = new CDiv(array($filter, SPACE, $reset)); $divButtons->setAttribute('style', 'padding: 4px 0px;'); $footerCol = new CCol($divButtons, 'controls'); $filterTable->addRow($footerCol); $filterForm = new CForm('get'); $filterForm->setAttribute('name', 'zbx_filter'); $filterForm->setAttribute('id', 'zbx_filter'); $filterForm->addItem($filterTable); $hostInventoryWidget->addFlicker($filterForm, CProfile::get('web.hostinventories.filter.state', 0)); $hostInventoryWidget->addHeaderRowNumber(); $table = new CTableInfo(_('No hosts found.')); $table->setHeader(array(make_sorting_header(_('Host'), 'name', $this->data['sort'], $this->data['sortorder']), _('Group'), make_sorting_header(_('Name'), 'pr_name', $this->data['sort'], $this->data['sortorder']), make_sorting_header(_('Type'), 'pr_type', $this->data['sort'], $this->data['sortorder']), make_sorting_header(_('OS'), 'pr_os', $this->data['sort'], $this->data['sortorder']), make_sorting_header(_('Serial number A'), 'pr_serialno_a', $this->data['sort'], $this->data['sortorder']), make_sorting_header(_('Tag'), 'pr_tag', $this->data['sort'], $this->data['sortorder']), make_sorting_header(_('MAC address A'), 'pr_macaddress_a', $this->data['sort'], $this->data['sortorder']))); foreach ($this->data['hosts'] as $host) { $hostGroups = array(); foreach ($host['groups'] as $group) { $hostGroups[] = $group['name']; } natsort($hostGroups); $hostGroups = implode(', ', $hostGroups); $row = array(new CLink($host['name'], '?hostid=' . $host['hostid'] . url_param('groupid'), $host['status'] == HOST_STATUS_NOT_MONITORED ? 'not-monitored' : ''), $hostGroups, zbx_str2links($host['inventory']['name']), zbx_str2links($host['inventory']['type']), zbx_str2links($host['inventory']['os']), zbx_str2links($host['inventory']['serialno_a']), zbx_str2links($host['inventory']['tag']), zbx_str2links($host['inventory']['macaddress_a'])); $table->addRow($row); } $table = array($this->data['paging'], $table, $this->data['paging']); $hostInventoryWidget->addItem($table); return $hostInventoryWidget;
** along with this program; if not, write to the Free Software ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ $discoveryWidget = new CWidget(); // create new discovery rule button $createForm = new CForm('get'); $createForm->cleanItems(); $createForm->addItem(new CSubmit('form', _('Create discovery rule'))); $discoveryWidget->addPageHeader(_('CONFIGURATION OF DISCOVERY RULES'), $createForm); $discoveryWidget->addHeader(_('Discovery rules')); $discoveryWidget->addHeaderRowNumber(); // create form $discoveryForm = new CForm(); $discoveryForm->setName('druleForm'); // create table $discoveryTable = new CTableInfo(_('No discovery rules found.')); $discoveryTable->setHeader(array(new CCheckBox('all_drules', null, "checkAll('" . $discoveryForm->getName() . "', 'all_drules', 'g_druleid');"), make_sorting_header(_('Name'), 'name', $this->data['sort'], $this->data['sortorder']), _('IP range'), _('Delay'), _('Checks'), _('Status'))); foreach ($data['drules'] as $drule) { array_push($drule['description'], new CLink($drule['name'], '?form=update&druleid=' . $drule['druleid'])); $status = new CCol(new CLink(discovery_status2str($drule['status']), '?g_druleid[]=' . $drule['druleid'] . '&action=' . ($drule['status'] == DRULE_STATUS_ACTIVE ? 'drule.massdisable' : 'drule.massenable'), discovery_status2style($drule['status']))); $discoveryTable->addRow(array(new CCheckBox('g_druleid[' . $drule['druleid'] . ']', null, null, $drule['druleid']), $drule['description'], $drule['iprange'], $drule['delay'], !empty($drule['checks']) ? implode(', ', $drule['checks']) : '', $status)); } // create go buttons $goComboBox = new CComboBox('action'); $goOption = new CComboItem('drule.massenable', _('Enable selected')); $goOption->setAttribute('confirm', _('Enable selected discovery rules?')); $goComboBox->addItem($goOption); $goOption = new CComboItem('drule.massdisable', _('Disable selected')); $goOption->setAttribute('confirm', _('Disable selected discovery rules?')); $goComboBox->addItem($goOption); $goOption = new CComboItem('drule.massdelete', _('Delete selected'));
// create new item button $createForm = new CForm('get'); $createForm->cleanItems(); $createForm->addVar('parent_discoveryid', $this->data['parent_discoveryid']); $createForm->addItem(new CSubmit('form', _('Create host prototype'))); $itemsWidget->addPageHeader(_('CONFIGURATION OF HOST PROTOTYPES'), $createForm); // header $itemsWidget->addHeader(array(_('Host prototypes of') . SPACE, new CSpan($this->data['discovery_rule']['name'], 'parent-discovery'))); $itemsWidget->addHeaderRowNumber(); $itemsWidget->addItem(get_header_host_table('hosts', $discoveryRule['hostid'], $this->data['parent_discoveryid'])); // create form $itemForm = new CForm(); $itemForm->setName('hosts'); $itemForm->addVar('parent_discoveryid', $this->data['parent_discoveryid']); // create table $hostTable = new CTableInfo(_('No host prototypes found.')); $sortLink = new CUrl(); $sortLink->setArgument('parent_discoveryid', $this->data['parent_discoveryid']); $sortLink = $sortLink->getUrl(); $hostTable->setHeader(array(new CCheckBox('all_hosts', null, "checkAll('" . $itemForm->getName() . "', 'all_hosts', 'group_hostid');"), make_sorting_header(_('Name'), 'name', $sortLink), _('Templates'), make_sorting_header(_('Status'), 'status', $sortLink))); foreach ($this->data['hostPrototypes'] as $hostPrototype) { // name $name = array(); if ($hostPrototype['templateid']) { $sourceTemplate = $hostPrototype['sourceTemplate']; $name[] = new CLink($sourceTemplate['name'], '?parent_discoveryid=' . $hostPrototype['sourceDiscoveryRuleId'], 'unknown'); $name[] = NAME_DELIMITER; } $name[] = new CLink($hostPrototype['name'], '?form=update&parent_discoveryid=' . $discoveryRule['itemid'] . '&hostid=' . $hostPrototype['hostid']); // template list if (empty($hostPrototype['templates'])) {
** ** You should have received a copy of the GNU General Public License ** along with this program; if not, write to the Free Software ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ zbx_add_post_js('jqBlink.blink();'); $overviewWidget = new CWidget(); $typeComboBox = new CComboBox('type', $this->data['type'], 'submit()'); $typeComboBox->addItem(SHOW_TRIGGERS, _('Triggers')); $typeComboBox->addItem(SHOW_DATA, _('Data')); $headerForm = new CForm('get'); $headerForm->addItem(array(_('Group'), SPACE, $this->data['pageFilter']->getGroupsCB(true))); $headerForm->addItem(array(SPACE, _('Application'), SPACE, $this->data['pageFilter']->getApplicationsCB(true))); $headerForm->addItem(array(SPACE, _('Type'), SPACE, $typeComboBox)); $overviewWidget->addHeader(_('Overview'), $headerForm); $hintTable = new CTableInfo(); $hintTable->setAttribute('style', 'width: 200px'); if ($this->data['type'] == SHOW_TRIGGERS) { $hintTable->addRow(array(new CCol(SPACE, 'normal'), _('OK'))); } for ($i = 0; $i < TRIGGER_SEVERITY_COUNT; $i++) { $hintTable->addRow(array(getSeverityCell($i), _('PROBLEM'))); } $config = select_config(); if ($this->data['type'] == SHOW_TRIGGERS) { // blinking preview in help popup (only if blinking is enabled) if ($config['blink_period'] > 0) { $row = new CRow(null); $row->addItem(new CCol(SPACE, 'normal')); for ($i = 0; $i < TRIGGER_SEVERITY_COUNT; $i++) { $row->addItem(new CCol(SPACE, getSeverityStyle($i)));
/** * Generate table for dashboard triggers popup. * * @see make_system_status * * @param array $triggers * @param array $ackParams * @param array $actions * * @return CTableInfo */ function makeTriggersPopup(array $triggers, array $ackParams, array $actions) { $config = select_config(); $popupTable = new CTableInfo(); $popupTable->setAttribute('style', 'width: 400px;'); $popupTable->setHeader(array(is_show_all_nodes() ? _('Node') : null, _('Host'), _('Issue'), _('Age'), _('Info'), $config['event_ack_enable'] ? _('Ack') : null, _('Actions'))); CArrayHelper::sort($triggers, array(array('field' => 'lastchange', 'order' => ZBX_SORT_DOWN))); foreach ($triggers as $trigger) { // unknown triggers $unknown = SPACE; if ($trigger['state'] == TRIGGER_STATE_UNKNOWN) { $unknown = new CDiv(SPACE, 'status_icon iconunknown'); $unknown->setHint($trigger['error'], '', 'on'); } // ack if ($config['event_ack_enable']) { $ack = isset($trigger['event']['eventid']) ? getEventAckState($trigger['event'], true, true, $ackParams) : _('No events'); } else { $ack = null; } // action $action = isset($trigger['event']['eventid']) && isset($actions[$trigger['event']['eventid']]) ? $actions[$trigger['event']['eventid']] : _('-'); $popupTable->addRow(array(get_node_name_by_elid($trigger['triggerid']), $trigger['hosts'][0]['name'], getSeverityCell($trigger['priority'], $trigger['description']), zbx_date2age($trigger['lastchange']), $unknown, $ack, $action)); } return $popupTable; }
$inventoryFields = getHostInventories(true); // 'true' means list should be ordered by title $inventoryFieldsComboBox = new CComboBox('groupby', $_REQUEST['groupby'], 'submit()'); $inventoryFieldsComboBox->addItem('', _('not selected')); foreach ($inventoryFields as $inventoryField) { $inventoryFieldsComboBox->addItem($inventoryField['db_field'], $inventoryField['title'], $_REQUEST['groupby'] === $inventoryField['db_field'] ? 'yes' : null); if ($_REQUEST['groupby'] === $inventoryField['db_field']) { $groupFieldTitle = $inventoryField['title']; } } $r_form = new CForm('get'); $r_form->addItem(array(_('Group'), SPACE, $pageFilter->getGroupsCB(true), SPACE)); $r_form->addItem(array(_('Grouping by'), SPACE, $inventoryFieldsComboBox)); $hostinvent_wdgt->addHeader(_('Hosts'), $r_form); $hostinvent_wdgt->addItem(BR()); $table = new CTableInfo(_('No hosts defined.')); $table->setHeader(array(make_sorting_header($groupFieldTitle === '' ? _('Field') : $groupFieldTitle, 'inventory_field'), make_sorting_header(_('Host count'), 'host_count'))); // to show a report, we will need a host group and a field to aggregate if ($pageFilter->groupsSelected && $groupFieldTitle !== '') { $options = array('output' => array('hostid', 'name'), 'selectInventory' => array($_REQUEST['groupby']), 'withInventory' => true); if ($pageFilter->groupid > 0) { $options['groupids'] = $pageFilter->groupid; } $hosts = API::Host()->get($options); // aggregating data by chosen field value $report = array(); foreach ($hosts as $host) { if ($host['inventory'][$_REQUEST['groupby']] !== '') { $lowerValue = zbx_strtolower($host['inventory'][$_REQUEST['groupby']]); if (!isset($report[$lowerValue])) { $report[$lowerValue] = array('inventory_field' => $host['inventory'][$_REQUEST['groupby']], 'host_count' => 1);
validate_sort_and_sortorder('name', ZBX_SORT_DOWN); $options = array('groups' => array('real_hosts' => true, 'with_httptests' => true), 'hosts' => array('with_monitored_items' => true, 'with_httptests' => true), 'hostid' => get_request('hostid', null), 'groupid' => get_request('groupid', null)); $pageFilter = new CPageFilter($options); $_REQUEST['groupid'] = $pageFilter->groupid; $_REQUEST['hostid'] = $pageFilter->hostid; $displayNodes = is_array(get_current_nodeid()) && $pageFilter->groupid == 0 && $pageFilter->hostid == 0; $r_form = new CForm('get'); $r_form->addVar('fullscreen', $_REQUEST['fullscreen']); $r_form->addItem(array(_('Group') . SPACE, $pageFilter->getGroupsCB(true))); $r_form->addItem(array(SPACE . _('Host') . SPACE, $pageFilter->getHostsCB(true))); $httpmon_wdgt = new CWidget(); $httpmon_wdgt->addPageHeader(_('STATUS OF WEB MONITORING'), get_icon('fullscreen', array('fullscreen' => $_REQUEST['fullscreen']))); $httpmon_wdgt->addHeader(_('Web scenarios'), $r_form); $httpmon_wdgt->addHeaderRowNumber(); // TABLE $table = new CTableInfo(_('No web scenarios found.')); $table->SetHeader(array($displayNodes ? _('Node') : null, $_REQUEST['hostid'] == 0 ? make_sorting_header(_('Host'), 'hostname') : null, make_sorting_header(_('Name'), 'name'), _('Number of steps'), _('Last check'), _('Status'))); $paging = null; if ($pageFilter->hostsSelected) { $options = array('output' => array('httptestid'), 'templated' => false, 'filter' => array('status' => HTTPTEST_STATUS_ACTIVE), 'limit' => $config['search_limit'] + 1); if ($pageFilter->hostid > 0) { $options['hostids'] = $pageFilter->hostid; } elseif ($pageFilter->groupid > 0) { $options['groupids'] = $pageFilter->groupid; } $httpTests = API::HttpTest()->get($options); $paging = getPagingLine($httpTests); $httpTests = API::HttpTest()->get(array('httptestids' => zbx_objectValues($httpTests, 'httptestid'), 'preservekeys' => true, 'output' => API_OUTPUT_EXTEND, 'selectHosts' => array('name', 'status'), 'selectSteps' => API_OUTPUT_COUNT)); foreach ($httpTests as &$httpTest) { $httpTest['host'] = reset($httpTest['hosts']); $httpTest['hostname'] = $httpTest['host']['name'];
$filterForm->addRow(S_FILTER_BY_NAME, new CTextBox('txt_select', $_REQUEST['txt_select'], 40)); $filterForm->addItemToBottomRow(new CButton('filter_set', S_FILTER)); $filterForm->addItemToBottomRow(new CButton('filter_rst', S_RESET)); $trigg_wdgt->addFlicker($filterForm, CProfile::get('web.tr_status.filter.state', 0)); /*************** FILTER END ******************/ if ($_REQUEST['fullscreen']) { $triggerInfo = new CTriggersInfo($_REQUEST['groupid'], $_REQUEST['hostid']); $triggerInfo->HideHeader(); $triggerInfo->show(); } $m_form = new CForm('acknow.php'); $m_form->setName('tr_status'); $m_form->addVar('backurl', $page['file']); $admin_links = $USER_DETAILS['type'] == USER_TYPE_ZABBIX_ADMIN || $USER_DETAILS['type'] == USER_TYPE_SUPER_ADMIN; $show_event_col = $config['event_ack_enable'] && $_REQUEST['show_events'] != EVENTS_OPTION_NOEVENT; $table = new CTableInfo(); $switcherName = 'trigger_switchers'; $header_cb = $show_event_col ? new CCheckBox('all_events', false, "checkAll('" . $m_form->GetName() . "','all_events','events');") : new CCheckBox('all_triggers', false, "checkAll('" . $m_form->GetName() . "','all_triggers', 'triggers');"); if ($show_events != EVENTS_OPTION_NOEVENT) { $whow_hide_all = new CDiv(SPACE, 'filterclosed'); $whow_hide_all->setAttribute('id', $switcherName); } else { $whow_hide_all = NULL; } $table->setHeader(array($whow_hide_all, $config['event_ack_enable'] ? $header_cb : null, make_sorting_header(S_SEVERITY, 'priority'), S_STATUS, make_sorting_header(S_LAST_CHANGE, 'lastchange'), S_AGE, $show_event_col ? S_DURATION : NULL, $config['event_ack_enable'] ? S_ACKNOWLEDGED : NULL, is_show_all_nodes() ? S_NODE : null, S_HOST, make_sorting_header(S_NAME, 'description'), S_COMMENTS)); $sortfield = getPageSortField('description'); $sortorder = getPageSortOrder(); $options = array('nodeids' => get_current_nodeid(), 'filter' => array(), 'monitored' => 1, 'output' => API_OUTPUT_EXTEND, 'skipDependent' => 1, 'sortfield' => $sortfield, 'sortorder' => $sortorder, 'limit' => $config['search_limit'] + 1); // Filtering if ($pageFilter->hostsSelected) { if ($pageFilter->hostid > 0) {