diff options
| author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-03-14 15:21:27 +0000 |
|---|---|---|
| committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-03-14 15:21:27 +0000 |
| commit | 25036c9384fcec4d36f4cfc69fe2b86e4ef2c9c6 (patch) | |
| tree | 01e08dad83c7671bb8a19b9c40f2f786b033d99e /frontends/php/include/screens.inc.php | |
| parent | f35b829723124ac2c15defd1d5cce44b40b1c8ec (diff) | |
| download | zabbix-25036c9384fcec4d36f4cfc69fe2b86e4ef2c9c6.tar.gz zabbix-25036c9384fcec4d36f4cfc69fe2b86e4ef2c9c6.tar.xz zabbix-25036c9384fcec4d36f4cfc69fe2b86e4ef2c9c6.zip | |
- added "Data overview" for screens
- added "Triggers overview" for screens (Eugene)
- added blinking into Trigger overview (Eugene)
- added screen displaying in other screen (Eugene)
- improved Overview table header, vertical text added (Eugene)
- developed "ZABBIX Clock" module for screens (Eugene)
- developed "ZABBIX server info" module for screens (Eugene)
- developed "Triggers info" module for screens (Eugene)
- developed "Host info" module for screens (Eugene)
- improved screens displaying, added item alignment (Eugene)
- improved ZABBIX server report (Eugene)
- improved images configuration (Eugene)
- added onserver image resizing for thumbs by php (Eugene)
- developed acknowledges system (Eugene)
- added icons displaying for maps (Eugene)
- added maps displaying for maps (Eugene)
- improved maps (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@2699 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/screens.inc.php')
| -rw-r--r-- | frontends/php/include/screens.inc.php | 248 |
1 files changed, 235 insertions, 13 deletions
diff --git a/frontends/php/include/screens.inc.php b/frontends/php/include/screens.inc.php index a7cbd46d..8ade536d 100644 --- a/frontends/php/include/screens.inc.php +++ b/frontends/php/include/screens.inc.php @@ -45,27 +45,27 @@ function delete_screen($screenid) { - $sql="delete from screens_items where screenid=$screenid"; - $result=DBexecute($sql); - if(!$result) - { - return $result; - } - $sql="delete from screens where screenid=$screenid"; - return DBexecute($sql); + $result=DBexecute("delete from screens_items where screenid=$screenid"); + if(!$result) return $result; + + $result=DBexecute("delete from screens_items where resourceid=$screenid and resource=".SCREEN_RESOURCE_SCREEN); + if(!$result) return $result; + + return DBexecute("delete from screens where screenid=$screenid"); } - function add_screen_item($resource,$screenid,$x,$y,$resourceid,$width,$height,$colspan,$rowspan,$elements) + function add_screen_item($resource,$screenid,$x,$y,$resourceid,$width,$height,$colspan,$rowspan,$elements,$valign,$halign,$style) { $sql="delete from screens_items where screenid=$screenid and x=$x and y=$y"; DBexecute($sql); - $sql="insert into screens_items (resource,screenid,x,y,resourceid,width,height,colspan,rowspan,elements) values ($resource,$screenid,$x,$y,$resourceid,$width,$height,$colspan,$rowspan,$elements)"; + $sql="insert into screens_items (resource,screenid,x,y,resourceid,width,height,colspan,rowspan,elements,valign,halign,style)". + " values ($resource,$screenid,$x,$y,$resourceid,$width,$height,$colspan,$rowspan,$elements,$valign,$halign,$style)"; return DBexecute($sql); } - function update_screen_item($screenitemid,$resource,$resourceid,$width,$height,$colspan,$rowspan,$elements) + function update_screen_item($screenitemid,$resource,$resourceid,$width,$height,$colspan,$rowspan,$elements,$valign,$halign,$style) { - $sql="update screens_items set resource=$resource,resourceid=$resourceid,width=$width,height=$height,colspan=$colspan,rowspan=$rowspan,elements=$elements where screenitemid=$screenitemid"; + $sql="update screens_items set resource=$resource,resourceid=$resourceid,width=$width,height=$height,colspan=$colspan,rowspan=$rowspan,elements=$elements,valign=$valign,halign=$halign,style=$style where screenitemid=$screenitemid"; return DBexecute($sql); } @@ -85,8 +85,230 @@ } else { - error("No screen with screenid=[$screenid]"); + info("No screen with screenid=[$screenid]"); + return FALSE; } return $result; } + + function check_screen_recursion($mother_screenid, $child_screenid) + { + if($mother_screenid == $child_screenid) return TRUE; + + $db_scr_items = DBselect("select resourceid from screens_items where". + " screenid=$child_screenid and resource=".SCREEN_RESOURCE_SCREEN); + while($scr_item = DBfetch($db_scr_items)) + { + if(check_screen_recursion($mother_screenid,$scr_item["resourceid"])) + return TRUE; + } + return FALSE; + } + + + + // editmode: 0 - view with actions, 1 - edit mode, 2 - view without any actions + function get_screen($screenid, $editmode, $effectiveperiod=NULL) + { + if(is_null($effectiveperiod)) + $effectiveperiod = 3600; + + $result=DBselect("select name,cols,rows from screens where screenid=$screenid"); + if(DBnum_rows($result) == 0) return new CSpan("Screen missing".BR); + $row=DBfetch($result); + + for($r=0;$r<$row["rows"];$r++) + { + for($c=0;$c<$row["cols"];$c++) + { + if(isset($skip_field[$r][$c])) continue; + + $sql="select * from screens_items where screenid=$screenid and x=$c and y=$r"; + $iresult=DBSelect($sql); + if(DBnum_rows($iresult)>0) + { + $irow=DBfetch($iresult); + $colspan=$irow["colspan"]; + $rowspan=$irow["rowspan"]; + } else { + $colspan=0; + $rowspan=0; + } + for($i=0; $i < $rowspan || $i==0; $i++){ + for($j=0; $j < $colspan || $j==0; $j++){ + if($i!=0 || $j!=0) + $skip_field[$r+$i][$c+$j]=1; + } + } + } + } + $table = new CTable( + new CLink("No rows in screen ".$row["name"],"screenconf.php?form=update&screenid=".$screenid), + ($editmode == 0 || $editmode == 2) ? "screen_view" : "screen_edit"); + + for($r=0;$r<$row["rows"];$r++) + { + $new_cols = array(); + for($c=0;$c<$row["cols"];$c++) + { + $item = array(); + if(isset($skip_field[$r][$c])) continue; + + $iresult=DBSelect("select * from screens_items". + " where screenid=$screenid and x=$c and y=$r"); + + if(DBnum_rows($iresult)>0) + { + $irow = DBfetch($iresult); + $screenitemid = $irow["screenitemid"]; + $resource = $irow["resource"]; + $resourceid = $irow["resourceid"]; + $width = $irow["width"]; + $height = $irow["height"]; + $colspan = $irow["colspan"]; + $rowspan = $irow["rowspan"]; + $elements = $irow["elements"]; + $valign = $irow["valign"]; + $halign = $irow["halign"]; + $style = $irow["style"]; + } + else + { + $screenitemid = 0; + $screenitemid = 0; + $resource = 0; + $resourceid = 0; + $width = 0; + $height = 0; + $colspan = 0; + $rowspan = 0; + $elements = 0; + $valign = VALIGN_DEFAULT; + $halign = HALIGN_DEFAULT; + $style = 0; + } + + + if($editmode == 1 && $screenitemid!=0) + $url = "screenedit.php?form=update".url_param("screenid"). + "&screenitemid=$screenitemid#form"; + elseif ($editmode == 1 && $screenitemid==0) + $url = "screenedit.php?form=update".url_param("screenid")."&x=$c&y=$r#form"; + else + $url = NULL; + + if($editmode == 1 && isset($_REQUEST["form"]) && + isset($_REQUEST["x"]) && $_REQUEST["x"]==$c && + isset($_REQUEST["y"]) && $_REQUEST["y"]==$r) + { // click on empty field + $item = get_screen_item_form(); + } + elseif($editmode == 1 && isset($_REQUEST["form"]) && + isset($_REQUEST["screenitemid"]) && $_REQUEST["screenitemid"]==$screenitemid) + { // click on element + $item = get_screen_item_form(); + } + elseif( ($screenitemid!=0) && ($resource==SCREEN_RESOURCE_GRAPH) ) + { + if($editmode == 0) + $url = "charts.php?graphid=$resourceid".url_param("period"). + url_param("inc").url_param("dec"); + + $item = new CLink( + new CImg("chart2.php?graphid=$resourceid&width=$width&height=$height". + "&period=$effectiveperiod".url_param("stime").url_param("from")), + $url + ); + } + elseif( ($screenitemid!=0) && ($resource==SCREEN_RESOURCE_SIMPLE_GRAPH) ) + { + if($editmode == 0) + $url = "history.php?action=showhistory&itemid=$resourceid". + url_param("period").url_param("inc").url_param("dec"); + + $item = new CLink( + new CImg("chart.php?itemid=$resourceid&width=$width&height=$height". + "&period=$effectiveperiod".url_param("stime").url_param("from")), + $url + ); + } + elseif( ($screenitemid!=0) && ($resource==SCREEN_RESOURCE_MAP) ) + { + $image_map = new CImg("map.php?noedit=1&sysmapid=$resourceid". + "&width=$width&height=$height"); + if($editmode == 0) + { + $action_map = get_action_map_by_sysmapid($resourceid); + $image_map->SetMap($action_map->GetName()); + $item = array($action_map,$image_map); + } else { + $item = new CLink($image_map, $url); + } + } + elseif( ($screenitemid!=0) && ($resource==SCREEN_RESOURCE_PLAIN_TEXT) ) + { + $item = array(get_screen_plaintext($resourceid,$elements)); + if($editmode == 1) array_push($item,new CLink(S_CHANGE,$url)); + } + elseif( ($screenitemid!=0) && ($resource==SCREEN_RESOURCE_HOSTS_INFO) ) + { + $item = array(new CHostsInfo($style)); + if($editmode == 1) array_push($item,new CLink(S_CHANGE,$url)); + } + elseif( ($screenitemid!=0) && ($resource==SCREEN_RESOURCE_TRIGGERS_INFO) ) + { + $item = array(new CTriggersInfo($style)); + if($editmode == 1) array_push($item,new CLink(S_CHANGE,$url)); + } + elseif( ($screenitemid!=0) && ($resource==SCREEN_RESOURCE_SERVER_INFO) ) + { + $item = array(new CServerInfo()); + if($editmode == 1) array_push($item,new CLink(S_CHANGE,$url)); + } + elseif( ($screenitemid!=0) && ($resource==SCREEN_RESOURCE_CLOCK) ) + { + $item = new CFlashClock($width, $height, $style, $url); + } + elseif( ($screenitemid!=0) && ($resource==SCREEN_RESOURCE_SCREEN) ) + { + $item = array(get_screen($resourceid, 2, $effectiveperiod)); + if($editmode == 1) array_push($item,new CLink(S_CHANGE,$url)); + } + elseif( ($screenitemid!=0) && ($resource==SCREEN_RESOURCE_TRIGGERS_OVERVIEW) ) + { + $item = array(get_triggers_overview($resourceid)); + if($editmode == 1) array_push($item,new CLink(S_CHANGE,$url)); + } + elseif( ($screenitemid!=0) && ($resource==SCREEN_RESOURCE_DATA_OVERVIEW) ) + { + $item = array(get_items_data_overview($resourceid)); + if($editmode == 1) array_push($item,new CLink(S_CHANGE,$url)); + } + else + { + $item = array(SPACE); + if($editmode == 1) array_push($item,BR,new CLink(S_CHANGE,$url)); + } + + $str_halign = "def"; + if($halign == HALIGN_CENTER) $str_halign = "cntr"; + if($halign == HALIGN_LEFT) $str_halign = "left"; + if($halign == HALIGN_RIGHT) $str_halign = "right"; + + $str_valign = "def"; + if($valign == VALIGN_MIDDLE) $str_valign = "mdl"; + if($valign == VALIGN_TOP) $str_valign = "top"; + if($valign == VALIGN_BOTTOM) $str_valign = "bttm"; + + $new_col = new CCol($item,$str_halign."_".$str_valign); + + if($colspan) $new_col->SetColSpan($colspan); + if($rowspan) $new_col->SetRowSpan($rowspan); + + array_push($new_cols, $new_col); + } + $table->AddRow(new CRow($new_cols)); + } + return $table; + } ?> |
