diff options
| author | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-12-07 12:36:48 +0000 |
|---|---|---|
| committer | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-12-07 12:36:48 +0000 |
| commit | c3fe2c6239d8e04709e97ac288fb97b24b563fcd (patch) | |
| tree | 5934d4ce39605f93e20c1b99fe807af6219f6a83 /frontends/php | |
| parent | 1dcf65cdc43a07ecfe0c915056f1635fda709351 (diff) | |
| download | zabbix-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.php | 16 | ||||
| -rw-r--r-- | frontends/php/include/hosts.inc.php | 57 | ||||
| -rw-r--r-- | frontends/php/include/locales/en_gb.inc.php | 2 | ||||
| -rw-r--r-- | frontends/php/include/reports.inc.php | 151 | ||||
| -rw-r--r-- | frontends/php/include/triggers.inc.php | 14 | ||||
| -rw-r--r-- | frontends/php/report2.php | 180 | ||||
| -rw-r--r-- | frontends/php/triggers.php | 14 |
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"], |
