summaryrefslogtreecommitdiffstats
path: root/frontends/php/include
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
parent616715ae783f353d07b1cfa1f48a7631c165a2f8 (diff)
downloadzabbix-da89a85a0eeed1b50bc3b5e38b3392e852fa0f72.tar.gz
zabbix-da89a85a0eeed1b50bc3b5e38b3392e852fa0f72.tar.xz
zabbix-da89a85a0eeed1b50bc3b5e38b3392e852fa0f72.zip
- [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')
-rw-r--r--frontends/php/include/classes/ctag.inc.php120
-rw-r--r--frontends/php/include/forms.inc.php470
-rw-r--r--frontends/php/include/graphs.inc.php44
-rw-r--r--frontends/php/include/html.inc.php1
-rw-r--r--frontends/php/include/items.inc.php278
-rw-r--r--frontends/php/include/screens.inc.php761
-rw-r--r--frontends/php/include/triggers.inc.php8
7 files changed, 837 insertions, 845 deletions
diff --git a/frontends/php/include/classes/ctag.inc.php b/frontends/php/include/classes/ctag.inc.php
index e05ac3f1..ed44da5c 100644
--- a/frontends/php/include/classes/ctag.inc.php
+++ b/frontends/php/include/classes/ctag.inc.php
@@ -90,11 +90,16 @@
$this->CleanItems();
}
- function CleanItems() { $this->items = array(); }
- function ItemsCount() { return count($this->items); }
+ function CleanItems(){
+ $this->items = array();
+ }
+
+ function ItemsCount(){
+ return count($this->items);
+ }
+
+ function AddItem($value){
- function AddItem($value)
- {
if(is_object($value)){
array_push($this->items,unpack_object($value));
}
@@ -113,8 +118,7 @@
}
}
- class CTag extends CObject
- {
+ class CTag extends CObject{
/* private *//*
var $tagname;
var $options = array();
@@ -128,122 +132,113 @@
var $tag_end;*/
/* public */
- function CTag($tagname=NULL, $paired='no', $body=NULL, $class=null)
- {
+ function CTag($tagname=NULL, $paired='no', $body=NULL, $class=null){
parent::CObject();
$this->options = array();
- if(!is_string($tagname))
- {
+ if(!is_string($tagname)){
return $this->error('Incorrect tagname for CTag ['.$tagname.']');
}
+
$this->tagname = $tagname;
$this->paired = $paired;
$this->tag_start = $this->tag_end = $this->tag_body_start = $this->tag_body_end = '';
- if(is_null($body))
- {
+ if(is_null($body)){
$this->tag_end = $this->tag_body_start = "\n";
}
- else
- {
+ else{
CTag::AddItem($body);
}
$this->SetClass($class);
-
}
+
function ShowStart() { echo $this->StartToString(); }
function ShowBody() { echo $this->BodyToString(); }
function ShowEnd() { echo $this->EndToString(); }
- function StartToString()
- {
+ function StartToString(){
$res = $this->tag_start.'<'.$this->tagname;
- foreach($this->options as $key => $value)
- {
+ foreach($this->options as $key => $value){
$res .= ' '.$key.'="'.$value.'"';
}
$res .= ($this->paired=='yes') ? '>' : '/>';
- return $res;
+ return $res;
}
- function BodyToString()
- {
+
+ function BodyToString(){
$res = $this->tag_body_start;
- return $res.parent::ToString(false);
+ return $res.parent::ToString(false);
/*foreach($this->items as $item)
$res .= $item;
return $res;*/
}
- function EndToString()
- {
+
+ function EndToString(){
$res = ($this->paired=='yes') ? $this->tag_body_end.'</'.$this->tagname.'>' : '';
$res .= $this->tag_end;
- return $res;
+ return $res;
}
- function ToString($destroy=true)
- {
+
+ function ToString($destroy=true){
$res = $this->StartToString();
$res .= $this->BodyToString();
$res .= $this->EndToString();
if($destroy) $this->Destroy();
- return $res;
+ return $res;
}
- function SetName($value)
- {
+
+ function SetName($value){
if(is_null($value)) return $value;
- if(!is_string($value))
- {
+ if(!is_string($value)){
return $this->error("Incorrect value for SetName [$value]");
}
- return $this->AddOption("name",$value);
+ return $this->AddOption("name",$value);
}
- function GetName()
- {
+
+ function GetName(){
if(isset($this->options['name']))
return $this->options['name'];
- return NULL;
+ return NULL;
}
- function SetClass($value)
- {
+
+ function SetClass($value){
if(isset($value))
$this->options['class'] = $value;
else
unset($this->options['class']);
- return $value;
+ return $value;
}
- function DelOption($name)
- {
+
+ function DelOption($name){
unset($this->options[$name]);
}
- function GetOption($name)
- {
+
+ function GetOption($name){
$ret = NULL;
if(isset($this->options[$name]))
$ret =& $this->options[$name];
- return $ret;
+ return $ret;
}
- function SetHint($text, $width='', $class='')
- {
+ function SetHint($text, $width='', $class=''){
if(empty($text)) return false;
insert_showhint_javascript();
$text = unpack_object($text);
- if($width != '' || $class!= '')
- {
+ if($width != '' || $class != ''){
$code = "show_hint_ext(this,event,'".$text."','".$width."','".$class."');";
}
- else
- {
+ else{
$code = "show_hint(this,event,'".$text."');";
}
@@ -251,13 +246,11 @@
$this->AddAction('onMouseMove', 'update_hint(this,event);');
}
- function OnClick($handle_code)
- {
+ function OnClick($handle_code){
$this->AddAction('onclick', $handle_code);
}
- function AddAction($name, $value)
- {
+ function AddAction($name, $value){
if(is_object($value)){
$this->options[$name] = unpack_object($value);
}
@@ -266,8 +259,7 @@
}
}
- function AddOption($name, $value)
- {
+ function AddOption($name, $value){
if(is_object($value)){
$this->options[$name] = unpack_object($value);
}
@@ -277,24 +269,22 @@
unset($this->options[$name]);
}
- function SetEnabled($value='yes')
- {
+ function SetEnabled($value='yes'){
if((is_string($value) && ($value == 'yes' || $value == 'enabled' || $value=='on') || $value=='1')
- || (is_int($value) && $value<>0))
+ || (is_int($value) && $value<>0))
{
unset($this->options['disabled']);
}
- elseif((is_string($value) && ($value == 'no' || $value == 'disabled' || $value=='off') || $value=='0')
- || (is_int($value) && $value==0))
+ else if((is_string($value) && ($value == 'no' || $value == 'disabled' || $value=='off') || $value=='0')
+ || (is_int($value) && $value==0))
{
$this->options['disabled'] = 'disabled';
}
}
- function error($value)
- {
+
+ function error($value){
error('class('.get_class($this).') - '.$value);
return 1;
}
-
}
?>
diff --git a/frontends/php/include/forms.inc.php b/frontends/php/include/forms.inc.php
index 080b62b7..3d77e844 100644
--- a/frontends/php/include/forms.inc.php
+++ b/frontends/php/include/forms.inc.php
@@ -2093,9 +2093,8 @@
// TRIGGERS
function insert_mass_update_trigger_form(){//$elements_array_name){
global $USER_DETAILS;
-SDI($_REQUEST);
- $visible = get_request('visible',array());
+ $visible = get_request('visible',array());
$priority = get_request('priority', '');
$dependencies = get_request('dependencies',array());
@@ -3899,390 +3898,6 @@ SDI($_REQUEST);
$frmScr->Show();
}
- 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", 0);
- $form->AddVar("height", 0);
- }
-
- 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;
- }
-
function insert_housekeeper_form(){
$config=select_config();
@@ -4626,7 +4241,7 @@ SDI($_REQUEST);
$status = $db_host['status'];
$useip = $db_host['useip'];
$dns = $db_host['dns'];
- $ip = $db_host['ip'];
+ $ip = $db_host['ip'];
// add groups
$db_groups=DBselect('SELECT DISTINCT groupid '.
@@ -4795,25 +4410,96 @@ SDI($_REQUEST);
$frmHost->AddVar("notes", $notes);
}
+ if($_REQUEST['form'] == 'full_clone'){
+// Host items
+ $items_lbx = new CListBox('items',null,8);
+ $items_lbx->AddOption('disabled','disabled');
+
+ $sql = 'SELECT * '.
+ ' FROM items '.
+ ' WHERE hostid='.$_REQUEST['hostid'].
+ ' AND templateid=0 '.
+ ' ORDER BY description';
+
+ $host_items_res = DBselect($sql);
+ while($host_item = DBfetch($host_items_res)){
+ $item_description = item_description($host_item['description'],$host_item['key_']);
+ $items_lbx->AddItem($host_item['itemid'],$item_description);
+ }
+
+ if($items_lbx->ItemsCount() < 1) $items_lbx->AddOption('style','width: 200px;');
+ $frmHost->AddRow(S_ITEMS, $items_lbx);
+
+// Host triggers
+ $available_triggers = get_accessible_triggers(PERM_READ_ONLY, PERM_RES_IDS_ARRAY);
+
+ $trig_lbx = new CListBox('triggers',null,8);
+ $trig_lbx->AddOption('disabled','disabled');
+
+ $sql = 'SELECT DISTINCT t.* '.
+ ' FROM triggers t, items i, functions f'.
+ ' WHERE i.hostid='.$_REQUEST['hostid'].
+ ' AND f.itemid=i.itemid '.
+ ' AND t.triggerid=f.triggerid '.
+ ' AND '.DBcondition('t.triggerid', $available_triggers).
+ ' AND t.templateid=0 '.
+ ' ORDER BY t.description';
+
+ $host_trig_res = DBselect($sql);
+ while($host_trig = DBfetch($host_trig_res)){
+ $trig_description = expand_trigger_description($host_trig["triggerid"]);
+ $trig_lbx->AddItem($host_trig['triggerid'],$trig_description);
+ }
+
+ if($trig_lbx->ItemsCount() < 1) $trig_lbx->AddOption('style','width: 200px;');
+ $frmHost->AddRow(S_TRIGGERS, $trig_lbx);
+
+// Host graphs
+ $available_graphs = get_accessible_graphs(PERM_READ_ONLY, PERM_RES_IDS_ARRAY);
+
+ $graphs_lbx = new CListBox('graphs',null,8);
+ $graphs_lbx->AddOption('disabled','disabled');
+
+ $def_items = array();
+ $sql = 'SELECT DISTINCT g.* '.
+ ' FROM graphs g, graphs_items gi,items i '.
+ ' WHERE '.DBcondition('g.graphid',$available_graphs).
+ ' AND gi.graphid=g.graphid '.
+ ' AND g.templateid=0 '.
+ ' AND i.itemid=gi.itemid '.
+ ' AND i.hostid='.$_REQUEST['hostid'].
+ ' ORDER BY g.name';
+
+ $host_graph_res = DBselect($sql);
+ while($host_graph = DBfetch($host_graph_res)){
+ $graphs_lbx->AddItem($host_graph['graphid'],$host_graph['name']);
+ }
+
+ if($graphs_lbx->ItemsCount() < 1) $graphs_lbx->AddOption('style','width: 200px;');
+
+ $frmHost->AddRow(S_GRAPHS, $graphs_lbx);
+ }
+
$frmHost->AddItemToBottomRow(new CButton("save",S_SAVE));
if(isset($_REQUEST["hostid"])){
$frmHost->AddItemToBottomRow(SPACE);
$frmHost->AddItemToBottomRow(new CButton("clone",S_CLONE));
$frmHost->AddItemToBottomRow(SPACE);
+ $frmHost->AddItemToBottomRow(new CButton("full_clone",S_FULL_CLONE));
+
+ $frmHost->AddItemToBottomRow(SPACE);
$frmHost->AddItemToBottomRow(
new CButtonDelete(S_DELETE_SELECTED_HOST_Q,
url_param("form").url_param("config").url_param("hostid").
url_param("groupid")
- )
- );
+ ));
- if($show_only_tmp)
- {
+ if($show_only_tmp){
$frmHost->AddItemToBottomRow(SPACE);
$frmHost->AddItemToBottomRow(
new CButtonQMessage('delete_and_clear',
'Delete AND clear',
- S_DELETE_SELECTED_HOSTS_Q,
+ S_DELETE_SELECTED_HOSTS_Q,
url_param("form").url_param("config").url_param("hostid").
url_param("groupid")
)
diff --git a/frontends/php/include/graphs.inc.php b/frontends/php/include/graphs.inc.php
index 8c203c6b..7159d424 100644
--- a/frontends/php/include/graphs.inc.php
+++ b/frontends/php/include/graphs.inc.php
@@ -802,8 +802,7 @@
$db_graphs = get_graphs_by_hostid($templateid);
- while($db_graph = DBfetch($db_graphs))
- {
+ while($db_graph = DBfetch($db_graphs)){
copy_graph_to_host($db_graph["graphid"], $hostid, $copy_mode);
}
}
@@ -820,15 +819,13 @@
* Comments: !!! Don't forget sync code with C !!!
*
*/
- function copy_graph_to_host($graphid, $hostid, $copy_mode = false)
- {
+ function copy_graph_to_host($graphid, $hostid, $copy_mode = false){
$result = false;
$gitems = array();
$db_graph_items = get_graphitems_by_graphid($graphid);
- while( $db_gitem = DBfetch($db_graph_items) )
- {
+ while( $db_gitem = DBfetch($db_graph_items) ){
$gitems[] = array(
'itemid' => $db_gitem['itemid'],
'color' => $db_gitem['color'],
@@ -843,68 +840,63 @@
$db_graph = get_graph_by_graphid($graphid);
- if ( ($new_gitems = get_same_graphitems_for_host($gitems, $hostid)) )
- {
+ if ( ($new_gitems = get_same_graphitems_for_host($gitems, $hostid)) ){
unset($chd_graphid);
+
$chd_graphs = get_graphs_by_hostid($hostid);
- while( !isset($chd_graphid) && $chd_graph = DBfetch($chd_graphs))
- { /* compare graphs */
+ while( !isset($chd_graphid) && $chd_graph = DBfetch($chd_graphs)){
+/* compare graphs */
if ( $chd_graph['templateid'] != 0 ) continue;
unset($equal);
$chd_gitems = get_graphitems_by_graphid($chd_graph["graphid"]);
- while($chd_gitem = DBfetch($chd_gitems))
- {
+ while($chd_gitem = DBfetch($chd_gitems)){
unset($gitem_equal);
- foreach($new_gitems as $new_gitem)
- {
+
+ foreach($new_gitems as $new_gitem){
if(cmp_graphitems($new_gitem, $chd_gitem)) continue;
$gitem_equal = true;
break;
}
- if ( !isset($gitem_equal) )
- {
+ if(!isset($gitem_equal)){
unset($equal);
break;
}
/* founded equal graph item */
- if ( !isset($equal) ) $equal = 0;
+ if(!isset($equal))$equal = 0;
$equal++;
}
- if ( isset($equal) && count($new_gitems) == $equal )
- { /* founded equal graph */
+ if(isset($equal) && (count($new_gitems) == $equal)){
+/* founded equal graph */
$chd_graphid = $chd_graph["graphid"];
break;
}
}
- if ( isset($chd_graphid) )
- {
+ if(isset($chd_graphid)){
$result = update_graph_with_items($chd_graphid, $db_graph['name'], $db_graph['width'], $db_graph['height'],
$db_graph['yaxistype'], $db_graph['yaxismin'], $db_graph['yaxismax'],
$db_graph['show_work_period'], $db_graph['show_triggers'], $db_graph['graphtype'],
$db_graph['show_legend'], $db_graph['show_3d'], $new_gitems, ($copy_mode ? 0: $db_graph['graphid']));
}
- else
- {
+ else{
$result = add_graph_with_items($db_graph['name'], $db_graph['width'], $db_graph['height'],
$db_graph['yaxistype'], $db_graph['yaxismin'], $db_graph['yaxismax'],
$db_graph['show_work_period'], $db_graph['show_triggers'], $db_graph['graphtype'],
$db_graph['show_legend'], $db_graph['show_3d'], $new_gitems, ($copy_mode ? 0: $db_graph['graphid']));
}
}
- else
- {
+ else{
$host = get_host_by_hostid($hostid);
info('Skipped coping of graph "'.$db_graph["name"].'" to host "'.$host['host'].'"');
}
- return $result;
+ return $result;
}
function navigation_bar_calc(){
diff --git a/frontends/php/include/html.inc.php b/frontends/php/include/html.inc.php
index db6d95f4..34641c23 100644
--- a/frontends/php/include/html.inc.php
+++ b/frontends/php/include/html.inc.php
@@ -178,7 +178,6 @@
// $table->AddRow($tab);
$table->AddRow($div);
-
return $table;
}
diff --git a/frontends/php/include/items.inc.php b/frontends/php/include/items.inc.php
index c2c41c9b..ee13f9b2 100644
--- a/frontends/php/include/items.inc.php
+++ b/frontends/php/include/items.inc.php
@@ -32,10 +32,8 @@
* Comments:
*
*/
- function item_type2str($type)
- {
- switch($type)
- {
+ function item_type2str($type){
+ switch($type){
case ITEM_TYPE_ZABBIX: $type = S_ZABBIX_AGENT; break;
case ITEM_TYPE_SNMPV1: $type = S_SNMPV1_AGENT; break;
case ITEM_TYPE_TRAPPER: $type = S_ZABBIX_TRAPPER; break;
@@ -50,7 +48,7 @@
case ITEM_TYPE_DB_MONITOR: $type = S_ZABBIX_DATABASE_MONITOR; break;
default:$type = S_UNKNOWN; break;
}
- return $type;
+ return $type;
}
/*
@@ -65,10 +63,8 @@
* Comments:
*
*/
- function item_value_type2str($value_type)
- {
- switch($value_type)
- {
+ function item_value_type2str($value_type){
+ switch($value_type){
case ITEM_VALUE_TYPE_UINT64: $value_type = S_NUMERIC_UINT64; break;
case ITEM_VALUE_TYPE_FLOAT: $value_type = S_NUMERIC_FLOAT; break;
case ITEM_VALUE_TYPE_STR: $value_type = S_CHARACTER; break;
@@ -76,7 +72,7 @@
case ITEM_VALUE_TYPE_TEXT: $value_type = S_TEXT; break;
default:$value_type = S_UNKNOWN; break;
}
- return $value_type;
+ return $value_type;
}
/*
@@ -91,17 +87,15 @@
* Comments:
*
*/
- function item_status2str($status)
- {
- switch($status)
- {
+ function item_status2str($status){
+ switch($status){
case ITEM_STATUS_ACTIVE: $status = S_ACTIVE; break;
case ITEM_STATUS_DISABLED: $status = S_DISABLED; break;
case ITEM_STATUS_NOTSUPPORTED: $status = S_NOT_SUPPORTED; break;
default:
$status = S_UNKNOWN; break;
}
- return $status;
+ return $status;
}
/*
@@ -116,17 +110,15 @@
* Comments:
*
*/
- function item_status2style($status)
- {
- switch($status)
- {
+ function item_status2style($status){
+ switch($status){
case ITEM_STATUS_ACTIVE: $status = 'off'; break;
case ITEM_STATUS_DISABLED: $status = 'on'; break;
case ITEM_STATUS_NOTSUPPORTED:
default:
$status = 'unknown'; break;
}
- return $status;
+ return $status;
}
# Update Item definition for selected group
@@ -134,11 +126,10 @@
{
$sql="select i.itemid,i.hostid from hosts_groups hg,items i where hg.groupid=$groupid and i.key_=".zbx_dbstr($key)." and hg.hostid=i.hostid";
$result=DBexecute($sql);
- while($row=DBfetch($result))
- {
+ while($row=DBfetch($result)){
update_item($row["itemid"],$description,$key,$row["hostid"],$delay,$history,$status,$type,$snmp_community,$snmp_oid,$value_type,$trapper_hosts,$snmp_port,$units,$multiplier,$delta,$snmpv3_securityname,$snmpv3_securitylevel,$snmpv3_authpassphrase,$snmpv3_privpassphrase,$formula,$trends,$logtimefmt,$valuemapid,$delay_flex,$params,$applications);
}
- return 1;
+ return 1;
}
# Delete Item definition from selected group
@@ -323,8 +314,7 @@
# Update Item status
- function update_item_status($itemid,$status)
- {
+ function update_item_status($itemid,$status){
if($status==ITEM_STATUS_ACTIVE)
$sql="update items set status=$status,error='' where itemid=$itemid";
else
@@ -349,33 +339,28 @@
if(($i = array_search(0,$applications)) !== FALSE)
unset($applications[$i]);
- if( !eregi('^'.ZBX_EREG_ITEM_KEY_FORMAT.'$', $key) )
- {
+ if( !eregi('^'.ZBX_EREG_ITEM_KEY_FORMAT.'$', $key) ){
error("Incorrect key format 'key_name[param1,param2,...]'");
return false;
}
- if($delay<1)
- {
+ if($delay<1){
error("Delay cannot be less than 1 second");
return FALSE;
}
- if( ($snmp_port<1)||($snmp_port>65535))
- {
+ if( ($snmp_port<1)||($snmp_port>65535)){
error("Invalid SNMP port");
return FALSE;
}
- if($value_type == ITEM_VALUE_TYPE_STR)
- {
+ if($value_type == ITEM_VALUE_TYPE_STR){
$delta=0;
}
$db_item = DBfetch(DBselect("select itemid from items".
" where hostid=$hostid and itemid<>$itemid and key_=".zbx_dbstr($key)));
- if($db_item && $templateid == 0)
- {
+ if($db_item && $templateid == 0){
error("An item with the same Key already exists for host ".$host["host"].".".
" The key must be unique.");
return FALSE;
@@ -383,8 +368,7 @@
// first update child items
$db_tmp_items = DBselect("select itemid, hostid from items where templateid=$itemid");
- while($db_tmp_item = DBfetch($db_tmp_items))
- {
+ while($db_tmp_item = DBfetch($db_tmp_items)){
// recursion
$result = update_item(
$db_tmp_item["itemid"], $description, $key, $db_tmp_item["hostid"],
@@ -401,8 +385,7 @@
return $result;
}
- if($db_item && $templateid != 0)
- {
+ if($db_item && $templateid != 0){
$result = delete_item($db_item["itemid"]);
if(!$result) {
error("Can't update item '".$host["host"].":$key'");
@@ -414,8 +397,7 @@
if(isset($_REQUEST['applications_visible'])){
$result = DBexecute("delete from items_applications where itemid=$itemid");
- foreach($applications as $appid)
- {
+ foreach($applications as $appid){
$itemappid=get_dbid("items_applications","itemappid");
DBexecute("insert into items_applications (itemappid,itemid,applicationid) values($itemappid,".$itemid.",".$appid.")");
}
@@ -437,12 +419,12 @@
"formula=".zbx_dbstr($formula).",trends=$trends,logtimefmt=".zbx_dbstr($logtimefmt).",".
"valuemapid=$valuemapid,delay_flex=".zbx_dbstr($delay_flex).",params=".zbx_dbstr($params).",".
"templateid=$templateid where itemid=$itemid");
- if($result)
- {
+
+ if($result){
info("Item '".$host["host"].":$key' updated");
-
}
- return $result;
+
+ return $result;
}
/*
@@ -614,15 +596,12 @@
* Comments: !!! Don't forget sync code with C !!!
*
*/
- function copy_template_items($hostid, $templateid = null, $copy_mode = false)
- {
- if($templateid == null)
- {
+ function copy_template_items($hostid, $templateid = null, $copy_mode = false){
+ if($templateid == null){
$templateid = array_keys(get_templates_by_hostid($hostid));
}
- if(is_array($templateid))
- {
+ if(is_array($templateid)){
foreach($templateid as $id)
copy_template_items($hostid, $id, $copy_mode); // attention recursion
return;
@@ -631,8 +610,7 @@
$db_tmp_items = get_items_by_hostid($templateid);
- while($db_tmp_item = DBfetch($db_tmp_items))
- {
+ while($db_tmp_item = DBfetch($db_tmp_items)){
add_item(
$db_tmp_item["description"],
$db_tmp_item["key_"],
@@ -678,10 +656,8 @@
return $result;
}
- # Disable Item
-
- function disable_item($itemid)
- {
+// Disable Item
+ function disable_item($itemid){
// first update status for child items
$db_tmp_items = DBselect("select itemid, hostid from items where templateid=$itemid");
while($db_tmp_item = DBfetch($db_tmp_items))
@@ -691,23 +667,20 @@
}
$result = DBexecute("update items set status=".ITEM_STATUS_DISABLED." where itemid=$itemid");
- return $result;
+ return $result;
}
- function &get_items_by_hostid($hostid)
- {
- return DBselect("select * from items where hostid=$hostid");
+ function get_items_by_hostid($hostid){
+ return DBselect('select * from items where hostid='.$hostid);
}
- function get_item_by_itemid($itemid)
- {
- $row = DBfetch(DBselect("select * from items where itemid=$itemid"));
- if($row)
- {
+ function get_item_by_itemid($itemid){
+ $row = DBfetch(DBselect('select * from items where itemid='.$itemid));
+ if($row){
return $row;
}
error("No item with itemid=[$itemid]");
- return FALSE;
+ return FALSE;
}
/*
@@ -814,44 +787,38 @@
* Comments: indexes between 1-x
*
*/
- function get_n_param($key, $num)
- {
+ function get_n_param($key, $num){
$param="";
$num--;
- if( ereg('^'.ZBX_EREG_ITEM_KEY_FORMAT.'$', $key, $arr) )
- {
+ if(ereg('^'.ZBX_EREG_ITEM_KEY_FORMAT.'$', $key, $arr)){
$params = zbx_get_params($arr[ZBX_KEY_PARAM_ID]);
- if(isset($params[$num]))
- {
+ if(isset($params[$num])){
$param = $params[$num];
}
}
- return $param;
+ return $param;
}
- function item_description($description, $key)
- {
+ function item_description($description, $key){
$descr=$description;
- for($i=9;$i>0;$i--)
- {
+ for($i=9;$i>0;$i--){
$descr=str_replace("$$i",get_n_param($key,$i),$descr);
}
- return $descr;
+ return $descr;
}
- function get_realhost_by_itemid($itemid)
- {
+ function get_realhost_by_itemid($itemid){
$itme = get_item_by_itemid($itemid);
if($itme["templateid"] <> 0)
return get_realhost_by_itemid($itme["templateid"]);
- return get_host_by_itemid($itemid);
+ return get_host_by_itemid($itemid);
}
/*
@@ -866,8 +833,7 @@
* Comments:
*
*/
- function get_items_data_overview($groupid,$view_style=null)
- {
+ function get_items_data_overview($groupid,$view_style=null){
global $USER_DETAILS;
$available_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_ONLY);
@@ -875,20 +841,23 @@
$table = new CTableInfo(S_NO_ITEMS_DEFINED);
- if($groupid > 0)
- {
+ if($groupid > 0){
$group_where = ",hosts_groups hg where hg.groupid=$groupid and hg.hostid=h.hostid and";
- } else {
+ }
+ else {
$group_where = " where";
}
COpt::profiling_start('prepare data');
$result = DBselect('select distinct h.hostid, h.host,i.itemid, i.key_, i.value_type, i.lastvalue, i.units, '.
- ' i.description, t.priority, i.valuemapid, t.value as tr_value, t.triggerid '.
- ' from hosts h,items i left join functions f on f.itemid=i.itemid left join triggers t on t.triggerid=f.triggerid '.
- $group_where.
- ' h.hostid in ('.$available_hosts.') '.
- ' and h.status='.HOST_STATUS_MONITORED.' and h.hostid=i.hostid and i.status='.ITEM_STATUS_ACTIVE.
+ ' i.description, t.priority, i.valuemapid, t.value as tr_value, t.triggerid '.
+ ' from hosts h,items i '.
+ ' left join functions f on f.itemid=i.itemid '.
+ ' left join triggers t on t.triggerid=f.triggerid '.
+ $group_where.' h.hostid in ('.$available_hosts.') '.
+ ' and h.status='.HOST_STATUS_MONITORED.
+ ' and h.hostid=i.hostid '.
+ ' and i.status='.ITEM_STATUS_ACTIVE.
' order by i.description,i.itemid');
unset($items);
@@ -925,8 +894,8 @@ COpt::profiling_start('prepare data');
);
}
}
- if(!isset($hosts))
- {
+
+ if(!isset($hosts)){
return $table;
}
@@ -936,14 +905,14 @@ COpt::profiling_start('prepare table');
if($view_style == STYLE_TOP){
$header=array(new CCol(S_ITEMS,'center'));
- foreach($hosts as $hostname)
- {
+ foreach($hosts as $hostname){
$header=array_merge($header,array(new CImg('vtext.php?text='.$hostname)));
}
+
$table->SetHeader($header,'vertical_header');
$curr_rime = time();
- foreach($items as $descr => $ithosts)
- {
+
+ foreach($items as $descr => $ithosts){
$table_row = array(nbsp($descr));
foreach($hosts as $hostname){
$table_row = get_item_data_overview_cells($table_row,$ithosts,$hostname);
@@ -953,18 +922,16 @@ COpt::profiling_start('prepare table');
}
else{
$header=array(new CCol(S_HOSTS,'center'));
- foreach($items as $descr => $ithosts)
- {
+ foreach($items as $descr => $ithosts){
$header=array_merge($header,array(new CImg('vtext.php?text='.$descr)));
}
+
$table->SetHeader($header,'vertical_header');
$curr_rime = time();
- foreach($hosts as $hostname)
- {
+ foreach($hosts as $hostname){
$table_row = array(nbsp($hostname));
- foreach($items as $descr => $ithosts)
- {
+ foreach($items as $descr => $ithosts){
$table_row = get_item_data_overview_cells($table_row,$ithosts,$hostname);
}
$table->AddRow($table_row);
@@ -1000,8 +967,7 @@ COpt::profiling_stop('prepare table');
array('tw'=>'_blank'))
);
- switch($ithosts[$hostname]['value_type'])
- {
+ switch($ithosts[$hostname]['value_type']){
case ITEM_VALUE_TYPE_UINT64:
case ITEM_VALUE_TYPE_FLOAT:
$it_ov_menu = array_merge(array(
@@ -1025,8 +991,7 @@ COpt::profiling_stop('prepare table');
// if($value == '-') $css_class = 'center';
$value_col = new CCol(array($value,$ack),$css_class);
- if(isset($it_ov_menu))
- {
+ if(isset($it_ov_menu)){
$it_ov_menu = new CPUMenu($it_ov_menu,170);
$value_col->OnClick($it_ov_menu->GetOnActionJS());
$value_col->AddOption('style', 'cursor: pointer;');
@@ -1080,13 +1045,11 @@ COpt::profiling_stop('prepare table');
* Comments: !!! Don't forget sync code with C !!! *
* *
******************************************************************************/
- function delete_history_by_itemid($itemid, $use_housekeeper=0)
- {
+ function delete_history_by_itemid($itemid, $use_housekeeper=0){
$result = delete_trends_by_itemid($itemid,$use_housekeeper);
if(!$result) return $result;
- if($use_housekeeper)
- {
+ if($use_housekeeper){
$housekeeperid = get_dbid('housekeeper','housekeeperid');
DBexecute("insert into housekeeper (housekeeperid,tablename,field,value)".
" values ($housekeeperid,'history_text','itemid',$itemid)");
@@ -1118,69 +1081,56 @@ COpt::profiling_stop('prepare table');
* Comments: !!! Don't forget sync code with C !!! *
* *
******************************************************************************/
- function delete_trends_by_itemid($itemid, $use_housekeeper=0)
- {
- if($use_housekeeper)
- {
+ function delete_trends_by_itemid($itemid, $use_housekeeper=0){
+ if($use_housekeeper){
$housekeeperid = get_dbid('housekeeper','housekeeperid');
DBexecute("insert into housekeeper (housekeeperid,tablename,field,value)".
" values ($housekeeperid, 'trends','itemid',$itemid)");
return TRUE;
}
- return DBexecute("delete from trends where itemid=$itemid");
+ return DBexecute("delete from trends where itemid=$itemid");
}
- function format_lastvalue($db_item)
- {
- if($db_item["value_type"] == ITEM_VALUE_TYPE_LOG)
- {
+ function format_lastvalue($db_item){
+ if($db_item["value_type"] == ITEM_VALUE_TYPE_LOG){
$row=DBfetch(DBselect("select value from history_log where itemid=".$db_item["itemid"]." order by clock desc", 1));
- if($row)
- {
+ if($row){
$lastvalue=/*nbsp(htmlspecialchars(*/$row["value"]/*))*/;
if(strlen($lastvalue) > 20)
$lastvalue = substr($lastvalue,0,20)." ...";
$lastvalue = nbsp(htmlspecialchars($lastvalue));
}
- else
- {
+ else{
$lastvalue="-";
}
}
- else if(isset($db_item["lastvalue"]))
- {
- if($db_item["value_type"] == ITEM_VALUE_TYPE_FLOAT)
- {
+ else if(isset($db_item["lastvalue"])){
+ if($db_item["value_type"] == ITEM_VALUE_TYPE_FLOAT){
$lastvalue=convert_units($db_item["lastvalue"],$db_item["units"]);
}
- else if($db_item["value_type"] == ITEM_VALUE_TYPE_UINT64)
- {
+ else if($db_item["value_type"] == ITEM_VALUE_TYPE_UINT64){
$lastvalue=convert_units($db_item["lastvalue"],$db_item["units"]);
}
- else if($db_item["value_type"] == ITEM_VALUE_TYPE_TEXT)
- {
+ else if($db_item["value_type"] == ITEM_VALUE_TYPE_TEXT){
$lastvalue="...";
}
- else if($db_item["value_type"] == ITEM_VALUE_TYPE_STR)
- {
+ else if($db_item["value_type"] == ITEM_VALUE_TYPE_STR){
$lastvalue=nbsp(htmlspecialchars(substr($db_item["lastvalue"],0,20)));
if(strlen($db_item["lastvalue"]) > 20)
$lastvalue .= " ...";
}
- else
- {
+ else{
$lastvalue="Unknown value type";
}
if($db_item["valuemapid"] > 0);
$lastvalue = replace_value_by_map($lastvalue, $db_item["valuemapid"]);
}
- else
- {
+ else{
$lastvalue = "-";
}
- return $lastvalue;
+ return $lastvalue;
}
/*
@@ -1199,42 +1149,38 @@ COpt::profiling_stop('prepare table');
* Comments:
*
*/
- function item_get_history($db_item, $last = 1, $clock = 0)
- {
+ function item_get_history($db_item, $last = 1, $clock = 0){
$value = NULL;
- switch($db_item["value_type"])
- {
- case ITEM_VALUE_TYPE_FLOAT:
- $table = "history";
- break;
- case ITEM_VALUE_TYPE_UINT64:
- $table = "history_uint";
- break;
- case ITEM_VALUE_TYPE_TEXT:
- $table = "history_text";
- break;
- case ITEM_VALUE_TYPE_STR:
- $table = "history_str";
- break;
- case ITEM_VALUE_TYPE_LOG:
- default:
- $table = "history_log";
- break;
+ switch($db_item["value_type"]){
+ case ITEM_VALUE_TYPE_FLOAT:
+ $table = "history";
+ break;
+ case ITEM_VALUE_TYPE_UINT64:
+ $table = "history_uint";
+ break;
+ case ITEM_VALUE_TYPE_TEXT:
+ $table = "history_text";
+ break;
+ case ITEM_VALUE_TYPE_STR:
+ $table = "history_str";
+ break;
+ case ITEM_VALUE_TYPE_LOG:
+ default:
+ $table = "history_log";
+ break;
}
- if ($last == 0)
- {
+
+ if($last == 0){
$sql = "select value from $table where itemid=".$db_item["itemid"]." and clock=$clock";
$row = DBfetch(DBselect($sql, 1));
if($row)
$value = $row["value"];
}
- else
- {
+ else{
$sql = "select max(clock) as clock from $table where itemid=".$db_item["itemid"];
$row = DBfetch(DBselect($sql));
- if ($row && !is_null($row["clock"]))
- {
+ if($row && !is_null($row["clock"])){
$clock = $row["clock"];
$sql = "select value from $table where itemid=".$db_item["itemid"]." and clock=$clock";
$row = DBfetch(DBselect($sql, 1));
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;
- }
?>
diff --git a/frontends/php/include/triggers.inc.php b/frontends/php/include/triggers.inc.php
index f9a35473..d2b6a68c 100644
--- a/frontends/php/include/triggers.inc.php
+++ b/frontends/php/include/triggers.inc.php
@@ -198,8 +198,8 @@
$available_hosts = get_accessible_hosts_by_user($USER_DETAILS, $perm, PERM_RES_IDS_ARRAY, $nodeid);
- $denied_graphs = array();
- $available_graphs = array();
+ $denied_triggers = array();
+ $available_triggers = array();
$sql = 'SELECT DISTINCT t.triggerid '.
' FROM triggers t, functions f, items i '.
@@ -207,7 +207,6 @@
' AND f.itemid=i.itemid'.
(!empty($hostid)?' AND i.hostid='.$hostid:'').
' AND '.DBcondition('i.hostid',$available_hosts,true);
-
$db_triggers = DBselect($sql);
while($trigger = DBfetch($db_triggers)){
$denied_triggers[] = $trigger['triggerid'];
@@ -217,10 +216,9 @@
' FROM triggers t, functions f, items i '.
' WHERE t.triggerid=f.triggerid '.
' AND f.itemid=i.itemid'.
- ' AND i.status='.ITEM_STATUS_ACTIVE.
(!empty($hostid)?' AND i.hostid='.$hostid:'').
(!empty($denied_triggers)?' AND '.DBcondition('t.triggerid',$denied_triggers,true):'');
-
+
$db_triggers = DBselect($sql);
while($trigger = DBfetch($db_triggers)){
$result[$trigger['triggerid']] = $trigger['triggerid'];