summaryrefslogtreecommitdiffstats
path: root/frontends/php/include/screens.inc.php
diff options
context:
space:
mode:
authorartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-07-10 08:04:38 +0000
committerartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-07-10 08:04:38 +0000
commitda89a85a0eeed1b50bc3b5e38b3392e852fa0f72 (patch)
tree26daa648960d802c28067bf1a766cdce0c8c79e2 /frontends/php/include/screens.inc.php
parent616715ae783f353d07b1cfa1f48a7631c165a2f8 (diff)
- [DEV-144] fixes to trigger mass-update (Artem)
git-svn-id: svn://svn.zabbix.com/trunk@5821 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/screens.inc.php')
-rw-r--r--frontends/php/include/screens.inc.php761
1 files changed, 571 insertions, 190 deletions
diff --git a/frontends/php/include/screens.inc.php b/frontends/php/include/screens.inc.php
index 16d4c47e..e6c0acd7 100644
--- a/frontends/php/include/screens.inc.php
+++ b/frontends/php/include/screens.inc.php
@@ -209,6 +209,571 @@
return get_screen($slide_data['screenid'],2,$effectiveperiod);
}
+
+
+ function slideshow_accessible($slideshowid, $perm)
+ {
+ $result = false;
+
+ if(DBselect('select slideshowid from slideshows where slideshowid='.$slideshowid.
+ ' and '.DBin_node('slideshowid', get_current_nodeid($perm))))
+ {
+ $result = true;
+ $db_slides = DBselect('select distinct screenid from slides where slideshowid='.$slideshowid);
+ while($slide_data = DBfetch($db_slides))
+ {
+ if( !($result = screen_accessible($slide_data["screenid"], PERM_READ_ONLY)) ) break;
+ }
+ }
+ return $result;
+ }
+
+ function get_slideshow_by_slideshowid($slideshowid)
+ {
+ return DBfetch(DBselect('select * from slideshows where slideshowid='.$slideshowid));
+ }
+
+ function validate_slide($slide)
+ {
+ if(!screen_accessible($slide["screenid"], PERM_READ_ONLY)) return false;
+
+ if( !is_numeric($slide['delay']) ) return false;
+
+ return true;
+ }
+
+ function add_slideshow($name, $delay, $slides)
+ {
+ foreach($slides as $slide)
+ {
+ if( !validate_slide($slide) )
+ return false;
+ }
+
+ $slideshowid = get_dbid('slideshows','slideshowid');
+ $result = DBexecute('insert into slideshows (slideshowid,name,delay) '.
+ ' values ('.$slideshowid.','.zbx_dbstr($name).','.$delay.')');
+
+ $i = 0;
+ foreach($slides as $slide)
+ {
+ $slideid = get_dbid('slides','slideid');
+ if( !($result = DBexecute('insert into slides (slideid,slideshowid,screenid,step,delay) '.
+ ' values ('.$slideid.','.$slideshowid.','.$slide['screenid'].','.($i++).','.$slide['delay'].')')) )
+ {
+ break;
+ }
+ }
+
+ if( !$result )
+ {
+ delete_slideshow($slideshowid);
+ return false;
+ }
+ return $slideshowid;
+ }
+
+ function update_slideshow($slideshowid, $name, $delay, $slides){
+ foreach($slides as $slide){
+ if(!validate_slide($slide))
+ return false;
+ }
+
+ if(!$result = DBexecute('update slideshows set name='.zbx_dbstr($name).',delay='.$delay.' where slideshowid='.$slideshowid))
+ return false;
+
+ DBexecute('DELETE FROM slides where slideshowid='.$slideshowid);
+
+ $i = 0;
+ foreach($slides as $slide){
+ $slideid = get_dbid('slides','slideid');
+ if( !($result = DBexecute('insert into slides (slideid,slideshowid,screenid,step,delay) '.
+ ' values ('.$slideid.','.$slideshowid.','.$slide['screenid'].','.($i++).','.$slide['delay'].')')) ){
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ function delete_slideshow($slideshowid){
+
+ $result = DBexecute('DELETE FROM slideshows where slideshowid='.$slideshowid);
+ $result &= DBexecute('DELETE FROM slides where slideshowid='.$slideshowid);
+ $result &= DBexecute("DELETE FROM profiles WHERE idx='web.favorite.screenids' AND source='slideshowid' AND value_id=$slideshowid");
+
+ return $result;
+ }
+
+
+ # Show screen cell containing plain text values
+ function get_screen_plaintext($itemid,$elements){
+
+ if($itemid == 0){
+ $table = new CTableInfo(S_ITEM_NOT_EXISTS);
+ $table->SetHeader(array(S_TIMESTAMP,S_ITEM));
+ return $table;
+ }
+
+ global $DB;
+
+ $item=get_item_by_itemid($itemid);
+ switch($item["value_type"]){
+ case ITEM_VALUE_TYPE_FLOAT: $history_table = "history"; break;
+ case ITEM_VALUE_TYPE_UINT64: $history_table = "history_uint"; break;
+ case ITEM_VALUE_TYPE_TEXT: $history_table = "history_text"; break;
+ case ITEM_VALUE_TYPE_LOG: $history_table = "history_log"; break;
+ default: $history_table = "history_str"; break;
+ }
+
+ $sql='SELECT h.clock,h.value,i.valuemapid '.
+ ' FROM '.$history_table.' h, items i '.
+ ' WHERE h.itemid=i.itemid '.
+ ' AND i.itemid='.$itemid.
+ ' ORDER BY h.clock DESC';
+
+ $result=DBselect($sql,$elements);
+
+ $host = get_host_by_itemid($itemid);
+
+ $table = new CTableInfo();
+ $table->SetHeader(array(S_TIMESTAMP,item_description($host['host'].': '.$item["description"],$item["key_"])));
+
+ while($row=DBfetch($result)){
+ switch($item["value_type"])
+ {
+ case ITEM_VALUE_TYPE_TEXT:
+ if($DB['TYPE'] == "ORACLE")
+ {
+ if(isset($row["value"]))
+ {
+ $row["value"] = $row["value"]->load();
+ }
+ else
+ {
+ $row["value"] = "";
+ }
+ }
+ /* do not use break */
+ case ITEM_VALUE_TYPE_STR:
+ $value = nl2br(nbsp(htmlspecialchars($row["value"])));
+ break;
+
+ default:
+ $value = $row["value"];
+ break;
+ }
+
+ if($row["valuemapid"] > 0)
+ $value = replace_value_by_map($value, $row["valuemapid"]);
+
+ $table->AddRow(array(date(S_DATE_FORMAT_YMDHMS,$row["clock"]), $value));
+ }
+ return $table;
+ }
+
+/*
+* Function:
+* check_dynamic_items
+*
+* Description:
+* Check if in screen are dynamic items, if so return TRUE, esle FALSE
+*
+* Author:
+* Aly
+*/
+
+ function check_dynamic_items($screenid){
+ $sql = 'SELECT screenitemid '.
+ ' FROM screens_items '.
+ ' WHERE screenid='.$screenid.
+ ' AND dynamic='.SCREEN_DYNAMIC_ITEM;
+ if(DBfetch(DBselect($sql,1))) return TRUE;
+ return FALSE;
+ }
+
+ function get_screen_item_form(){
+ global $USER_DETAILS;
+
+ $form = new CFormTable(S_SCREEN_CELL_CONFIGURATION,'screenedit.php#form');
+ $form->SetHelp('web.screenedit.cell.php');
+
+ if(isset($_REQUEST["screenitemid"])){
+ $iresult=DBSelect('SELECT * FROM screens_items'.
+ ' WHERE screenid='.$_REQUEST['screenid'].
+ ' AND screenitemid='.$_REQUEST['screenitemid']
+ );
+
+ $form->AddVar("screenitemid",$_REQUEST["screenitemid"]);
+ }
+ else{
+ $form->AddVar("x",$_REQUEST["x"]);
+ $form->AddVar("y",$_REQUEST["y"]);
+ }
+
+ if(isset($_REQUEST["screenitemid"]) && !isset($_REQUEST["form_refresh"])){
+
+ $irow = DBfetch($iresult);
+ $resourcetype = $irow["resourcetype"];
+ $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"];
+ $url = $irow["url"];
+ $dynamic = $irow['dynamic'];
+ }
+ else{
+ $resourcetype = get_request("resourcetype", 0);
+ $resourceid = get_request("resourceid", 0);
+ $width = get_request("width", 500);
+ $height = get_request("height", 100);
+ $colspan = get_request("colspan", 0);
+ $rowspan = get_request("rowspan", 0);
+ $elements = get_request("elements", 25);
+ $valign = get_request("valign", VALIGN_DEFAULT);
+ $halign = get_request("halign", HALIGN_DEFAULT);
+ $style = get_request("style", 0);
+ $url = get_request("url", "");
+ $dynamic = get_request("dynamic", SCREEN_SIMPLE_ITEM);
+ }
+
+ $form->AddVar("screenid",$_REQUEST["screenid"]);
+
+ $cmbRes = new CCombobox("resourcetype",$resourcetype,"submit()");
+ $cmbRes->AddItem(SCREEN_RESOURCE_GRAPH, S_GRAPH);
+ $cmbRes->AddItem(SCREEN_RESOURCE_SIMPLE_GRAPH, S_SIMPLE_GRAPH);
+ $cmbRes->AddItem(SCREEN_RESOURCE_PLAIN_TEXT, S_PLAIN_TEXT);
+ $cmbRes->AddItem(SCREEN_RESOURCE_MAP, S_MAP);
+ $cmbRes->AddItem(SCREEN_RESOURCE_SCREEN, S_SCREEN);
+ $cmbRes->AddItem(SCREEN_RESOURCE_SERVER_INFO, S_SERVER_INFO);
+ $cmbRes->AddItem(SCREEN_RESOURCE_HOSTS_INFO, S_HOSTS_INFO);
+ $cmbRes->AddItem(SCREEN_RESOURCE_TRIGGERS_INFO, S_TRIGGERS_INFO);
+ $cmbRes->AddItem(SCREEN_RESOURCE_TRIGGERS_OVERVIEW, S_TRIGGERS_OVERVIEW);
+ $cmbRes->AddItem(SCREEN_RESOURCE_DATA_OVERVIEW, S_DATA_OVERVIEW);
+ $cmbRes->AddItem(SCREEN_RESOURCE_CLOCK, S_CLOCK);
+ $cmbRes->AddItem(SCREEN_RESOURCE_URL, S_URL);
+ $cmbRes->AddItem(SCREEN_RESOURCE_ACTIONS, S_HISTORY_OF_ACTIONS);
+ $cmbRes->AddItem(SCREEN_RESOURCE_EVENTS, S_HISTORY_OF_EVENTS);
+ $form->AddRow(S_RESOURCE,$cmbRes);
+
+ if($resourcetype == SCREEN_RESOURCE_GRAPH){
+ // User-defined graph
+ $resourceid = graph_accessible($resourceid)?$resourceid:0;
+
+ $caption = '';
+ $id=0;
+
+ if($resourceid > 0){
+ $result = DBselect('SELECT DISTINCT g.graphid,g.name,n.name as node_name, h.host'.
+ ' FROM graphs g '.
+ ' LEFT JOIN graphs_items gi ON g.graphid=gi.graphid '.
+ ' LEFT JOIN items i ON gi.itemid=i.itemid '.
+ ' LEFT JOIN hosts h ON h.hostid=i.hostid '.
+ ' LEFT JOIN nodes n ON n.nodeid='.DBid2nodeid('g.graphid').
+ ' WHERE g.graphid='.$resourceid);
+
+ while($row=DBfetch($result)){
+ $row["node_name"] = isset($row["node_name"]) ? "(".$row["node_name"].") " : '';
+ $caption = $row["node_name"].$row["host"].":".$row["name"];
+ $id = $resourceid;
+ }
+ }
+
+ $form->AddVar('resourceid',$id);
+
+ $textfield = new Ctextbox('caption',$caption,75,'yes');
+ $selectbtn = new Cbutton('select',S_SELECT,"javascript: return PopUp('popup.php?dstfrm=".$form->getName()."&dstfld1=resourceid&dstfld2=caption&srctbl=graphs&srcfld1=graphid&srcfld2=name',800,450);");
+ $selectbtn->AddOption('onmouseover','javascript: this.style.cursor = "pointer";');
+
+ $form->AddRow(S_GRAPH_NAME,array($textfield,SPACE,$selectbtn));
+
+ }
+ else if($resourcetype == SCREEN_RESOURCE_SIMPLE_GRAPH){
+ // Simple graph
+ $caption = '';
+ $id=0;
+
+ if($resourceid > 0){
+ $result=DBselect('SELECT n.name as node_name,h.host,i.description,i.itemid,i.key_ '.
+ ' FROM hosts h,items i '.
+ ' LEFT JOIN nodes n on n.nodeid='.DBid2nodeid('i.itemid').
+ ' WHERE h.hostid=i.hostid '.
+ ' AND h.status='.HOST_STATUS_MONITORED.
+ ' AND i.status='.ITEM_STATUS_ACTIVE.
+ ' AND i.hostid IN ('.get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_ONLY).')'.
+ ' AND i.itemid='.$resourceid);
+
+ while($row=DBfetch($result)){
+ $description_=item_description($row['description'],$row['key_']);
+ $row["node_name"] = isset($row["node_name"]) ? "(".$row["node_name"].") " : '';
+
+ $caption = $row['node_name'].$row['host'].': '.$description_;
+ $id = $resourceid;
+ }
+ }
+
+ $form->AddVar('resourceid',$id);
+
+ $textfield = new Ctextbox('caption',$caption,75,'yes');
+ $selectbtn = new Cbutton('select',S_SELECT,"javascript: return PopUp('popup.php?dstfrm=".$form->getName()."&dstfld1=resourceid&dstfld2=caption&srctbl=simple_graph&srcfld1=itemid&srcfld2=description',800,450);");
+ $selectbtn->AddOption('onmouseover','javascript: this.style.cursor = "pointer";');
+
+ $form->AddRow(S_PARAMETER,array($textfield,SPACE,$selectbtn));
+ }
+ else if($resourcetype == SCREEN_RESOURCE_MAP){
+ // Map
+ $caption = '';
+ $id=0;
+
+ if($resourceid > 0){
+ $result=DBselect('SELECT n.name as node_name, s.sysmapid,s.name '.
+ ' FROM sysmaps s'.
+ ' LEFT JOIN nodes n ON n.nodeid='.DBid2nodeid('s.sysmapid').
+ ' WHERE s.sysmapid='.$resourceid);
+
+ while($row=DBfetch($result)){
+ if(!sysmap_accessible($row['sysmapid'],PERM_READ_ONLY)) continue;
+
+ $row['node_name'] = isset($row['node_name']) ? '('.$row['node_name'].') ' : '';
+ $caption = $row['node_name'].$row['name'];
+ $id = $resourceid;
+ }
+ }
+
+ $form->AddVar('resourceid',$id);
+ $textfield = new Ctextbox('caption',$caption,60,'yes');
+
+ $selectbtn = new Cbutton('select',S_SELECT,"javascript: return PopUp('popup.php?dstfrm=".$form->getName()."&dstfld1=resourceid&dstfld2=caption&srctbl=sysmaps&srcfld1=sysmapid&srcfld2=name',400,450);");
+ $selectbtn->AddOption('onmouseover','javascript: this.style.cursor = "pointer";');
+
+ $form->AddRow(S_PARAMETER,array($textfield,SPACE,$selectbtn));
+
+ }
+ else if($resourcetype == SCREEN_RESOURCE_PLAIN_TEXT){
+// Plain text
+ $caption = '';
+ $id=0;
+
+ if($resourceid > 0){
+ $result=DBselect('SELECT n.name as node_name,h.host,i.description,i.itemid,i.key_ '.
+ ' FROM hosts h,items i '.
+ ' LEFT JOIN nodes n on n.nodeid='.DBid2nodeid('i.itemid').
+ ' WHERE h.hostid=i.hostid '.
+ ' AND h.status='.HOST_STATUS_MONITORED.
+ ' AND i.status='.ITEM_STATUS_ACTIVE.
+ ' AND i.hostid IN ('.get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_ONLY).')'.
+ ' AND i.itemid='.$resourceid);
+
+ while($row=DBfetch($result)){
+ $description_=item_description($row['description'],$row['key_']);
+ $row["node_name"] = isset($row["node_name"]) ? '('.$row["node_name"].') ' : '';
+
+ $caption = $row['node_name'].$row['host'].': '.$description_;
+ $id = $resourceid;
+ }
+ }
+
+ $form->AddVar('resourceid',$id);
+
+ $textfield = new Ctextbox('caption',$caption,75,'yes');
+ $selectbtn = new Cbutton('select',S_SELECT,"javascript: return PopUp('popup.php?dstfrm=".$form->getName()."&dstfld1=resourceid&dstfld2=caption&srctbl=plain_text&srcfld1=itemid&srcfld2=description',800,450);");
+ $selectbtn->AddOption('onmouseover','javascript: this.style.cursor = "pointer";');
+
+ $form->AddRow(S_PARAMETER,array($textfield,SPACE,$selectbtn));
+ $form->AddRow(S_SHOW_LINES, new CNumericBox('elements',$elements,2));
+ }
+ else if($resourcetype == SCREEN_RESOURCE_ACTIONS){
+// History of actions
+ $form->AddRow(S_SHOW_LINES, new CNumericBox('elements',$elements,2));
+ $form->AddVar('resourceid',0);
+ }
+ else if($resourcetype == SCREEN_RESOURCE_EVENTS){
+// History of events
+ $form->AddRow(S_SHOW_LINES, new CNumericBox('elements',$elements,2));
+ $form->AddVar('resourceid',0);
+ }
+ else if(uint_in_array($resourcetype,array(SCREEN_RESOURCE_TRIGGERS_OVERVIEW,SCREEN_RESOURCE_DATA_OVERVIEW))){
+// Overiews
+ $caption = '';
+ $id=0;
+
+ if($resourceid > 0){
+ $result=DBselect('SELECT DISTINCT n.name as node_name,g.groupid,g.name '.
+ ' FROM hosts_groups hg,hosts h,groups g '.
+ ' LEFT JOIN nodes n ON n.nodeid='.DBid2nodeid('g.groupid').
+ ' WHERE g.groupid IN ('.get_accessible_groups_by_user($USER_DETAILS,PERM_READ_ONLY).')'.
+ ' AND g.groupid=hg.groupid '.
+ ' AND hg.hostid=h.hostid '.
+ ' AND h.status='.HOST_STATUS_MONITORED.
+ ' AND g.groupid='.$resourceid);
+
+ while($row=DBfetch($result)){
+ $row['node_name'] = isset($row['node_name']) ? '('.$row['node_name'].') ' : '';
+
+ $caption = $row['node_name'].$row['name'];
+ $id = $resourceid;
+ }
+ }
+
+ $form->AddVar('resourceid',$id);
+
+ $textfield = new Ctextbox('caption',$caption,75,'yes');
+ $selectbtn = new Cbutton('select',S_SELECT,"javascript: return PopUp('popup.php?dstfrm=".$form->getName()."&dstfld1=resourceid&dstfld2=caption&srctbl=overview&srcfld1=groupid&srcfld2=name',800,450);");
+ $selectbtn->AddOption('onmouseover','javascript: this.style.cursor = "pointer";');
+
+ $form->AddRow(S_GROUP,array($textfield,SPACE,$selectbtn));
+ }
+ else if($resourcetype == SCREEN_RESOURCE_SCREEN){
+// Screens
+ $caption = '';
+ $id=0;
+
+ if($resourceid > 0){
+ $result=DBselect('SELECT DISTINCT n.name as node_name,s.screenid,s.name '.
+ ' FROM screens s '.
+ ' LEFT JOIN nodes n ON n.nodeid='.DBid2nodeid('s.screenid').
+ ' WHERE s.screenid='.$resourceid);
+
+ while($row=DBfetch($result)){
+ if(!screen_accessible($row['screenid'], PERM_READ_ONLY)) continue;
+ if(check_screen_recursion($_REQUEST['screenid'],$row['screenid'])) continue;
+
+ $row['node_name'] = isset($row['node_name']) ? '('.$row['node_name'].') ' : '';
+ $caption = $row['node_name'].$row['name'];
+ $id = $resourceid;
+ }
+ }
+
+ $form->AddVar('resourceid',$id);
+
+ $textfield = new Ctextbox('caption',$caption,60,'yes');
+ $selectbtn = new Cbutton('select',S_SELECT,"javascript: return PopUp('popup.php?dstfrm=".$form->getName()."&dstfld1=resourceid&dstfld2=caption&srctbl=screens2&srcfld1=screenid&srcfld2=name&screenid=".$_REQUEST['screenid']."',800,450);");
+ $selectbtn->AddOption('onmouseover','javascript: this.style.cursor = "pointer";');
+
+ $form->AddRow(S_PARAMETER,array($textfield,SPACE,$selectbtn));
+ }
+ else if($resourcetype == SCREEN_RESOURCE_HOSTS_INFO){
+// HOTS info
+ $caption = '';
+ $id=0;
+
+ if(remove_nodes_from_id($resourceid) > 0){
+ $result=DBselect('SELECT DISTINCT n.name as node_name,g.groupid,g.name '.
+ ' FROM hosts_groups hg, groups g '.
+ ' LEFT JOIN nodes n ON n.nodeid='.DBid2nodeid('g.groupid').
+ ' WHERE g.groupid in ('.get_accessible_groups_by_user($USER_DETAILS,PERM_READ_ONLY).')'.
+ ' AND g.groupid='.$resourceid);
+
+ while($row=DBfetch($result)){
+ $row['node_name'] = isset($row['node_name']) ? '('.$row['node_name'].') ' : '';
+ $caption = $row['node_name'].$row['name'];
+ $id = $resourceid;
+ }
+ }
+ else if(remove_nodes_from_id($resourceid)==0){
+ $result=DBselect('SELECT DISTINCT n.name as node_name '.
+ ' FROM nodes n '.
+ ' WHERE n.nodeid='.id2nodeid($resourceid));
+
+ while($row=DBfetch($result)){
+ $row['node_name'] = isset($row['node_name']) ? '('.$row['node_name'].') ' : '';
+ $caption = $row['node_name'].S_MINUS_ALL_GROUPS_MINUS;
+ $id = $resourceid;
+ }
+ }
+
+ $form->AddVar('resourceid',$id);
+
+ $textfield = new Ctextbox('caption',$caption,60,'yes');
+ $selectbtn = new Cbutton('select',S_SELECT,"javascript: return PopUp('popup.php?dstfrm=".$form->getName()."&dstfld1=resourceid&dstfld2=caption&srctbl=host_group_scr&srcfld1=groupid&srcfld2=name',480,450);");
+ $selectbtn->AddOption('onmouseover','javascript: this.style.cursor = "pointer";');
+
+ $form->AddRow(S_GROUP,array($textfield,SPACE,$selectbtn));
+ }
+ else{
+// SCREEN_RESOURCE_TRIGGERS_INFO, SCREEN_RESOURCE_CLOCK
+ $form->AddVar("resourceid",0);
+ }
+
+ if(uint_in_array($resourcetype,array(SCREEN_RESOURCE_HOSTS_INFO,SCREEN_RESOURCE_TRIGGERS_INFO))){
+ $cmbStyle = new CComboBox("style", $style);
+ $cmbStyle->AddItem(STYLE_HORISONTAL, S_HORISONTAL);
+ $cmbStyle->AddItem(STYLE_VERTICAL, S_VERTICAL);
+ $form->AddRow(S_STYLE, $cmbStyle);
+ }
+ else if(uint_in_array($resourcetype,array(SCREEN_RESOURCE_TRIGGERS_OVERVIEW,SCREEN_RESOURCE_DATA_OVERVIEW))){
+ $cmbStyle = new CComboBox('style', $style);
+ $cmbStyle->AddItem(STYLE_LEFT, S_LEFT);
+ $cmbStyle->AddItem(STYLE_TOP, S_TOP);
+ $form->AddRow(S_HOSTS_LOCATION, $cmbStyle);
+ }
+ else if($resourcetype == SCREEN_RESOURCE_CLOCK){
+ $cmbStyle = new CComboBox("style", $style);
+ $cmbStyle->AddItem(TIME_TYPE_LOCAL, S_LOCAL_TIME);
+ $cmbStyle->AddItem(TIME_TYPE_SERVER, S_SERVER_TIME);
+ $form->AddRow(S_TIME_TYPE, $cmbStyle);
+ }
+ else{
+ $form->AddVar("style", 0);
+ }
+
+ if(uint_in_array($resourcetype,array(SCREEN_RESOURCE_URL))){
+ $form->AddRow(S_URL, new CTextBox("url",$url,60));
+ }
+ else{
+ $form->AddVar("url", "");
+ }
+
+ if(uint_in_array($resourcetype,array(SCREEN_RESOURCE_GRAPH,SCREEN_RESOURCE_SIMPLE_GRAPH,SCREEN_RESOURCE_CLOCK,SCREEN_RESOURCE_URL))){
+ $form->AddRow(S_WIDTH, new CNumericBox("width",$width,5));
+ $form->AddRow(S_HEIGHT, new CNumericBox("height",$height,5));
+ }
+ else{
+ $form->AddVar("width", 500);
+ $form->AddVar("height", 100);
+ }
+
+ if(uint_in_array($resourcetype,array(SCREEN_RESOURCE_GRAPH,SCREEN_RESOURCE_SIMPLE_GRAPH,SCREEN_RESOURCE_MAP,
+ SCREEN_RESOURCE_CLOCK,SCREEN_RESOURCE_URL))){
+ $cmbHalign = new CComboBox("halign",$halign);
+ $cmbHalign->AddItem(HALIGN_CENTER, S_CENTER);
+ $cmbHalign->AddItem(HALIGN_LEFT, S_LEFT);
+ $cmbHalign->AddItem(HALIGN_RIGHT, S_RIGHT);
+ $form->AddRow(S_HORISONTAL_ALIGN, $cmbHalign);
+ }
+ else{
+ $form->AddVar("halign", 0);
+ }
+
+ $cmbValign = new CComboBox("valign",$valign);
+ $cmbValign->AddItem(VALIGN_MIDDLE, S_MIDDLE);
+ $cmbValign->AddItem(VALIGN_TOP, S_TOP);
+ $cmbValign->AddItem(VALIGN_BOTTOM, S_BOTTOM);
+ $form->AddRow(S_VERTICAL_ALIGN, $cmbValign);
+
+ $form->AddRow(S_COLUMN_SPAN, new CNumericBox("colspan",$colspan,2));
+ $form->AddRow(S_ROW_SPAN, new CNumericBox("rowspan",$rowspan,2));
+
+// dynamic AddOn
+ if(uint_in_array($resourcetype,array(SCREEN_RESOURCE_GRAPH,SCREEN_RESOURCE_SIMPLE_GRAPH,SCREEN_RESOURCE_PLAIN_TEXT))){
+ $form->AddRow(S_DYNAMIC_ITEM, new CCheckBox("dynamic",$dynamic,null,1));
+ }
+
+ $form->AddItemToBottomRow(new CButton("save",S_SAVE));
+ if(isset($_REQUEST["screenitemid"])){
+ $form->AddItemToBottomRow(SPACE);
+ $form->AddItemToBottomRow(new CButtonDelete(null,
+ url_param("form").url_param("screenid").url_param("screenitemid")));
+ }
+ $form->AddItemToBottomRow(SPACE);
+ $form->AddItemToBottomRow(new CButtonCancel(url_param("screenid")));
+ return $form;
+ }
// editmode: 0 - view with actions, 1 - edit mode, 2 - view without any actions
function get_screen($screenid, $editmode, $effectiveperiod=NULL)
@@ -265,8 +830,7 @@
" where screenid=$screenid and x=$c and y=$r");
$irow = DBfetch($iresult);
- if($irow)
- {
+ if($irow){
$screenitemid = $irow["screenitemid"];
$resourcetype = $irow["resourcetype"];
$resourceid = $irow["resourceid"];
@@ -281,8 +845,7 @@
$url = $irow["url"];
$dynamic = $irow['dynamic'];
}
- else
- {
+ else{
$screenitemid = 0;
$resourcetype = 0;
$resourceid = 0;
@@ -294,15 +857,14 @@
$valign = VALIGN_DEFAULT;
$halign = HALIGN_DEFAULT;
$style = 0;
- $url = "";
+ $url = '';
$dynamic = 0;
}
if($editmode == 1 && $screenitemid!=0)
- $action = "screenedit.php?form=update".url_param("screenid").
- "&screenitemid=$screenitemid#form";
+ $action = 'screenedit.php?form=update'.url_param('screenid').'&screenitemid='.$screenitemid.'#form';
else if ($editmode == 1 && $screenitemid==0)
- $action = "screenedit.php?form=update".url_param("screenid")."&x=$c&y=$r#form";
+ $action = 'screenedit.php?form=update'.url_param('screenid').'&x='.$c.'&y='.$r.'#form';
else
$action = NULL;
@@ -362,7 +924,7 @@
$di_res = get_graphitems_by_graphid($resourceid);
while( $gitem = DBfetch($di_res)){
$def_items[] = $gitem;
- };
+ }
$url='';
if($new_items = get_same_graphitems_for_host($def_items, $_REQUEST['hostid'], false)){
@@ -541,185 +1103,4 @@
}
return $table;
}
-
- function slideshow_accessible($slideshowid, $perm)
- {
- $result = false;
-
- if(DBselect('select slideshowid from slideshows where slideshowid='.$slideshowid.
- ' and '.DBin_node('slideshowid', get_current_nodeid($perm))))
- {
- $result = true;
- $db_slides = DBselect('select distinct screenid from slides where slideshowid='.$slideshowid);
- while($slide_data = DBfetch($db_slides))
- {
- if( !($result = screen_accessible($slide_data["screenid"], PERM_READ_ONLY)) ) break;
- }
- }
- return $result;
- }
-
- function get_slideshow_by_slideshowid($slideshowid)
- {
- return DBfetch(DBselect('select * from slideshows where slideshowid='.$slideshowid));
- }
-
- function validate_slide($slide)
- {
- if(!screen_accessible($slide["screenid"], PERM_READ_ONLY)) return false;
-
- if( !is_numeric($slide['delay']) ) return false;
-
- return true;
- }
-
- function add_slideshow($name, $delay, $slides)
- {
- foreach($slides as $slide)
- {
- if( !validate_slide($slide) )
- return false;
- }
-
- $slideshowid = get_dbid('slideshows','slideshowid');
- $result = DBexecute('insert into slideshows (slideshowid,name,delay) '.
- ' values ('.$slideshowid.','.zbx_dbstr($name).','.$delay.')');
-
- $i = 0;
- foreach($slides as $slide)
- {
- $slideid = get_dbid('slides','slideid');
- if( !($result = DBexecute('insert into slides (slideid,slideshowid,screenid,step,delay) '.
- ' values ('.$slideid.','.$slideshowid.','.$slide['screenid'].','.($i++).','.$slide['delay'].')')) )
- {
- break;
- }
- }
-
- if( !$result )
- {
- delete_slideshow($slideshowid);
- return false;
- }
- return $slideshowid;
- }
-
- function update_slideshow($slideshowid, $name, $delay, $slides){
- foreach($slides as $slide){
- if(!validate_slide($slide))
- return false;
- }
-
- if(!$result = DBexecute('update slideshows set name='.zbx_dbstr($name).',delay='.$delay.' where slideshowid='.$slideshowid))
- return false;
-
- DBexecute('DELETE FROM slides where slideshowid='.$slideshowid);
-
- $i = 0;
- foreach($slides as $slide){
- $slideid = get_dbid('slides','slideid');
- if( !($result = DBexecute('insert into slides (slideid,slideshowid,screenid,step,delay) '.
- ' values ('.$slideid.','.$slideshowid.','.$slide['screenid'].','.($i++).','.$slide['delay'].')')) ){
- return false;
- }
- }
-
- return true;
- }
-
- function delete_slideshow($slideshowid){
-
- $result = DBexecute('DELETE FROM slideshows where slideshowid='.$slideshowid);
- $result &= DBexecute('DELETE FROM slides where slideshowid='.$slideshowid);
- $result &= DBexecute("DELETE FROM profiles WHERE idx='web.favorite.screenids' AND source='slideshowid' AND value_id=$slideshowid");
-
- return $result;
- }
-
-
- # Show screen cell containing plain text values
- function get_screen_plaintext($itemid,$elements){
-
- if($itemid == 0){
- $table = new CTableInfo(S_ITEM_NOT_EXISTS);
- $table->SetHeader(array(S_TIMESTAMP,S_ITEM));
- return $table;
- }
-
- global $DB;
-
- $item=get_item_by_itemid($itemid);
- switch($item["value_type"]){
- case ITEM_VALUE_TYPE_FLOAT: $history_table = "history"; break;
- case ITEM_VALUE_TYPE_UINT64: $history_table = "history_uint"; break;
- case ITEM_VALUE_TYPE_TEXT: $history_table = "history_text"; break;
- case ITEM_VALUE_TYPE_LOG: $history_table = "history_log"; break;
- default: $history_table = "history_str"; break;
- }
-
- $sql='SELECT h.clock,h.value,i.valuemapid '.
- ' FROM '.$history_table.' h, items i '.
- ' WHERE h.itemid=i.itemid '.
- ' AND i.itemid='.$itemid.
- ' ORDER BY h.clock DESC';
-
- $result=DBselect($sql,$elements);
-
- $host = get_host_by_itemid($itemid);
-
- $table = new CTableInfo();
- $table->SetHeader(array(S_TIMESTAMP,item_description($host['host'].': '.$item["description"],$item["key_"])));
-
- while($row=DBfetch($result)){
- switch($item["value_type"])
- {
- case ITEM_VALUE_TYPE_TEXT:
- if($DB['TYPE'] == "ORACLE")
- {
- if(isset($row["value"]))
- {
- $row["value"] = $row["value"]->load();
- }
- else
- {
- $row["value"] = "";
- }
- }
- /* do not use break */
- case ITEM_VALUE_TYPE_STR:
- $value = nl2br(nbsp(htmlspecialchars($row["value"])));
- break;
-
- default:
- $value = $row["value"];
- break;
- }
-
- if($row["valuemapid"] > 0)
- $value = replace_value_by_map($value, $row["valuemapid"]);
-
- $table->AddRow(array(date(S_DATE_FORMAT_YMDHMS,$row["clock"]), $value));
- }
- return $table;
- }
-
-/*
-* Function:
-* check_dynamic_items
-*
-* Description:
-* Check if in screen are dynamic items, if so return TRUE, esle FALSE
-*
-* Author:
-* Aly
-*/
-
- function check_dynamic_items($screenid){
- $sql = 'SELECT screenitemid '.
- ' FROM screens_items '.
- ' WHERE screenid='.$screenid.
- ' AND dynamic='.SCREEN_DYNAMIC_ITEM;
- if(DBfetch(DBselect($sql,1))) return TRUE;
- return FALSE;
- }
?>