summaryrefslogtreecommitdiffstats
path: root/frontends/php/latest.php
diff options
context:
space:
mode:
authorartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-08-05 14:25:48 +0000
committerartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-08-05 14:25:48 +0000
commitd1eb7d75f8caecbc8ca72210e3c6f0bfb9dec6a6 (patch)
treef18f050c04221aa5814641e2cd8f455fb10786d5 /frontends/php/latest.php
parente33e68fccdfdabd17ff8ce5f818dbed7f58e301e (diff)
downloadzabbix-d1eb7d75f8caecbc8ca72210e3c6f0bfb9dec6a6.tar.gz
zabbix-d1eb7d75f8caecbc8ca72210e3c6f0bfb9dec6a6.tar.xz
zabbix-d1eb7d75f8caecbc8ca72210e3c6f0bfb9dec6a6.zip
- [DEV-137] changed trigger values definitions (Artem)
- [DEV-191] latest data reverted to standart refresh (Artem) - [DEV-191] added hats to graphs, screens pages (Artem) git-svn-id: svn://svn.zabbix.com/trunk@5873 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/latest.php')
-rw-r--r--frontends/php/latest.php400
1 files changed, 393 insertions, 7 deletions
diff --git a/frontends/php/latest.php b/frontends/php/latest.php
index fac1e68f..8c2e8dd7 100644
--- a/frontends/php/latest.php
+++ b/frontends/php/latest.php
@@ -26,12 +26,12 @@
$page["title"] = "S_LATEST_VALUES";
$page["file"] = "latest.php";
$page['hist_arg'] = array('groupid','hostid','show','select','open','applicationid');
- $page['scripts'] = array('updater.js');
+// $page['scripts'] = array('updater.js');
$page['type'] = detect_page_type(PAGE_TYPE_HTML);
define('ZBX_PAGE_MAIN_HAT','hat_latest');
- define('ZBX_PAGE_DO_JS_REFRESH', 1);
+// define('ZBX_PAGE_DO_JS_REFRESH', 1);
include_once "include/page_header.php";
?>
@@ -58,27 +58,413 @@ include_once "include/page_header.php";
);
check_fields($fields);
+
+// HEADER REQUEST
+ $_REQUEST['select'] = get_request('select',get_profile('web.latest.filter.select', ''));
+ update_profile('web.latest.filter.select', $_REQUEST['select'], PROFILE_TYPE_STR);
+
+ $options = array('allow_all_hosts','monitored_hosts','with_monitored_items');
+ $_REQUEST['hostid'] = get_request('hostid',get_profile('web.latest.last.hostid', null));
+ if(is_null($_REQUEST['hostid'])){
+ array_push($options,'always_select_first_host');
+
+ $_REQUEST['groupid'] = get_request('groupid',get_profile('web.latest.last.groupid', null));
+ if(is_null($_REQUEST['groupid'])){
+ validate_group(PERM_READ_ONLY,array('allow_all_hosts','monitored_hosts','with_monitored_items','always_select_first_group'),'web.latest.last.groupid');
+ }
+ }
+
+ if(!$ZBX_WITH_SUBNODES) array_push($options,'only_current_node');
+
+ validate_group_with_host(PERM_READ_ONLY,$options,'web.latest.last.groupid','web.latest.last.hostid');
+//----------------
+?>
+<?php
/* AJAX */
if(isset($_REQUEST['favobj'])){
if('hat' == $_REQUEST['favobj']){
update_profile('web.latest.hats.'.$_REQUEST['favid'].'.state',$_REQUEST['state'], PROFILE_TYPE_INT);
}
- if('refresh' == $_REQUEST['favobj']){
+/*
+ else if('refresh' == $_REQUEST['favobj']){
switch($_REQUEST['favid']){
case ZBX_PAGE_MAIN_HAT:
include_once('blocks/latest.page.php');
break;
}
}
+//*/
}
if((PAGE_TYPE_JS == $page['type']) || (PAGE_TYPE_HTML_BLOCK == $page['type'])){
exit();
}
//--------
+ $p_elements = array();
+// Header
+ $r_form = new CForm();
+ $r_form->SetMethod('get');
+
+// $cmbGroup = new CComboBox("groupid",$_REQUEST["groupid"],"javascript: return updater.onetime_update('".ZBX_PAGE_MAIN_HAT."',this.form);");
+// $cmbHosts = new CComboBox("hostid",$_REQUEST["hostid"],"javascript: return updater.onetime_update('".ZBX_PAGE_MAIN_HAT."',this.form);");
+
+ $cmbGroup = new CComboBox('groupid',$_REQUEST['groupid'],'javascript: submit();');
+ $cmbHosts = new CComboBox('hostid',$_REQUEST['hostid'],'javascript: submit();');
+
+ $cmbGroup->AddItem(0,S_ALL_SMALL);
+ $cmbHosts->AddItem(0,S_ALL_SMALL);
+
+ $available_groups= get_accessible_groups_by_user($USER_DETAILS,PERM_READ_LIST);
+ $available_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_LIST,PERM_RES_IDS_ARRAY);
+
+ $result=DBselect('SELECT DISTINCT g.groupid,g.name '.
+ ' FROM groups g, hosts_groups hg, hosts h, items i '.
+ ' WHERE g.groupid IN ('.$available_groups.') '.
+ ' AND hg.groupid=g.groupid '.
+ ' AND h.status='.HOST_STATUS_MONITORED.
+ ' AND h.hostid=i.hostid '.
+ ' AND hg.hostid=h.hostid '.
+ ' AND i.status='.ITEM_STATUS_ACTIVE.
+ ' ORDER BY g.name');
+ while($row=DBfetch($result)){
+ $cmbGroup->AddItem(
+ $row['groupid'],
+ get_node_name_by_elid($row['groupid']).$row['name']
+ );
+ }
+ $r_form->AddItem(array(S_GROUP.SPACE,$cmbGroup));
+
+ if($_REQUEST['groupid'] > 0){
+ $sql='SELECT DISTINCT h.hostid,h.host '.
+ ' FROM hosts h,items i,hosts_groups hg '.
+ ' WHERE h.status='.HOST_STATUS_MONITORED.
+ ' AND h.hostid=i.hostid '.
+ ' AND hg.groupid='.$_REQUEST['groupid'].
+ ' AND hg.hostid=h.hostid'.
+ ' AND i.status='.ITEM_STATUS_ACTIVE.
+ ' AND '.DBcondition('h.hostid',$available_hosts).
+ ' ORDER BY h.host';
+ }
+ else{
+ $sql='SELECT DISTINCT h.hostid,h.host '.
+ ' FROM hosts h,items i '.
+ ' WHERE h.status='.HOST_STATUS_MONITORED.
+ ' AND i.status='.ITEM_STATUS_ACTIVE.
+ ' AND h.hostid=i.hostid'.
+ ' AND '.DBcondition('h.hostid',$available_hosts).
+ ' ORDER BY h.host';
+ }
+
+ $result=DBselect($sql);
+ while($row=DBfetch($result)){
+ $cmbHosts->AddItem(
+ $row['hostid'],
+ get_node_name_by_elid($row['hostid']).$row['host']
+ );
+ }
+
+ $r_form->AddItem(array(SPACE.S_HOST.SPACE,$cmbHosts));
+
+ $l_form = new CForm();
+ $l_form->SetMethod('get');
+
+ $l_form->AddItem(array(S_SHOW_ITEMS_WITH_DESCRIPTION_LIKE, new CTextBox("select",$_REQUEST["select"],20)));
+ $l_form->AddItem(array(SPACE, new CButton("show",S_SHOW,'javascript: submit();')));
+// $l_form->AddItem(array(SPACE, new CButton("show",S_SHOW,"javascript: return updater.onetime_update('".ZBX_PAGE_MAIN_HAT."',this.form);")));
+
+ $p_elements[] = get_table_header($l_form,$r_form);
+//-------------
+
+ validate_sort_and_sortorder('i.description',ZBX_SORT_UP);
+
+ $_REQUEST['groupbyapp'] = get_request('groupbyapp',get_profile('web.latest.groupbyapp',1));
+ update_profile('web.latest.groupbyapp',$_REQUEST['groupbyapp'],PROFILE_TYPE_INT);
+
+ $_REQUEST['applications'] = get_request('applications',get_profile('web.latest.applications',array(),PROFILE_TYPE_ARRAY_ID));
+
+ if(isset($_REQUEST['open'])){
+ if(!isset($_REQUEST['applicationid'])){
+ $_REQUEST['applications'] = array();
+ $show_all_apps = 1;
+ }
+ else if(!uint_in_array($_REQUEST['applicationid'],$_REQUEST['applications'])){
+ array_push($_REQUEST['applications'],$_REQUEST['applicationid']);
+ }
+
+ }
+ else if(isset($_REQUEST['close'])){
+ if(!isset($_REQUEST['applicationid'])){
+ $_REQUEST['applications'] = array();
+ }
+ else if(($i=array_search($_REQUEST['applicationid'], $_REQUEST['applications'])) !== FALSE){
+ unset($_REQUEST['applications'][$i]);
+ }
+ }
+
+ /* limit opened application count */
+ while(count($_REQUEST['applications']) > 25){
+ array_shift($_REQUEST['applications']);
+ }
+
+ update_profile('web.latest.applications',$_REQUEST['applications'],PROFILE_TYPE_ARRAY_ID);
+?>
+<?php
+ if(isset($show_all_apps)){
+ $url = '?close=1'.
+ url_param('groupid').
+ url_param('hostid').
+ url_param('applications').
+ url_param('select');
+ $link = new CLink(new CImg('images/general/opened.gif'),$url);
+// $link = new CLink(new CImg('images/general/opened.gif'),$url,null,"javascript: return updater.onetime_update('".ZBX_PAGE_MAIN_HAT."','".$url."');");
+ }
+ else{
+ $url = '?open=1'.
+ url_param('groupid').
+ url_param('hostid').
+ url_param('applications').
+ url_param('select');
+ $link = new CLink(new CImg('images/general/closed.gif'),$url);
+// $link = new CLink(new CImg('images/general/closed.gif'),$url,null,"javascript: return updater.onetime_update('".ZBX_PAGE_MAIN_HAT."','".$url."');");
+ }
+
+ $table=new CTableInfo();
+ $table->SetHeader(array(
+ is_show_subnodes()?make_sorting_link(S_NODE,'h.hostid') : null,
+ ($_REQUEST["hostid"] ==0)?make_sorting_link(S_HOST,'h.host') : NULL,
+ array($link,SPACE,make_sorting_link(S_DESCRIPTION,'i.description')),
+ make_sorting_link(S_LAST_CHECK,'i.lastclock'),
+ S_LAST_VALUE,
+ S_CHANGE,
+ S_HISTORY));
+
+// $table->ShowStart();
+
+ $compare_host = $_REQUEST['hostid']?' AND h.hostid='.$_REQUEST['hostid']:'';
+ $compare_host.= $_REQUEST['groupid']?' AND hg.hostid=h.hostid AND hg.groupid ='.$_REQUEST['groupid']:'';
+
+ $db_applications = DBselect('SELECT DISTINCT h.host,h.hostid,a.* '.
+ ' FROM applications a, hosts h'.($_REQUEST['groupid']?', hosts_groups hg ':'').
+ ' WHERE a.hostid=h.hostid'.
+ $compare_host.
+ ' AND '.DBcondition('h.hostid',$available_hosts).
+ ' AND h.status='.HOST_STATUS_MONITORED.
+ order_by('h.host,h.hostid','a.name,a.applicationid'));
+
+ while($db_app = DBfetch($db_applications)){
+ $db_items = DBselect('SELECT DISTINCT i.* '.
+ ' FROM items i,items_applications ia'.
+ ' WHERE ia.applicationid='.$db_app['applicationid'].
+ ' AND i.itemid=ia.itemid'.
+ ' AND i.status='.ITEM_STATUS_ACTIVE.
+ order_by('i.description,i.itemid,i.lastclock'));
+ $app_rows = array();
+ $item_cnt = 0;
+ while($db_item = DBfetch($db_items)){
+ $description = item_description($db_item["description"],$db_item["key_"]);
+ if(!empty($_REQUEST["select"]) && !zbx_stristr($description, $_REQUEST["select"]) ) continue;
+
+ ++$item_cnt;
+ if(!uint_in_array($db_app["applicationid"],$_REQUEST["applications"]) && !isset($show_all_apps)) continue;
+
+ if(isset($db_item["lastclock"]))
+ $lastclock=date(S_DATE_FORMAT_YMDHMS,$db_item["lastclock"]);
+ else
+ $lastclock = new CCol('-', 'center');
+
+ $lastvalue=format_lastvalue($db_item);
+
+ if( isset($db_item["lastvalue"]) && isset($db_item["prevvalue"]) &&
+ ($db_item["value_type"] == 0) && ($db_item["lastvalue"]-$db_item["prevvalue"] != 0) )
+ {
+ if($db_item["lastvalue"]-$db_item["prevvalue"]<0){
+ $change=convert_units($db_item["lastvalue"]-$db_item["prevvalue"],$db_item["units"]);
+ }
+ else{
+ $change="+".convert_units($db_item["lastvalue"]-$db_item["prevvalue"],$db_item["units"]);
+ }
+ $change=nbsp($change);
+ }
+ else{
+ $change=new CCol("-","center");
+ }
+
+ if(($db_item["value_type"]==ITEM_VALUE_TYPE_FLOAT) || ($db_item["value_type"]==ITEM_VALUE_TYPE_UINT64)){
+ $actions=new CLink(S_GRAPH,"history.php?action=showgraph&itemid=".$db_item["itemid"],"action");
+ }
+ else{
+ $actions=new CLink(S_HISTORY,"history.php?action=showvalues&period=3600&itemid=".$db_item["itemid"],"action");
+ }
+
+ array_push($app_rows, new CRow(array(
+ is_show_subnodes()?SPACE:null,
+ ($_REQUEST["hostid"]>0)?NULL:SPACE,
+ str_repeat(SPACE,6).$description,
+ $lastclock,
+ new CCol($lastvalue, $lastvalue=='-' ? 'center' : null),
+ $change,
+ $actions
+ )));
+ }
+
+ if($item_cnt > 0){
+ if(uint_in_array($db_app["applicationid"],$_REQUEST["applications"]) || isset($show_all_apps)){
+ $url = '?close=1&applicationid='.$db_app["applicationid"].
+ url_param('groupid').
+ url_param('hostid').
+ url_param('applications').
+ url_param('fullscreen').
+ url_param('select');
+ $link = new CLink(new CImg('images/general/opened.gif'),$url);
+// $link = new CLink(new CImg('images/general/opened.gif'),$url,null,"javascript: return updater.onetime_update('".ZBX_PAGE_MAIN_HAT."','".$url."');");
+ }
+ else{
+ $url = '?open=1&applicationid='.$db_app["applicationid"].
+ url_param('groupid').
+ url_param('hostid').
+ url_param('applications').
+ url_param('fullscreen').
+ url_param('select');
+ $link = new CLink(new CImg('images/general/closed.gif'),$url);
+// $link = new CLink(new CImg('images/general/closed.gif'),$url,null,"javascript: return updater.onetime_update('".ZBX_PAGE_MAIN_HAT."','".$url."');");
+ }
+
+ $col = new CCol(array($link,SPACE,bold($db_app["name"]),SPACE.'('.$item_cnt.SPACE.S_ITEMS.')'));
+ $col->SetColSpan(5);
+
+ $table->AddRow(array(
+ get_node_name_by_elid($db_app['hostid']),
+ ($_REQUEST["hostid"]>0)?NULL:$db_app["host"],
+ $col
+ ));
+
+ foreach($app_rows as $row) $table->AddRow($row);
+ }
+ }
+
+
+ $sql = 'SELECT DISTINCT h.host,h.hostid '.
+ ' FROM hosts h'.($_REQUEST['groupid']?', hosts_groups hg ':'').', items i '.
+ ' LEFT JOIN items_applications ia ON ia.itemid=i.itemid'.
+ ' WHERE ia.itemid is NULL '.
+ $compare_host.
+ ' AND h.hostid=i.hostid '.
+ ' AND h.status='.HOST_STATUS_MONITORED.
+ ' AND i.status='.ITEM_STATUS_ACTIVE.
+ ' AND '.DBcondition('h.hostid',$available_hosts).
+ ' ORDER BY h.host';
+
+ $db_appitems = DBselect($sql);
+
+ while($db_appitem = DBfetch($db_appitems)){
+
+ $sql = 'SELECT h.host,h.hostid,i.* '.
+ ' FROM hosts h'.($_REQUEST['groupid']?', hosts_groups hg ':'').', items i '.
+ ' LEFT JOIN items_applications ia ON ia.itemid=i.itemid'.
+ ' WHERE ia.itemid is NULL '.
+ $compare_host.
+ ' AND h.hostid=i.hostid '.
+ ' AND h.status='.HOST_STATUS_MONITORED.
+ ' AND i.status='.ITEM_STATUS_ACTIVE.
+ ' AND h.hostid='.$db_appitem['hostid'].
+ ' ORDER BY i.description,i.itemid';
+
+ $db_items = DBselect($sql);
+
+ $app_rows = array();
+ $item_cnt = 0;
+
+ while($db_item = DBfetch($db_items)){
+ $description = item_description($db_item["description"],$db_item["key_"]);
+
+ if(!empty($_REQUEST["select"]) && !zbx_stristr($description, $_REQUEST["select"]) ) continue;
+
+ ++$item_cnt;
+
+ if(!uint_in_array(0,$_REQUEST["applications"]) && !isset($show_all_apps)) continue;
+
+ if(isset($db_item["lastclock"]))
+ $lastclock=zbx_date2str(S_DATE_FORMAT_YMDHMS,$db_item["lastclock"]);
+ else
+ $lastclock = new CCol('-', 'center');
+
+ $lastvalue=format_lastvalue($db_item);
+
+ if( isset($db_item["lastvalue"]) && isset($db_item["prevvalue"]) &&
+ ($db_item["value_type"] == ITEM_VALUE_TYPE_FLOAT || $db_item["value_type"] == ITEM_VALUE_TYPE_UINT64) &&
+ ($db_item["lastvalue"]-$db_item["prevvalue"] != 0) )
+ {
+ if($db_item["lastvalue"]-$db_item["prevvalue"]<0){
+ $change=convert_units($db_item["lastvalue"]-$db_item["prevvalue"],$db_item["units"]);
+ $change=nbsp($change);
+ }
+ else{
+ $change="+".convert_units($db_item["lastvalue"]-$db_item["prevvalue"],$db_item["units"]);
+ $change=nbsp($change);
+ }
+ }
+ else{
+ $change=new CCol("-","center");
+ }
+
+ if(($db_item["value_type"]==ITEM_VALUE_TYPE_FLOAT) || ($db_item["value_type"]==ITEM_VALUE_TYPE_UINT64)){
+ $actions=new CLink(S_GRAPH,"history.php?action=showgraph&itemid=".$db_item["itemid"],"action");
+ }
+ else{
+ $actions=new CLink(S_HISTORY,"history.php?action=showvalues&period=3600&itemid=".$db_item["itemid"],"action");
+ }
+
+ array_push($app_rows, new CRow(array(
+ is_show_subnodes()?($item_cnt?SPACE:get_node_name_by_elid($db_item['itemid'])):null,
+ $_REQUEST["hostid"]?NULL:($item_cnt?SPACE:$db_item["host"]),
+ str_repeat(SPACE, 6).$description,
+ $lastclock,
+ new CCol($lastvalue, $lastvalue == '-' ? 'center' : null),
+ $change,
+ $actions
+ )));
+ }
+
+ if($item_cnt > 0){
+
+ if(uint_in_array(0,$_REQUEST["applications"]) || isset($show_all_apps)){
+ $url = '?close=1&applicationid=0'.
+ url_param('groupid').
+ url_param('hostid').
+ url_param('applications').
+ url_param('select');
+ $link = new CLink(new CImg('images/general/opened.gif'),$url);
+// $link = new CLink(new CImg('images/general/opened.gif'),$url,null,"javascript: return updater.onetime_update('".ZBX_PAGE_MAIN_HAT."','".$url."');");
+ }
+ else{
+ $url = '?open=1&applicationid=0'.
+ url_param('groupid').
+ url_param('hostid').
+ url_param('applications').
+ url_param('select');
+ $link = new CLink(new CImg('images/general/closed.gif'),$url);
+// $link = new CLink(new CImg('images/general/closed.gif'),$url,null,"javascript: return updater.onetime_update('".ZBX_PAGE_MAIN_HAT."','".$url."');");
+ }
+
+ $col = new CCol(array($link,SPACE,bold(S_MINUS_OTHER_MINUS),SPACE.'('.$item_cnt.SPACE.S_ITEMS.')'));
+ $col->SetColSpan(5);
+
+ $table->AddRow(array(
+ get_node_name_by_elid($db_appitem['hostid']),
+ $_REQUEST["hostid"] > 0 ? NULL : $db_appitem["host"],
+ $col
+ ));
+
+ foreach($app_rows as $row) $table->AddRow($row);
+ }
+ }
+
+ $p_elements[] = $table;
+
+/*
// Refresh tab
$refresh_tab = array(
array('id' => ZBX_PAGE_MAIN_HAT,
@@ -86,9 +472,9 @@ include_once "include/page_header.php";
'url' => zbx_empty($_SERVER['QUERY_STRING'])?'':'?'.$_SERVER['QUERY_STRING'],
)
);
-
+//*/
- $url = '?fullscreen='.($_REQUEST['fullscreen']?'0':'1').url_param('select');
+ $url = '?fullscreen='.($_REQUEST['fullscreen']?'0':'1');
$fs_icon = new CDiv(SPACE,'fullscreen');
$fs_icon->AddOption('title',$_REQUEST['fullscreen']?S_NORMAL.' '.S_VIEW:S_FULLSCREEN);
@@ -97,7 +483,7 @@ include_once "include/page_header.php";
$latest_hat = create_hat(
S_LATEST_DATA_BIG,
- new CSpan(S_LOADING_P,'textcolorstyles'),
+ $p_elements,//new CSpan(S_LOADING_P,'textcolorstyles'),
array($fs_icon),
ZBX_PAGE_MAIN_HAT,
get_profile('web.latest.hats.hat_latest.state',1)
@@ -105,7 +491,7 @@ include_once "include/page_header.php";
$latest_hat->Show();
- add_refresh_objects($refresh_tab);
+// add_refresh_objects($refresh_tab);
?>
<?php
include_once "include/page_footer.php";