summaryrefslogtreecommitdiffstats
path: root/frontends/php/include/maps.inc.php
diff options
context:
space:
mode:
authorartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-11-14 13:13:52 +0000
committerartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-11-14 13:13:52 +0000
commit7928378e93404fcd315522128f47c54660a74c39 (patch)
tree57a5de29f3c0b0b731b3bbe779640c14aecb2179 /frontends/php/include/maps.inc.php
parentf3f728f586d11e804e9745f26f759c1728b76ab2 (diff)
downloadzabbix-7928378e93404fcd315522128f47c54660a74c39.tar.gz
zabbix-7928378e93404fcd315522128f47c54660a74c39.tar.xz
zabbix-7928378e93404fcd315522128f47c54660a74c39.zip
- [NTT-49] merged rev. 5034:5035 of branches/1.4.j/ (Artem) [added script menu to host icons in Maps]
git-svn-id: svn://svn.zabbix.com/trunk@5036 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/maps.inc.php')
-rw-r--r--frontends/php/include/maps.inc.php44
1 files changed, 32 insertions, 12 deletions
diff --git a/frontends/php/include/maps.inc.php b/frontends/php/include/maps.inc.php
index 62a35892..f258ffc0 100644
--- a/frontends/php/include/maps.inc.php
+++ b/frontends/php/include/maps.inc.php
@@ -569,45 +569,45 @@
{
$action_map = new CMap("links$sysmapid");
- $db_elements=DBselect("select * from sysmaps_elements where sysmapid=$sysmapid");
+ $db_elements=DBselect('SELECT * FROM sysmaps_elements WHERE sysmapid='.$sysmapid);
while($db_element = DBfetch($db_elements))
{
$url = $db_element["url"];
$alt = "Label: ".$db_element["label"];
-
+ $scripts_by_hosts = null;
+
if($db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_HOST)
{
$host = get_host_by_hostid($db_element["elementid"]);
if($host["status"] != HOST_STATUS_MONITORED) continue;
-
- if($url=="")
- $url="tr_status.php?hostid=".$db_element["elementid"].
- "&noactions=true&onlytrue=true&compact=true";
-
+ $scripts_by_hosts = get_accessible_scripts_by_hosts(array($db_element["elementid"]));
+
+ if(empty($url)) $url='tr_status.php?hostid='.$db_element['elementid'].'&noactions=true&onlytrue=true&compact=true';
+
$alt = "Host: ".$host["host"]." ".$alt;
}
elseif($db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_MAP)
{
$map = get_sysmap_by_sysmapid($db_element["elementid"]);
- if($url=="")
+ if(empty($url))
$url="maps.php?sysmapid=".$db_element["elementid"];
$alt = "Host: ".$map["name"]." ".$alt;
}
elseif($db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_TRIGGER)
{
- if($url=="" && $db_element["elementid"]!=0)
+ if(empty($url) && $db_element["elementid"]!=0)
$url="tr_events.php?triggerid=".$db_element["elementid"];
}
elseif($db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_HOST_GROUP)
{
- if($url=="" && $db_element["elementid"]!=0)
+ if(empty($url) && $db_element["elementid"]!=0)
$url="events.php?hostid=0&groupid=".$db_element["elementid"];
}
- if($url=="") continue;
+ if(empty($url)) continue;
$back = get_png_by_selementid($db_element["selementid"]);
if(!$back) continue;
@@ -617,8 +617,28 @@
$x2_ = $db_element["x"] + imagesx($back);
$y2_ = $db_element["y"] + imagesy($back);
- $action_map->AddRectArea($x1_,$y1_,$x2_,$y2_, $url, $alt);
+ $r_area = new CArea(array($x1_,$y1_,$x2_,$y2_),$url,$alt,'rect');
+ if(!empty($scripts_by_hosts)){
+ $menus = '';
+
+ $host_nodeid = id2nodeid($db_element["elementid"]);
+ foreach($scripts_by_hosts[$db_element["elementid"]] as $id => $script){
+ $script_nodeid = id2nodeid($script['scriptid']);
+ if( $host_nodeid == $script_nodeid )
+ $menus.= "['".$script['name']."',\"javascript: openWinCentered('scripts_exec.php?execute=1&hostid=".$db_element["elementid"]."&scriptid=".$script['scriptid']."','".S_TOOLS."',760,540,'titlebar=no, resizable=yes, scrollbars=yes, dialog=no');\", null,{'outer' : ['pum_o_item'],'inner' : ['pum_i_item']}],";
+ }
+ $menus.= "['".S_STATUS_OF_TRIGGERS."',\"javascript: Redirect('".$url."')\", null,{'outer' : ['pum_o_item'],'inner' : ['pum_i_item']}],";
+
+ $menus = trim($menus,',');
+ $menus="show_popup_menu(event,[[".zbx_jsvalue(S_TOOLS).",null,null,{'outer' : ['pum_oheader'],'inner' : ['pum_iheader']}],".$menus."],180); cancelEvent(event);";
+
+ $r_area->AddAction('onclick','javascript: '.$menus);
+ }
+ $action_map->AddItem($r_area);//AddRectArea($x1_,$y1_,$x2_,$y2_, $url, $alt);
}
+
+ $jsmenu = new CPUMenu(null,170);
+ $jsmenu->InsertJavaScript();
return $action_map;
}