summaryrefslogtreecommitdiffstats
path: root/frontends/php/include/screens.inc.php
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-03-14 15:21:27 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-03-14 15:21:27 +0000
commit25036c9384fcec4d36f4cfc69fe2b86e4ef2c9c6 (patch)
tree01e08dad83c7671bb8a19b9c40f2f786b033d99e /frontends/php/include/screens.inc.php
parentf35b829723124ac2c15defd1d5cce44b40b1c8ec (diff)
downloadzabbix-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.php248
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;
+ }
?>