diff options
Diffstat (limited to 'frontends/php')
-rw-r--r-- | frontends/php/charts.php | 2 | ||||
-rw-r--r-- | frontends/php/include/copt.lib.php | 2 | ||||
-rw-r--r-- | frontends/php/include/reports.inc.php | 78 | ||||
-rw-r--r-- | frontends/php/report2.php | 46 |
4 files changed, 67 insertions, 61 deletions
diff --git a/frontends/php/charts.php b/frontends/php/charts.php index 37fc6926..d7f0986c 100644 --- a/frontends/php/charts.php +++ b/frontends/php/charts.php @@ -53,7 +53,7 @@ include_once 'include/page_header.php'; 'stime'=> array(T_ZBX_STR, O_OPT, P_SYS, NULL,NULL), 'action'=> array(T_ZBX_STR, O_OPT, P_SYS, IN("'go'"),NULL), 'reset'=> array(T_ZBX_STR, O_OPT, P_SYS, IN("'reset'"),NULL), - 'fullscreen'=> array(T_ZBX_INT, O_OPT, P_SYS, IN("1"), NULL) + 'fullscreen'=> array(T_ZBX_INT, O_OPT, P_SYS, IN("1"),NULL) ); check_fields($fields); diff --git a/frontends/php/include/copt.lib.php b/frontends/php/include/copt.lib.php index ae0d97eb..bde47dc4 100644 --- a/frontends/php/include/copt.lib.php +++ b/frontends/php/include/copt.lib.php @@ -304,7 +304,7 @@ if(defined('USE_PROFILING')){ } } - COpt::set_memory_limit('320M'); + COpt::set_memory_limit('32M'); COpt::profiling_start('script'); } else{ diff --git a/frontends/php/include/reports.inc.php b/frontends/php/include/reports.inc.php index 2553ab52..066071c3 100644 --- a/frontends/php/include/reports.inc.php +++ b/frontends/php/include/reports.inc.php @@ -34,15 +34,13 @@ function show_report2_header($config,$available_hosts){ $cmbGroup = new CComboBox('groupid',$_REQUEST['groupid'],'submit()'); $cmbGroup->AddItem(0,S_ALL_SMALL); - $status_filter = ' AND h.status='.HOST_STATUS_MONITORED; - if($config==1) - $status_filter = ' AND h.status='.HOST_STATUS_TEMPLATE; - + $status_filter=($config==1)?' AND h.status='.HOST_STATUS_TEMPLATE:' AND h.status='.HOST_STATUS_MONITORED; $sql = '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. + ' AND h.hostid=hg.hostid'. + $status_filter. ' ORDER BY g.name'; $result=DBselect($sql); @@ -58,8 +56,10 @@ function show_report2_header($config,$available_hosts){ else{ $cmbTpls = new CComboBox('hostid',$_REQUEST['hostid'],'submit()'); $cmbTrigs = new CComboBox('tpl_triggerid',get_request('tpl_triggerid',0),'submit()'); - + $cmbHGrps = new CComboBox('hostgroupid',get_request('hostgroupid',0),'submit()'); + $cmbTrigs->AddItem(0,S_ALL_SMALL); + $cmbHGrps->AddItem(0,S_ALL_SMALL); $sql_cond = ' AND h.status='.HOST_STATUS_TEMPLATE; } @@ -111,32 +111,46 @@ function show_report2_header($config,$available_hosts){ } 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'; + + $sql_cond = ' AND h.hostid=ht.hostid '; + if($_REQUEST['hostid'] > 0) $sql_cond.=' AND ht.templateid='.$_REQUEST['hostid']; + + if(isset($_REQUEST['tpl_triggerid']) && ($_REQUEST['tpl_triggerid'] > 0)) + $sql_cond.= ' AND t.templateid='.$_REQUEST['tpl_triggerid']; + + $result = DBselect('SELECT DISTINCT g.groupid,g.name '. + ' FROM triggers t,hosts h,items i,functions f, hosts_templates ht, groups g, hosts_groups hg '. + ' WHERE f.itemid=i.itemid '. + ' AND h.hostid=i.hostid '. + ' AND hg.hostid=h.hostid'. + ' AND g.groupid=hg.groupid '. + ' AND h.hostid in ('.$available_hosts.')'. + ' AND t.status='.TRIGGER_STATUS_ENABLED. + ' AND t.triggerid=f.triggerid '. + ' AND '.DBin_node('t.triggerid'). + ' AND i.status='.ITEM_STATUS_ACTIVE. + ' AND h.status='.HOST_STATUS_MONITORED. + $sql_cond. + ' ORDER BY h.host, t.description'); + while($row=DBfetch($result)){ + $cmbHGrps->AddItem( + $row['groupid'], + get_node_name_by_elid($row['groupid']).$row['name'] + ); } + + $sql_cond=($_REQUEST['hostid'] > 0)?' AND h.hostid='.$_REQUEST['hostid']:' AND h.hostid in ('.$available_hosts.')'; + $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 '.DBin_node('t.triggerid'). + ' AND i.status='.ITEM_STATUS_ACTIVE. + $sql_cond. + ' ORDER BY t.description'; $result=DBselect($sql); while($row=DBfetch($result)){ @@ -151,7 +165,7 @@ function show_report2_header($config,$available_hosts){ $rr_form->AddVar('groupid',$_REQUEST['groupid']); $rr_form->AddVar('hostid',$_REQUEST['hostid']); - $rr_form->AddItem(array(S_TRIGGER.SPACE,$cmbTrigs)); + $rr_form->AddItem(array(S_TRIGGER.SPACE,$cmbTrigs,BR(),S_FILTER,SPACE,S_HOST_GROUP.SPACE,$cmbHGrps)); show_table_header(S_AVAILABILITY_REPORT_BIG, array($r_form,$rr_form)); } diff --git a/frontends/php/report2.php b/frontends/php/report2.php index 78c33491..e5bc8203 100644 --- a/frontends/php/report2.php +++ b/frontends/php/report2.php @@ -35,6 +35,7 @@ include_once 'include/page_header.php'; $fields=array( '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), + 'hostgroupid'=> 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), @@ -95,6 +96,8 @@ show_report2_header($config,$available_hosts); } else{ $sql_cond = ' AND h.hostid=ht.hostid '; + $sql_cond.=(isset($_REQUEST['hostgroupid']) && ($_REQUEST['hostgroupid']>0))?' AND g.groupid ='.$_REQUEST['hostgroupid']:''; + if($_REQUEST['hostid'] > 0) $sql_cond.=' AND ht.templateid='.$_REQUEST['hostid']; if(isset($_REQUEST['tpl_triggerid']) && ($_REQUEST['tpl_triggerid'] > 0)) @@ -104,39 +107,28 @@ show_report2_header($config,$available_hosts); if($_REQUEST['hostid'] > 0){ $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, hosts_templates ht '. - ' WHERE f.itemid=i.itemid '. - ' AND h.hostid=i.hostid '. - ' AND h.hostid in ('.$available_hosts.') '. - ' AND t.status='.TRIGGER_STATUS_ENABLED. - ' AND t.triggerid=f.triggerid '. - ' AND '.DBin_node('t.triggerid'). - ' AND i.status='.ITEM_STATUS_ACTIVE. - ' AND h.status='.HOST_STATUS_MONITORED. - $sql_cond. - ' ORDER BY h.host, t.description'); } else{ 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, hosts_templates ht '. - ' WHERE f.itemid=i.itemid '. - ' AND h.hostid=i.hostid '. - ' AND t.status='.TRIGGER_STATUS_ENABLED. - ' AND t.triggerid=f.triggerid '. - ' AND h.hostid in ('.$available_hosts.')'. - ' AND '.DBin_node('t.triggerid'). - ' AND i.status='.ITEM_STATUS_ACTIVE. - ' AND h.status='.HOST_STATUS_MONITORED. - $sql_cond. - ' ORDER BY h.host, t.description'); + 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, hosts_templates ht, groups g, hosts_groups hg '. + ' WHERE f.itemid=i.itemid '. + ' AND hg.hostid=h.hostid'. + ' AND g.groupid=hg.groupid '. + ' AND h.hostid=i.hostid '. + ' AND h.hostid in ('.$available_hosts.')'. + ' AND t.status='.TRIGGER_STATUS_ENABLED. + ' AND t.triggerid=f.triggerid '. + ' AND '.DBin_node('t.triggerid'). + ' AND i.status='.ITEM_STATUS_ACTIVE. + ' AND h.status='.HOST_STATUS_MONITORED. + $sql_cond. + ' ORDER BY h.host, t.description'); + $accessible_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_ONLY); |