diff options
author | sasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-08-05 12:01:53 +0000 |
---|---|---|
committer | sasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-08-05 12:01:53 +0000 |
commit | 31d9eeed8ba49cac9b2b9ebb3d1c77558df5ff0f (patch) | |
tree | 00ed2cfb5b7077ed95225b61f091dd3400f516ea /frontends | |
parent | b1a528879c1e7e7d7886a273cf954741d057e038 (diff) | |
download | zabbix-31d9eeed8ba49cac9b2b9ebb3d1c77558df5ff0f.tar.gz zabbix-31d9eeed8ba49cac9b2b9ebb3d1c77558df5ff0f.tar.xz zabbix-31d9eeed8ba49cac9b2b9ebb3d1c77558df5ff0f.zip |
- [DEV-198] Correct representation of disabled elements on the map (hosts, triggers)
git-svn-id: svn://svn.zabbix.com/trunk@5870 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends')
-rw-r--r-- | frontends/php/include/forms.inc.php | 22 | ||||
-rw-r--r-- | frontends/php/include/locales/en_gb.inc.php | 1 | ||||
-rw-r--r-- | frontends/php/include/maps.inc.php | 145 | ||||
-rw-r--r-- | frontends/php/map.php | 9 | ||||
-rw-r--r-- | frontends/php/sysmap.php | 8 |
5 files changed, 124 insertions, 61 deletions
diff --git a/frontends/php/include/forms.inc.php b/frontends/php/include/forms.inc.php index 1ab553a8..7405b509 100644 --- a/frontends/php/include/forms.inc.php +++ b/frontends/php/include/forms.inc.php @@ -5074,8 +5074,10 @@ $cmbIconOff = new CComboBox("iconid_off",$iconid_off); $cmbIconOn = new CComboBox("iconid_on",$iconid_on); - $cmbIconUnknown = new CComboBox("iconid_unknown",$iconid_unknown); - $cmbIconDisabled= new CComboBox("iconid_disabled",$iconid_disabled); + if ($elementtype != SYSMAP_ELEMENT_TYPE_MAP) + $cmbIconUnknown = new CComboBox("iconid_unknown",$iconid_unknown); + if ($elementtype != SYSMAP_ELEMENT_TYPE_HOST_GROUP && $elementtype != SYSMAP_ELEMENT_TYPE_MAP) + $cmbIconDisabled= new CComboBox("iconid_disabled",$iconid_disabled); $result = DBselect('SELECT * FROM images WHERE imagetype=1 AND '.DBin_node('imageid').' order by name'); while($row=DBfetch($result)){ @@ -5083,14 +5085,22 @@ $cmbIconOff->AddItem($row["imageid"],$row["name"]); $cmbIconOn->AddItem($row["imageid"],$row["name"]); - $cmbIconUnknown->AddItem($row["imageid"],$row["name"]); - $cmbIconDisabled->AddItem($row["imageid"],$row["name"]); + if ($elementtype != SYSMAP_ELEMENT_TYPE_MAP) + $cmbIconUnknown->AddItem($row["imageid"],$row["name"]); + if ($elementtype != SYSMAP_ELEMENT_TYPE_HOST_GROUP && $elementtype != SYSMAP_ELEMENT_TYPE_MAP) + $cmbIconDisabled->AddItem($row["imageid"],$row["name"]); } $frmEl->AddRow(S_ICON_OFF,$cmbIconOff); $frmEl->AddRow(S_ICON_ON,$cmbIconOn); - $frmEl->AddRow(S_ICON_UNKNOWN,$cmbIconUnknown); - $frmEl->AddRow(S_ICON_DISABLED,$cmbIconDisabled); + if ($elementtype != SYSMAP_ELEMENT_TYPE_MAP) + $frmEl->AddRow(S_ICON_UNKNOWN, $cmbIconUnknown); + else + $frmEl->AddVar("iconid_unknown", 0); + if ($elementtype != SYSMAP_ELEMENT_TYPE_HOST_GROUP && $elementtype != SYSMAP_ELEMENT_TYPE_MAP) + $frmEl->AddRow(S_ICON_DISABLED,$cmbIconDisabled); + else + $frmEl->AddVar("iconid_disabled", 0); $frmEl->AddRow(S_COORDINATE_X, new CNumericBox("x", $x, 5)); $frmEl->AddRow(S_COORDINATE_Y, new CNumericBox("y", $y, 5)); diff --git a/frontends/php/include/locales/en_gb.inc.php b/frontends/php/include/locales/en_gb.inc.php index 2261db20..395106b1 100644 --- a/frontends/php/include/locales/en_gb.inc.php +++ b/frontends/php/include/locales/en_gb.inc.php @@ -953,6 +953,7 @@ 'S_OK_BIG'=> 'OK', 'S_PROBLEMS_SMALL'=> 'problems', 'S_ZABBIX_URL'=> 'http://www.zabbix.com', + 'S_PROBLEM_BIG'=> 'PROBLEM', // maps.php 'S_NETWORK_MAPS'=> 'Network maps', diff --git a/frontends/php/include/maps.inc.php b/frontends/php/include/maps.inc.php index b80c26db..5e0dfc6b 100644 --- a/frontends/php/include/maps.inc.php +++ b/frontends/php/include/maps.inc.php @@ -451,15 +451,14 @@ $el_type =& $db_element["elementtype"]; $sql = array( - SYSMAP_ELEMENT_TYPE_TRIGGER => 'SELECT DISTINCT t.triggerid, t.priority, t.value, t.description, t.expression, h.host '. + SYSMAP_ELEMENT_TYPE_TRIGGER => 'SELECT DISTINCT t.triggerid,t.priority,t.value,t.description'. + ',t.expression,h.host,h.status as h_status,i.status as i_status,t.status as t_status'. ' FROM triggers t, items i, functions f, hosts h '. ' WHERE t.triggerid='.$db_element['elementid']. ' AND h.hostid=i.hostid '. ' AND i.itemid=f.itemid '. - ' AND f.triggerid=t.triggerid '. - ' AND h.status='.HOST_STATUS_MONITORED. - ' AND i.status='.ITEM_STATUS_ACTIVE, - SYSMAP_ELEMENT_TYPE_HOST_GROUP => 'SELECT DISTINCT t.triggerid, t.priority, t.value, t.description, t.expression, h.host, g.name as el_name '. + ' AND f.triggerid=t.triggerid ', + SYSMAP_ELEMENT_TYPE_HOST_GROUP => 'SELECT DISTINCT t.triggerid, t.priority, t.value, t.description, t.expression, h.host'. ' FROM items i,functions f,triggers t,hosts h,hosts_groups hg,groups g '. ' WHERE h.hostid=i.hostid '. ' AND hg.groupid=g.groupid '. @@ -470,7 +469,7 @@ ' AND t.status='.TRIGGER_STATUS_ENABLED. ' AND h.status='.HOST_STATUS_MONITORED. ' AND i.status='.ITEM_STATUS_ACTIVE, - SYSMAP_ELEMENT_TYPE_HOST => 'SELECT DISTINCT t.triggerid, t.priority, t.value, t.description, t.expression, h.host, h.host as el_name'. + SYSMAP_ELEMENT_TYPE_HOST => 'SELECT DISTINCT t.triggerid, t.priority, t.value, t.description, t.expression, h.host'. ' FROM items i,functions f,triggers t,hosts h WHERE h.hostid=i.hostid'. ' AND i.hostid='.$db_element['elementid']. ' AND i.itemid=f.itemid'. @@ -479,20 +478,27 @@ ' AND h.status='.HOST_STATUS_MONITORED. ' AND i.status='.ITEM_STATUS_ACTIVE ); - + + $out['triggers'] = array(); + if( isset($sql[$el_type]) ){ $db_triggers = DBselect($sql[$el_type]); $trigger = DBfetch($db_triggers); if($trigger){ - if(isset($trigger['el_name'])){ - $el_name = $trigger['el_name']; - } - else{ + if ($el_type == SYSMAP_ELEMENT_TYPE_TRIGGER) $el_name = expand_trigger_description_by_data($trigger); - } do { - $type =& $trigger['value']; + if ($el_type == SYSMAP_ELEMENT_TYPE_TRIGGER && ( + $trigger['h_status'] != HOST_STATUS_MONITORED || + $trigger['i_status'] != ITEM_STATUS_ACTIVE || + $trigger['t_status'] != TRIGGER_STATUS_ENABLED)) + { + $type = TRIGGER_VALUE_UNKNOWN; + $out['disabled'] = 1; + } + else + $type =& $trigger['value']; if(!isset($tr_info[$type])) $tr_info[$type] = array('count' => 0); @@ -503,40 +509,25 @@ if($el_type != SYSMAP_ELEMENT_TYPE_TRIGGER && $type!=TRIGGER_VALUE_UNKNOWN) $tr_info[$type]['info'] = expand_trigger_description_by_data($trigger); } + + if ($type == TRIGGER_VALUE_TRUE) + array_push($out['triggers'], $trigger['triggerid']); } while ($trigger = DBfetch($db_triggers)); } - else if($el_type == SYSMAP_ELEMENT_TYPE_HOST){ - $host = get_host_by_hostid($db_element["elementid"]); - $el_name = $host['host']; - if($host["status"] == HOST_STATUS_TEMPLATE){ - $tr_info[TRIGGER_VALUE_UNKNOWN]['count'] = 1; - $tr_info[TRIGGER_VALUE_UNKNOWN]['priority'] = 0; - $tr_info[TRIGGER_VALUE_UNKNOWN]['info'] = S_TEMPLATE_SMALL; - $tr_info[TRIGGER_VALUE_UNKNOWN]['host_status'] = $host["status"]; - } - else if($host["status"] == HOST_STATUS_NOT_MONITORED){ - $tr_info[TRIGGER_VALUE_UNKNOWN]['count'] = 0; - $tr_info[TRIGGER_VALUE_UNKNOWN]['priority'] = 0; - $tr_info[TRIGGER_VALUE_UNKNOWN]['info'] = S_DISABLED_BIG; - $tr_info[TRIGGER_VALUE_UNKNOWN]['host_status'] = $host["status"]; - } - else{ - $tr_info[TRIGGER_VALUE_FALSE]['count'] = 0; - $tr_info[TRIGGER_VALUE_FALSE]['priority'] = 0; - $tr_info[TRIGGER_VALUE_FALSE]['info'] = S_OK_BIG; - } - } } - else if($el_type==SYSMAP_ELEMENT_TYPE_MAP){ - - $db_map = DBfetch(DBselect('select name FROM sysmaps WHERE sysmapid='.$db_element["elementid"])); - $el_name = $db_map['name']; + else if($el_type==SYSMAP_ELEMENT_TYPE_MAP) + { + $triggers = array(); $db_subelements = DBselect("select selementid FROM sysmaps_elements". " WHERE sysmapid=".$db_element["elementid"]); while($db_subelement = DBfetch($db_subelements)){ // recursion - $inf = get_info_by_selementid($db_subelement["selementid"]); + + foreach($inf['triggers'] as $id => $triggerid) + if (!in_array($triggerid, $triggers)) + array_push($triggers, $triggerid); + $type = $inf['type']; if(!isset($tr_info[$type]['count'])) $tr_info[$type]['count'] = 0; @@ -547,16 +538,76 @@ $tr_info[$type]['info'] = $inf['info']; } } + + $tr_info[TRIGGER_VALUE_TRUE]['count'] = count($triggers); + + if ($tr_info[TRIGGER_VALUE_TRUE]['count'] == 1) + { + $db_trigger = DBfetch(DBselect('SELECT DISTINCT t.triggerid,t.priority,t.value,t.description'. + ',t.expression,h.host FROM triggers t, items i, functions f, hosts h'. + ' WHERE t.triggerid='.$triggers[0].' AND h.hostid=i.hostid'. + ' AND i.itemid=f.itemid AND f.triggerid=t.triggerid')); + $tr_info[TRIGGER_VALUE_TRUE]['info'] = expand_trigger_description_by_data($db_trigger); + } + } + + if ($el_type == SYSMAP_ELEMENT_TYPE_HOST) + { + $host = get_host_by_hostid($db_element["elementid"]); + $el_name = $host['host']; + + if( $host["status"] == HOST_STATUS_TEMPLATE) + { + $tr_info[TRIGGER_VALUE_UNKNOWN]['count'] = 0; + $tr_info[TRIGGER_VALUE_UNKNOWN]['priority'] = 0; + $tr_info[TRIGGER_VALUE_UNKNOWN]['info'] = S_TEMPLATE_SMALL; + } + else if ($host["status"] == HOST_STATUS_NOT_MONITORED) + { + $tr_info[TRIGGER_VALUE_UNKNOWN]['count'] = 0; + $tr_info[TRIGGER_VALUE_UNKNOWN]['priority'] = 0; + $out['disabled'] = 1; + } + else if (!isset($tr_info[TRIGGER_VALUE_FALSE])) + { + $tr_info[TRIGGER_VALUE_FALSE]['count'] = 0; + $tr_info[TRIGGER_VALUE_FALSE]['priority'] = 0; + $tr_info[TRIGGER_VALUE_FALSE]['info'] = S_OK_BIG; + } + } + else if ($el_type == SYSMAP_ELEMENT_TYPE_HOST_GROUP) + { + $group = get_hostgroup_by_groupid($db_element["elementid"]); + $el_name = $group['name']; + + if (!isset($tr_info[TRIGGER_VALUE_FALSE])) + { + $tr_info[TRIGGER_VALUE_FALSE]['count'] = 0; + $tr_info[TRIGGER_VALUE_FALSE]['priority'] = 0; + $tr_info[TRIGGER_VALUE_FALSE]['info'] = S_OK_BIG; + } + } + else if ($el_type == SYSMAP_ELEMENT_TYPE_MAP) + { + $db_map = DBfetch(DBselect('select name FROM sysmaps WHERE sysmapid='.$db_element["elementid"])); + $el_name = $db_map['name']; + + if (!isset($tr_info[TRIGGER_VALUE_FALSE])) + { + $tr_info[TRIGGER_VALUE_FALSE]['count'] = 0; + $tr_info[TRIGGER_VALUE_FALSE]['priority'] = 0; + $tr_info[TRIGGER_VALUE_FALSE]['info'] = S_OK_BIG; + } } if(isset($tr_info[TRIGGER_VALUE_TRUE])){ $inf =& $tr_info[TRIGGER_VALUE_TRUE]; $out['type'] = TRIGGER_VALUE_TRUE; - $out['info'] = S_TRUE_BIG; + $out['info'] = S_PROBLEM_BIG; if($inf['count'] > 1) - $out['info'] = $inf['count']." ".S_PROBLEMS_SMALL; + $out['info'] = $inf['count'].' '.S_PROBLEMS_SMALL; else if(isset($inf['info'])) $out['info'] = $inf['info']; @@ -573,22 +624,20 @@ $out['type'] = TRIGGER_VALUE_UNKNOWN; $out['info'] = S_UNKNOWN_BIG; - /* if($inf['count'] > 1) - $out['info'] = $inf['count']." ".S_UNKNOWN; - else */ if(isset($inf['info'])) - $out['info'] = $inf['info']; - $out['color'] = $colors['Gray']; - if (isset($inf['host_status']) && $inf['host_status'] == HOST_STATUS_NOT_MONITORED) + if (isset($out['disabled']) && $out['disabled'] == 1) $out['iconid'] = $db_element['iconid_disabled']; else $out['iconid'] = $db_element['iconid_unknown']; + + if (isset($inf['info'])) + $out['info'] = $inf['info']; } else{ $inf =& $tr_info[TRIGGER_VALUE_FALSE]; $out['type'] = TRIGGER_VALUE_FALSE; - $out['info'] = S_FALSE_BIG; + $out['info'] = S_OK_BIG; if(isset($inf['info'])) $out['info'] = S_OK_BIG; diff --git a/frontends/php/map.php b/frontends/php/map.php index f88e7565..4a8f08a7 100644 --- a/frontends/php/map.php +++ b/frontends/php/map.php @@ -190,6 +190,12 @@ include_once "include/page_header.php"; $label_line = $el_info['name']; } + if (isset($el_info['disabled']) && $el_info['disabled'] == 1) + { + $info_line = S_DISABLED_BIG; + $label_color = $gray; + } + unset($el_info); if($db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_HOST) @@ -198,9 +204,6 @@ include_once "include/page_header.php"; if( $label_type==MAP_LABEL_TYPE_IP ) $label_line=$host["ip"]; - - if( $host["status"] == HOST_STATUS_NOT_MONITORED ) - $label_color = $gray; } if($label_line=="" && $info_line=="") continue; diff --git a/frontends/php/sysmap.php b/frontends/php/sysmap.php index f4d3cbf5..5fdb3cbe 100644 --- a/frontends/php/sysmap.php +++ b/frontends/php/sysmap.php @@ -195,10 +195,10 @@ include_once "include/page_header.php"; nbsp($type), $db_element["x"], $db_element["y"], - new CImg("image.php?height=24&imageid=".$db_element["iconid_off"],"no image",NULL), - new CImg("image.php?height=24&imageid=".$db_element["iconid_on"],"no image",NULL), - new CImg("image.php?height=24&imageid=".$db_element["iconid_unknown"],"no image",NULL), - new CImg("image.php?height=24&imageid=".$db_element["iconid_disabled"],"no image",NULL) + $db_element["iconid_off"] ? new CImg("image.php?height=24&imageid=".$db_element["iconid_off"],"no image",NULL) : '-', + $db_element["iconid_on"] ? new CImg("image.php?height=24&imageid=".$db_element["iconid_on"],"no image",NULL) : '-', + $db_element["iconid_unknown"] ? new CImg("image.php?height=24&imageid=".$db_element["iconid_unknown"],"no image",NULL) : '-', + $db_element["iconid_disabled"] ? new CImg("image.php?height=24&imageid=".$db_element["iconid_disabled"],"no image",NULL) : '-' )); } $table->show(); |