summaryrefslogtreecommitdiffstats
path: root/frontends
diff options
context:
space:
mode:
authorsasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-08-05 12:01:53 +0000
committersasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-08-05 12:01:53 +0000
commit31d9eeed8ba49cac9b2b9ebb3d1c77558df5ff0f (patch)
tree00ed2cfb5b7077ed95225b61f091dd3400f516ea /frontends
parentb1a528879c1e7e7d7886a273cf954741d057e038 (diff)
downloadzabbix-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.php22
-rw-r--r--frontends/php/include/locales/en_gb.inc.php1
-rw-r--r--frontends/php/include/maps.inc.php145
-rw-r--r--frontends/php/map.php9
-rw-r--r--frontends/php/sysmap.php8
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();