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/include/reports.inc.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/include/reports.inc.php')
| -rw-r--r-- | frontends/php/include/reports.inc.php | 151 |
1 files changed, 151 insertions, 0 deletions
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 |
