summaryrefslogtreecommitdiffstats
path: root/frontends/php
diff options
context:
space:
mode:
authorartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-12-07 12:36:48 +0000
committerartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-12-07 12:36:48 +0000
commitc3fe2c6239d8e04709e97ac288fb97b24b563fcd (patch)
tree5934d4ce39605f93e20c1b99fe807af6219f6a83 /frontends/php
parent1dcf65cdc43a07ecfe0c915056f1635fda709351 (diff)
downloadzabbix-c3fe2c6239d8e04709e97ac288fb97b24b563fcd.tar.gz
zabbix-c3fe2c6239d8e04709e97ac288fb97b24b563fcd.tar.xz
zabbix-c3fe2c6239d8e04709e97ac288fb97b24b563fcd.zip
- [DEV-59] improved Availability Reports (Artem)
git-svn-id: svn://svn.zabbix.com/trunk@5145 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php')
-rw-r--r--frontends/php/hosts.php16
-rw-r--r--frontends/php/include/hosts.inc.php57
-rw-r--r--frontends/php/include/locales/en_gb.inc.php2
-rw-r--r--frontends/php/include/reports.inc.php151
-rw-r--r--frontends/php/include/triggers.inc.php14
-rw-r--r--frontends/php/report2.php180
-rw-r--r--frontends/php/triggers.php14
7 files changed, 303 insertions, 131 deletions
diff --git a/frontends/php/hosts.php b/frontends/php/hosts.php
index cf60447e..1dbb293b 100644
--- a/frontends/php/hosts.php
+++ b/frontends/php/hosts.php
@@ -44,8 +44,7 @@ include_once "include/page_header.php";
if(count($available_hosts) == 0) $available_hosts = array(-1);
$available_hosts = implode(',', $available_hosts);
- if(isset($_REQUEST["groupid"]) && $_REQUEST["groupid"] > 0)
- {
+ if(isset($_REQUEST["groupid"]) && $_REQUEST["groupid"] > 0){
if(!in_array($_REQUEST["groupid"], get_accessible_groups_by_user($USER_DETAILS,PERM_READ_WRITE,null,
PERM_RES_IDS_ARRAY,get_current_nodeid())))
{
@@ -278,8 +277,7 @@ include_once "include/page_header.php";
unset($_REQUEST["delete"]);
}
/* ACTIVATE / DISABLE HOSTS */
- elseif(($_REQUEST["config"]==0 || $_REQUEST["config"]==3) &&
- (inarr_isset(array('add_to_group','hostid'))))
+ elseif(($_REQUEST["config"]==0 || $_REQUEST["config"]==3) && (inarr_isset(array('add_to_group','hostid'))))
{
global $USER_DETAILS;
@@ -294,8 +292,7 @@ include_once "include/page_header.php";
S_HOST_UPDATED,
S_CANNOT_UPDATE_HOST);
}
- elseif(($_REQUEST["config"]==0 || $_REQUEST["config"]==3) &&
- (inarr_isset(array('delete_from_group','hostid'))))
+ elseif(($_REQUEST["config"]==0 || $_REQUEST["config"]==3) && (inarr_isset(array('delete_from_group','hostid'))))
{
global $USER_DETAILS;
@@ -310,8 +307,7 @@ include_once "include/page_header.php";
show_messages(true, S_HOST_UPDATED);
}
}
- elseif(($_REQUEST["config"]==0 || $_REQUEST["config"]==3) &&
- (isset($_REQUEST["activate"])||isset($_REQUEST["disable"])))
+ elseif(($_REQUEST["config"]==0 || $_REQUEST["config"]==3) && (isset($_REQUEST["activate"])||isset($_REQUEST["disable"])))
{
$result = 0;
$status = isset($_REQUEST["activate"]) ? HOST_STATUS_MONITORED : HOST_STATUS_NOT_MONITORED;
@@ -332,8 +328,7 @@ include_once "include/page_header.php";
unset($_REQUEST["activate"]);
}
- elseif(($_REQUEST["config"]==0 || $_REQUEST["config"]==3) && isset($_REQUEST["chstatus"])
- && isset($_REQUEST["hostid"]))
+ elseif(($_REQUEST["config"]==0 || $_REQUEST["config"]==3) && isset($_REQUEST["chstatus"]) && isset($_REQUEST["hostid"]))
{
$host=get_host_by_hostid($_REQUEST["hostid"]);
$result=update_host_status($_REQUEST["hostid"],$_REQUEST["chstatus"]);
@@ -603,6 +598,7 @@ include_once "include/page_header.php";
$cmbGroups = new CComboBox("groupid",get_request("groupid",0),"submit()");
$cmbGroups->AddItem(0,S_ALL_SMALL);
+
$result=DBselect("select distinct g.groupid,g.name from groups g,hosts_groups hg,hosts h".
" where h.hostid in (".$available_hosts.") ".
" and g.groupid=hg.groupid and h.hostid=hg.hostid".$status_filter.
diff --git a/frontends/php/include/hosts.inc.php b/frontends/php/include/hosts.inc.php
index d245d3e1..3379f1c2 100644
--- a/frontends/php/include/hosts.inc.php
+++ b/frontends/php/include/hosts.inc.php
@@ -570,6 +570,52 @@ require_once "include/items.inc.php";
}
/*
+ * Function: validate_group_with_templates
+ *
+ * Description:
+ * Check available groups and host(template) by user permission
+ * and check current group an host(template) relations
+ *
+ * Author:
+ * Aly
+ *
+ * Comments:
+ *
+ */
+ function validate_group_with_templates($perm, $options = array(),$group_var=null,$host_var=null)
+ {
+ if(is_null($group_var)) $group_var = "web.latest.groupid";
+ if(is_null($host_var)) $host_var = "web.latest.hostid";
+
+ $_REQUEST["groupid"] = get_request("groupid", -1 );
+ $_REQUEST["hostid"] = get_request("hostid", get_profile($host_var,0));
+
+ if($_REQUEST["groupid"] == -1)
+ {
+ $_REQUEST["groupid"] = get_profile($group_var,0);
+
+ if(!in_node($_REQUEST["groupid"])) $_REQUEST["groupid"] = 0;
+
+ if ($_REQUEST["hostid"] > 0 && !DBfetch(DBselect('select groupid from hosts_groups '.
+ ' where hostid='.$_REQUEST["hostid"].' and groupid='.$_REQUEST["groupid"])))
+ {
+ $_REQUEST["groupid"] = 0;
+ }
+ }
+
+ if(in_array("always_select_first_host",$options) && $_REQUEST["hostid"] == 0 && $_REQUEST["groupid"] != 0)
+ $_REQUEST["hostid"] = -1;
+
+ $result = get_correct_group_and_host($_REQUEST["groupid"],$_REQUEST["hostid"], $perm, $options);
+
+ $_REQUEST["groupid"] = $result["groupid"];
+ $_REQUEST["hostid"] = $result["hostid"];
+
+ update_profile($host_var,$_REQUEST["hostid"]);
+ update_profile($group_var,$_REQUEST["groupid"]);
+ }
+
+ /*
* Function: get_correct_group_and_host
*
* Description:
@@ -600,6 +646,8 @@ require_once "include/items.inc.php";
$with_host_status = " and h.status=".HOST_STATUS_MONITORED;
elseif(in_array('real_hosts',$options))
$with_host_status = " and h.status<>".HOST_STATUS_TEMPLATE;
+ elseif(in_array('templated_hosts',$options))
+ $with_host_status = " and h.status=".HOST_STATUS_TEMPLATE;
else
$with_host_status = "";
@@ -631,9 +679,12 @@ require_once "include/items.inc.php";
{
$with_node = " and ".DBin_node('g.groupid', get_current_nodeid(!$only_current_node));
- if(!DBfetch(DBselect("select distinct g.groupid from groups g, hosts_groups hg, hosts h".$item_table.
- " where hg.groupid=g.groupid and h.hostid=hg.hostid and h.hostid in (".$accessed_hosts.") ".
- " and g.groupid=".$groupid.$with_host_status.$with_items.$with_node)))
+ if(!DBfetch(DBselect('SELECT DISTINCT g.groupid '.
+ ' FROM groups g, hosts_groups hg, hosts h'.$item_table.
+ ' WHERE hg.groupid=g.groupid '.
+ ' AND h.hostid=hg.hostid '.
+ ' AND h.hostid in ('.$accessed_hosts.') '.
+ ' AND g.groupid='.$groupid.$with_host_status.$with_items.$with_node)))
{
$groupid = 0;
}
diff --git a/frontends/php/include/locales/en_gb.inc.php b/frontends/php/include/locales/en_gb.inc.php
index 502a81ab..4cfeca29 100644
--- a/frontends/php/include/locales/en_gb.inc.php
+++ b/frontends/php/include/locales/en_gb.inc.php
@@ -960,6 +960,8 @@
'S_SHOW'=> 'Show',
'S_TRUE'=> 'True',
'S_FALSE'=> 'False',
+ 'S_BY_HOST'=> 'By host',
+ 'S_BY_TRIGGER_TEMPLATE'=> 'By trigger template',
// report3.php
'S_IT_SERVICES_AVAILABILITY_REPORT'=> 'IT services availability report',
diff --git a/frontends/php/include/reports.inc.php b/frontends/php/include/reports.inc.php
new file mode 100644
index 00000000..8c5872d2
--- /dev/null
+++ b/frontends/php/include/reports.inc.php
@@ -0,0 +1,151 @@
+<?php
+/*
+** ZABBIX
+** Copyright (C) 2000-2008 SIA Zabbix
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+**/
+?>
+<?php
+
+function show_report2_header($config,$available_hosts){
+
+ $r_form = new CForm();
+ $r_form->SetMethod('get');
+
+ $cmbConf = new CComboBox('config',$config,'submit()');
+ $cmbConf->AddItem(0,S_BY_HOST);
+ $cmbConf->AddItem(1,S_BY_TRIGGER_TEMPLATE);
+
+ $r_form->AddItem(array(S_MODE.SPACE,$cmbConf,SPACE));
+
+ $cmbGroup = new CComboBox('groupid',$_REQUEST['groupid'],'submit()');
+ $cmbGroup->AddItem(0,S_ALL_SMALL);
+
+ $status_filter = ' AND h.status='.HOST_STATUS_MONITORED.' AND i.status='.ITEM_STATUS_ACTIVE;
+ if($config==1)
+ $status_filter = ' AND h.status='.HOST_STATUS_TEMPLATE;
+
+ $sql = 'SELECT DISTINCT g.groupid,g.name '.
+ ' FROM groups g,hosts_groups hg,hosts h, items i'.
+ ' WHERE h.hostid in ('.$available_hosts.') '.
+ ' AND g.groupid=hg.groupid '.
+ ' AND h.hostid=hg.hostid'.$status_filter.
+ ' ORDER BY g.name';
+
+ $result=DBselect($sql);
+ while($row=DBfetch($result)){
+ $cmbGroup->AddItem($row['groupid'], get_node_name_by_elid($row['groupid']).$row['name']);
+ }
+ $r_form->AddItem(array(S_GROUP.SPACE,$cmbGroup));
+
+ if(0 == $config){
+ $cmbHosts = new CComboBox('hostid',$_REQUEST['hostid'],'submit()');
+ $sql_cond = ' AND h.status='.HOST_STATUS_MONITORED;
+ }
+ else{
+ $cmbTpls = new CComboBox('hostid',$_REQUEST['hostid'],'submit()');
+ $cmbTrigs = new CComboBox('tpl_triggerid',get_request('tpl_triggerid',0),'submit()');
+
+ $cmbTrigs->AddItem(0,S_ALL_SMALL);
+
+ $sql_cond = ' AND h.status='.HOST_STATUS_TEMPLATE;
+ }
+
+
+ if($_REQUEST['groupid'] > 0){
+ $sql='SELECT h.hostid,h.host '.
+ ' FROM hosts h,items i,hosts_groups hg '.
+ ' WHERE h.hostid=i.hostid '.
+ ' AND hg.groupid='.$_REQUEST['groupid'].
+ ' AND hg.hostid=h.hostid'.
+ ' AND h.hostid in ('.$available_hosts.') '.
+ $sql_cond.
+ ' GROUP BY h.hostid,h.host '.
+ ' ORDER BY h.host';
+ }
+ else{
+ $sql='SELECT h.hostid,h.host '.
+ ' FROM hosts h,items i '.
+ ' WHERE h.hostid=i.hostid '.
+ ' AND h.hostid in ('.$available_hosts.') '.
+ $sql_cond.
+ ' GROUP BY h.hostid,h.host '.
+ ' ORDER BY h.host';
+ if(0 == $config){
+ $cmbHosts->AddItem(0,S_ALL_SMALL);
+ }
+ else{
+ $cmbTpls->AddItem(0,S_ALL_SMALL);
+ }
+
+ }
+
+ $result=DBselect($sql);
+ while($row=DBfetch($result)){
+ if(0 == $config){
+ $cmbHosts->AddItem($row['hostid'],get_node_name_by_elid($row['hostid']).$row['host']);
+ }
+ else{
+ $cmbTpls->AddItem($row['hostid'],get_node_name_by_elid($row['hostid']).$row['host']);
+ }
+ }
+
+
+ if(0 == $config){
+ $r_form->AddItem(array(SPACE.S_HOST.SPACE,$cmbHosts));
+ }
+ else{
+ $r_form->AddItem(array(SPACE.S_TEMPLATE.SPACE,$cmbTpls));
+ if($_REQUEST['hostid'] > 0){
+ $sql = 'SELECT DISTINCT t.triggerid,t.description '.
+ ' FROM triggers t,hosts h,items i,functions f '.
+ ' WHERE f.itemid=i.itemid '.
+ ' AND h.hostid=i.hostid '.
+ ' AND t.status='.TRIGGER_STATUS_ENABLED.
+ ' AND t.triggerid=f.triggerid '.
+ ' AND h.hostid='.$_REQUEST['hostid'].
+ ' AND h.status='.HOST_STATUS_TEMPLATE.
+ ' AND '.DBin_node('t.triggerid').
+ ' AND i.status='.ITEM_STATUS_ACTIVE.
+ ' ORDER BY t.description';
+ }
+ else{
+ $sql = 'SELECT DISTINCT t.triggerid,t.description '.
+ ' FROM triggers t,hosts h,items i,functions f '.
+ ' WHERE f.itemid=i.itemid '.
+ ' AND h.hostid=i.hostid '.
+ ' AND t.status='.TRIGGER_STATUS_ENABLED.
+ ' AND t.triggerid=f.triggerid '.
+ ' AND h.status='.HOST_STATUS_TEMPLATE.
+ ' AND h.hostid in ('.$available_hosts.')'.
+ ' AND '.DBin_node('t.triggerid').
+ ' AND i.status='.ITEM_STATUS_ACTIVE.
+ ' ORDER BY t.description';
+ }
+ $result=DBselect($sql);
+
+ while($row=DBfetch($result)){
+ $cmbTrigs->AddItem(
+ $row['triggerid'],
+ get_node_name_by_elid($row['triggerid']).expand_trigger_description($row['triggerid'])
+ );
+ }
+
+ $r_form->AddItem(array(BR.S_TRIGGER.SPACE,$cmbTrigs));
+ }
+ show_table_header(S_AVAILABILITY_REPORT_BIG, $r_form);
+}
+?> \ No newline at end of file
diff --git a/frontends/php/include/triggers.inc.php b/frontends/php/include/triggers.inc.php
index bb3d2456..82e9c5bf 100644
--- a/frontends/php/include/triggers.inc.php
+++ b/frontends/php/include/triggers.inc.php
@@ -313,7 +313,7 @@
* Comments:
*
*/
- function get_realhosts_by_triggerid($triggerid)
+ function get_realhosts_by_triggerid($triggerid)
{
$trigger = get_trigger_by_triggerid($triggerid);
if($trigger['templateid'] > 0)
@@ -322,7 +322,7 @@
return get_hosts_by_triggerid($triggerid);
}
- function get_trigger_by_triggerid($triggerid)
+ function get_trigger_by_triggerid($triggerid)
{
$sql="select * from triggers where triggerid=$triggerid";
$result=DBselect($sql);
@@ -335,13 +335,13 @@
return FALSE;
}
- function &get_hosts_by_triggerid($triggerid)
+ function get_hosts_by_triggerid($triggerid)
{
return DBselect('select distinct h.* from hosts h, functions f, items i'.
' where i.itemid=f.itemid and h.hostid=i.hostid and f.triggerid='.$triggerid);
}
- function &get_functions_by_triggerid($triggerid)
+ function get_functions_by_triggerid($triggerid)
{
return DBselect('select * from functions where triggerid='.$triggerid);
}
@@ -358,7 +358,7 @@
* Comments:
*
*/
- function &get_triggers_by_hostid($hostid, $show_mixed = "yes")
+ function get_triggers_by_hostid($hostid, $show_mixed = "yes")
{
$db_triggers = DBselect("select distinct t.* from triggers t, functions f, items i".
" where i.hostid=$hostid and f.itemid=i.itemid and f.triggerid=t.triggerid");
@@ -383,7 +383,7 @@
return DBselect($sql);
}
- function &get_triggers_by_templateid($triggerid)
+ function get_triggers_by_templateid($triggerid)
{
return DBselect('select * from triggers where templateid='.$triggerid);
}
@@ -400,7 +400,7 @@
* Comments:
*
*/
- function &get_hosts_by_expression($expression)
+ function get_hosts_by_expression($expression)
{
global $ZBX_TR_EXPR_ALLOWED_MACROS, $ZBX_TR_EXPR_REPLACE_TO;
diff --git a/frontends/php/report2.php b/frontends/php/report2.php
index 502b83d4..67beba37 100644
--- a/frontends/php/report2.php
+++ b/frontends/php/report2.php
@@ -1,7 +1,7 @@
<?php
/*
** ZABBIX
-** Copyright (C) 2000-2005 SIA Zabbix
+** Copyright (C) 2000-2008 SIA Zabbix
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
@@ -19,163 +19,139 @@
**/
?>
<?php
- require_once "include/config.inc.php";
- require_once "include/hosts.inc.php";
+ require_once 'include/config.inc.php';
+ require_once 'include/hosts.inc.php';
+ require_once 'include/reports.inc.php';
- $page["title"] = "S_AVAILABILITY_REPORT";
- $page["file"] = "report2.php";
- $page['hist_arg'] = array('groupid','hostid');
+ $page['title'] = 'S_AVAILABILITY_REPORT';
+ $page['file'] = 'report2.php';
+ $page['hist_arg'] = array('config','groupid','hostid','tpl_triggerid');
-include_once "include/page_header.php";
+include_once 'include/page_header.php';
?>
<?php
// VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION
$fields=array(
- "groupid"=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, NULL),
- "hostid"=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, NULL),
- "triggerid"=> array(T_ZBX_INT, O_OPT, P_SYS|P_NZERO, DB_ID, NULL)
+ 'config'=> array(T_ZBX_INT, O_OPT, P_SYS, IN('0,1'), NULL),
+ 'groupid'=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, NULL),
+ 'hostid'=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, NULL),
+ 'tpl_triggerid'=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, NULL),
+
+ 'triggerid'=> array(T_ZBX_INT, O_OPT, P_SYS|P_NZERO, DB_ID, NULL)
);
check_fields($fields);
-// validate_group_with_host(PERM_READ_LIST,array("always_select_first_host","monitored_hosts","with_items"));
- $options = array("allow_all_hosts","always_select_first_host","monitored_hosts","with_items");
- if(!$ZBX_WITH_SUBNODES) array_push($options,"only_current_node");
-
- validate_group_with_host(PERM_READ_LIST,$options);
-?>
-<?php
- $r_form = new CForm();
- $r_form->SetMethod('get');
-
- $cmbGroup = new CComboBox("groupid",$_REQUEST["groupid"],"submit()");
- $cmbHosts = new CComboBox("hostid",$_REQUEST["hostid"],"submit()");
+ $config = get_request('config',get_profile('web.avail_report.config',0));
+ update_profile('web.avail_report.config',$config);
- $cmbGroup->AddItem(0,S_ALL_SMALL);
- $cmbHosts->AddItem(0,S_ALL_SMALL);
-
- $availiable_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_ONLY, null, null, get_current_nodeid());
-
- $result=DBselect("select distinct g.groupid,g.name from groups g, hosts_groups hg, hosts h, items i ".
- " where h.hostid in (".$availiable_hosts.") ".
- " and hg.groupid=g.groupid and h.status=".HOST_STATUS_MONITORED.
- " and h.hostid=i.hostid and hg.hostid=h.hostid and i.status=".ITEM_STATUS_ACTIVE.
- " order by g.name");
-
-
- while($row=DBfetch($result))
- {
- $cmbGroup->AddItem(
- $row['groupid'],
- get_node_name_by_elid($row['groupid']).$row['name']
- );
+ if(0 == $config){
+ $options = array('allow_all_hosts','always_select_first_host','monitored_hosts','with_items');
}
- $r_form->AddItem(array(S_GROUP.SPACE,$cmbGroup));
-
- if($_REQUEST["groupid"] > 0)
- {
- $sql="select h.hostid,h.host from hosts h,items i,hosts_groups hg where h.status=".HOST_STATUS_MONITORED.
- " and h.hostid=i.hostid and hg.groupid=".$_REQUEST["groupid"]." and hg.hostid=h.hostid".
- " and h.hostid in (".$availiable_hosts.") ".
- " group by h.hostid,h.host order by h.host";
- }
- else
- {
- $sql="select h.hostid,h.host from hosts h,items i where h.status=".HOST_STATUS_MONITORED.
- " and h.hostid=i.hostid and h.hostid in (".$availiable_hosts.") ".
- " group by h.hostid,h.host order by h.host";
- }
- $result=DBselect($sql);
- while($row=DBfetch($result))
- {
- $cmbHosts->AddItem(
- $row['hostid'],
- get_node_name_by_elid($row['hostid']).$row['host']
- );
+ else{
+ $options = array('allow_all_hosts','always_select_first_host','templated_hosts','with_items');
}
-
- $r_form->AddItem(array(SPACE.S_HOST.SPACE,$cmbHosts));
- show_table_header(S_AVAILABILITY_REPORT_BIG, $r_form);
-
+
+ if(!$ZBX_WITH_SUBNODES) array_push($options,'only_current_node');
+
+ validate_group_with_host(PERM_READ_LIST,$options);
+?>
+<?php
+$available_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_ONLY, null, null, get_current_nodeid());
+show_report2_header($config,$available_hosts);
?>
<?php
if( isset($_REQUEST['triggerid']) &&
- !($trigger_data = DBfetch(DBselect('select distinct t.*, h.host from triggers t, functions f, items i, hosts h '.
- ' where t.triggerid='.$_REQUEST['triggerid'].
- ' and t.triggerid=f.triggerid and f.itemid=i.itemid and i.hostid=h.hostid '
+ !($trigger_data = DBfetch(DBselect('SELECT DISTINCT t.*, h.host, h.hostid '.
+ ' FROM triggers t, functions f, items i, hosts h '.
+ ' WHERE t.triggerid='.$_REQUEST['triggerid'].
+ ' AND t.triggerid=f.triggerid '.
+ ' AND f.itemid=i.itemid '.
+ ' AND i.hostid=h.hostid '
))) )
{
unset($_REQUEST['triggerid']);
}
+
- if(isset($_REQUEST["triggerid"]))
- {
+ if(isset($_REQUEST['triggerid'])){
if(!check_right_on_trigger_by_triggerid(PERM_READ_ONLY, $_REQUEST['triggerid']))
access_deny();
- show_table_header(array(new CLink($row["host"],"?hostid=".$row["hostid"])," : \"",expand_trigger_description_by_data($trigger_data),"\""));
+ show_table_header(array(new CLink($trigger_data['host'],'?hostid='.$trigger_data['hostid']),' : "',expand_trigger_description_by_data($trigger_data),'"'));
- $table = new CTableInfo(null,"graph");
- $table->AddRow(new CImg("chart4.php?triggerid=".$_REQUEST["triggerid"]));
+ $table = new CTableInfo(null,'graph');
+ $table->AddRow(new CImg('chart4.php?triggerid='.$_REQUEST['triggerid']));
$table->Show();
}
- else if(isset($_REQUEST["hostid"]))
- {
+ else if(isset($_REQUEST['hostid'])){
+ if(0 == $config){
+ $sql_cond = ' AND h.status='.HOST_STATUS_MONITORED;
+ }
+ else{
+ $sql_cond = ' AND h.status='.HOST_STATUS_TEMPLATE;
+ if(isset($_REQUEST['tpl_triggerid']) && ($_REQUEST['tpl_triggerid'] > 0))
+ $sql_cond.= ' AND t.triggerid='.$_REQUEST['tpl_triggerid'];
+ }
+
if($_REQUEST['hostid'] > 0){
- $row = DBfetch(DBselect('select host from hosts where hostid='.$_REQUEST['hostid']));
+ $row = DBfetch(DBselect('SELECT host FROM hosts WHERE hostid='.$_REQUEST['hostid']));
show_table_header($row['host']);
- $result = DBselect('select distinct h.hostid,h.host,t.triggerid,t.expression,t.description,t.value '.
- ' from triggers t,hosts h,items i,functions f '.
- ' where f.itemid=i.itemid '.
- ' and h.hostid=i.hostid '.
- ' and t.status='.TRIGGER_STATUS_ENABLED.
- ' and t.triggerid=f.triggerid '.
- ' and h.hostid='.$_REQUEST['hostid'].
- ' and h.status='.HOST_STATUS_MONITORED.
- ' and '.DBin_node('t.triggerid').
- ' and i.status='.ITEM_STATUS_ACTIVE.
- ' order by h.host, t.description');
+ $result = DBselect('SELECT DISTINCT h.hostid,h.host,t.triggerid,t.expression,t.description,t.value '.
+ ' FROM triggers t,hosts h,items i,functions f '.
+ ' WHERE f.itemid=i.itemid '.
+ ' AND h.hostid=i.hostid '.
+ ' AND t.status='.TRIGGER_STATUS_ENABLED.
+ ' AND t.triggerid=f.triggerid '.
+ ' AND h.hostid='.$_REQUEST['hostid'].
+ ' AND '.DBin_node('t.triggerid').
+ ' AND i.status='.ITEM_STATUS_ACTIVE.
+ $sql_cond.
+ ' ORDER BY h.host, t.description');
}
else{
- show_table_header(S_ALL_HOSTS_BIG);
-
+ if(isset($_REQUEST['tpl_triggerid']) && ($_REQUEST['tpl_triggerid'] > 0))
+ show_table_header(expand_trigger_description($_REQUEST['tpl_triggerid']));
+
+ else
+ show_table_header(S_ALL_HOSTS_BIG);
+
$result = DBselect('SELECT DISTINCT h.hostid,h.host,t.triggerid,t.expression,t.description,t.value '.
' FROM triggers t,hosts h,items i,functions f '.
' WHERE f.itemid=i.itemid '.
' AND h.hostid=i.hostid '.
' AND t.status='.TRIGGER_STATUS_ENABLED.
' AND t.triggerid=f.triggerid '.
- ' AND h.status='.HOST_STATUS_MONITORED.
- ' AND h.hostid in ('.$availiable_hosts.')'.
+ ' AND h.hostid in ('.$available_hosts.')'.
' AND '.DBin_node('t.triggerid').
' AND i.status='.ITEM_STATUS_ACTIVE.
+ $sql_cond.
' ORDER BY h.host, t.description');
}
$accessible_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_ONLY);
-
+
$table = new CTableInfo();
$table->setHeader(array(is_show_subnodes() ? S_NODE : null,($_REQUEST['hostid'] == 0)?S_HOST:NULL, S_NAME,S_TRUE,S_FALSE,S_UNKNOWN,S_GRAPH));
- while($row=DBfetch($result))
- {
+ while($row=DBfetch($result)){
if(!check_right_on_trigger_by_triggerid(null, $row['triggerid'], $accessible_hosts))
continue;
- $availability = calculate_availability($row["triggerid"],0,0);
+ $availability = calculate_availability($row['triggerid'],0,0);
- $true = new CSpan(sprintf("%.4f%%",$availability["true"]), "on");
- $false = new CSpan(sprintf("%.4f%%",$availability["false"]), "off");
- $unknown= new CSpan(sprintf("%.4f%%",$availability["unknown"]), "unknown");
- $actions= new CLink(S_SHOW,"report2.php?hostid=".$_REQUEST["hostid"]."&triggerid=".$row["triggerid"],"action");
+ $true = new CSpan(sprintf("%.4f%%",$availability['true']), 'on');
+ $false = new CSpan(sprintf("%.4f%%",$availability['false']), 'off');
+ $unknown= new CSpan(sprintf("%.4f%%",$availability['unknown']), 'unknown');
+ $actions= new CLink(S_SHOW,'report2.php?hostid='.$_REQUEST['hostid'].'&triggerid='.$row['triggerid'],'action');
$table->addRow(array(
get_node_name_by_elid($row['hostid']),
($_REQUEST['hostid'] == 0)?$row['host']:NULL,
new CLink(
expand_trigger_description_by_data($row),
- "events.php?triggerid=".$row["triggerid"],"action"),
+ 'events.php?triggerid='.$row['triggerid'],'action'),
$true,
$false,
$unknown,
@@ -187,6 +163,6 @@ include_once "include/page_header.php";
?>
<?php
- include_once "include/page_footer.php";
+ include_once 'include/page_footer.php';
?>
diff --git a/frontends/php/triggers.php b/frontends/php/triggers.php
index 9ec4defa..a6bf7b76 100644
--- a/frontends/php/triggers.php
+++ b/frontends/php/triggers.php
@@ -441,8 +441,7 @@ include_once "include/page_header.php";
//add dependences
$deps = get_trigger_dependences_by_triggerid($row["triggerid"]);
- if(count($deps) > 0)
- {
+ if(count($deps) > 0){
$description[] = BR.BR."<strong>".S_DEPENDS_ON.":</strong>".SPACE.BR;
foreach($deps as $val)
$description[] = expand_trigger_description($val).BR;
@@ -456,24 +455,21 @@ include_once "include/page_header.php";
elseif($row["priority"]==3) $priority=new CCol(S_AVERAGE,"average");
elseif($row["priority"]==4) $priority=new CCol(S_HIGH,"high");
elseif($row["priority"]==5) $priority=new CCol(S_DISASTER,"disaster");
- else $priority=$row["priority"];
+ else $priority=$row["priority"];
- if($row["status"] == TRIGGER_STATUS_DISABLED)
- {
+ if($row["status"] == TRIGGER_STATUS_DISABLED){
$status= new CLink(S_DISABLED,
"triggers.php?group_enable=1&g_triggerid%5B%5D=".$row["triggerid"].
"&hostid=".$row["hostid"],
'disabled');
}
- else if($row["status"] == TRIGGER_STATUS_UNKNOWN)
- {
+ else if($row["status"] == TRIGGER_STATUS_UNKNOWN){
$status= new CLink(S_UNKNOWN,
"triggers.php?group_disable=1&g_triggerid%5B%5D=".$row["triggerid"].
"&hostid=".$row["hostid"],
'unknown');
}
- else if($row["status"] == TRIGGER_STATUS_ENABLED)
- {
+ else if($row["status"] == TRIGGER_STATUS_ENABLED){
$status= new CLink(S_ENABLED,
"triggers.php?group_disable=1&g_triggerid%5B%5D=".$row["triggerid"].
"&hostid=".$row["hostid"],