diff options
Diffstat (limited to 'frontends/php')
-rw-r--r-- | frontends/php/include/actions.inc.php | 103 | ||||
-rw-r--r-- | frontends/php/include/blocks.inc.php | 60 | ||||
-rw-r--r-- | frontends/php/include/events.inc.php | 61 |
3 files changed, 100 insertions, 124 deletions
diff --git a/frontends/php/include/actions.inc.php b/frontends/php/include/actions.inc.php index f44682aa..41645978 100644 --- a/frontends/php/include/actions.inc.php +++ b/frontends/php/include/actions.inc.php @@ -1108,21 +1108,34 @@ function get_actions_hint_by_eventid($eventid,$status=NULL){ $tab_hint->AddOption('style', 'width: 300px;'); $tab_hint->SetHeader(array( is_show_subnodes() ? S_NODES : null, - S_TYPE, S_USER, + S_DETAILS, S_STATUS )); - +/* $sql = 'SELECT DISTINCT a.alertid,mt.description,a.sendto,a.status,u.alias,a.retries '. ' FROM events e,users u,alerts a'. ' left join media_type mt on mt.mediatypeid=a.mediatypeid'. - ' WHERE a.eventid='.$eventid.' and alerttype in ('.ALERT_TYPE_MESSAGE.')'. + ' WHERE a.eventid='.$eventid. (is_null($status)?'':' AND a.status='.$status). ' AND e.eventid = a.eventid'. + ' AND a.alerttype IN ('.ALERT_TYPE_MESSAGE.','.ALERT_TYPE_COMMAND.')'. ' AND '.DBcondition('e.objectid',$available_triggers). ' AND '.DBin_node('a.alertid'). ' AND u.userid=a.userid '. ' ORDER BY mt.description'; +//*/ + $sql = 'SELECT DISTINCT a.alertid,mt.description,u.alias,a.subject,a.message,a.sendto,a.status,a.retries,a.alerttype '. + ' FROM events e,alerts a '. + ' LEFT JOIN users u ON u.userid=a.userid '. + ' LEFT JOIN media_type mt ON mt.mediatypeid=a.mediatypeid'. + ' WHERE a.eventid='.$eventid. + (is_null($status)?'':' AND a.status='.$status). + ' AND e.eventid = a.eventid'. + ' AND a.alerttype IN ('.ALERT_TYPE_MESSAGE.','.ALERT_TYPE_COMMAND.')'. + ' AND '.DBcondition('e.objectid',$available_triggers). + ' AND '.DBin_node('a.alertid'). + ' ORDER BY a.alertid'; $result=DBselect($sql); while($row=DBfetch($result)){ @@ -1140,12 +1153,25 @@ function get_actions_hint_by_eventid($eventid,$status=NULL){ $retries=new CSpan(0,"red"); } - $row['description'] = empty($row['description'])?'-':$row['description']; + switch($row['alerttype']){ + case ALERT_TYPE_MESSAGE: + $message = empty($row['description'])?'-':$row['description']; + break; + case ALERT_TYPE_COMMAND: + $message = array(bold(S_COMMAND.':')); + $msg = explode("\n",$row['message']); + foreach($msg as $m){ + array_push($message, BR(), $m); + } + break; + default: + $message = '-'; + } $tab_hint->AddRow(array( get_node_name_by_elid($row['alertid']), - $row['description'], - $row['alias'], + empty($row['alias'])?' - ':$row['alias'], + $message, $status )); } @@ -1221,4 +1247,69 @@ function get_event_actions_status($eventid){ return $actions; } +function get_event_actions_stat_hints($eventid){ + $actions= new CTable(' - '); + + $sql='SELECT COUNT(a.alertid) as cnt '. + ' FROM alerts a '. + ' WHERE a.eventid='.$eventid. + ' AND a.alerttype in ('.ALERT_TYPE_MESSAGE.','.ALERT_TYPE_COMMAND.')'; + + + $alerts=DBfetch(DBselect($sql)); + + if(isset($alerts['cnt']) && ($alerts['cnt'] > 0)){ + $sql='SELECT COUNT(a.alertid) as sent '. + ' FROM alerts a '. + ' WHERE a.eventid='.$eventid. + ' AND a.alerttype in ('.ALERT_TYPE_MESSAGE.','.ALERT_TYPE_COMMAND.')'. + ' AND a.status='.ALERT_STATUS_SENT; + + $alerts=DBfetch(DBselect($sql)); + + $alert_cnt = new CSpan($alerts['sent'],'green'); + if($alerts['sent']){ + $hint=get_actions_hint_by_eventid($eventid,ALERT_STATUS_SENT); + $alert_cnt->SetHint($hint); + } + $tdl = new CCol(($alerts['sent'])?$alert_cnt:SPACE); + $tdl->AddOption('width','10'); + + $sql='SELECT COUNT(a.alertid) as inprogress '. + ' FROM alerts a '. + ' WHERE a.eventid='.$eventid. + ' AND a.alerttype in ('.ALERT_TYPE_MESSAGE.','.ALERT_TYPE_COMMAND.')'. + ' AND a.status='.ALERT_STATUS_NOT_SENT; + + $alerts=DBfetch(DBselect($sql)); + + $alert_cnt = new CSpan($alerts['inprogress'],'orange'); + if($alerts['inprogress']){ + $hint=get_actions_hint_by_eventid($eventid,ALERT_STATUS_NOT_SENT); + $alert_cnt->SetHint($hint); + } + $tdc = new CCol(($alerts['inprogress'])?$alert_cnt:SPACE); + $tdc->AddOption('width','10'); + + $sql='SELECT COUNT(a.alertid) as failed '. + ' FROM alerts a '. + ' WHERE a.eventid='.$eventid. + ' AND a.alerttype in ('.ALERT_TYPE_MESSAGE.','.ALERT_TYPE_COMMAND.')'. + ' AND a.status='.ALERT_STATUS_FAILED; + + $alerts=DBfetch(DBselect($sql)); + + $alert_cnt = new CSpan($alerts['failed'],'red'); + if($alerts['failed']){ + $hint=get_actions_hint_by_eventid($eventid,ALERT_STATUS_FAILED); + $alert_cnt->SetHint($hint); + } + + $tdr = new CCol(($alerts['failed'])?$alert_cnt:SPACE); + $tdr->AddOption('width','10'); + + $actions->AddRow(array($tdl,$tdc,$tdr)); + } +return $actions; +} ?> diff --git a/frontends/php/include/blocks.inc.php b/frontends/php/include/blocks.inc.php index 1111b993..8443449c 100644 --- a/frontends/php/include/blocks.inc.php +++ b/frontends/php/include/blocks.inc.php @@ -22,7 +22,6 @@ require_once "include/graphs.inc.php"; require_once "include/screens.inc.php"; require_once "include/maps.inc.php"; -require_once "include/actions.inc.php"; // Author: Aly @@ -530,64 +529,7 @@ function make_latest_issues(){ ZBX_FLAG_EVENT); //actions - $actions= new CTable(' - '); - - $sql='SELECT COUNT(a.alertid) as cnt '. - ' FROM alerts a '. - ' WHERE a.eventid='.$row_event['eventid']; - - - $alerts=DBfetch(DBselect($sql)); - - if(isset($alerts['cnt']) && ($alerts['cnt'] > 0)){ - $sql='SELECT COUNT(a.alertid) as sent '. - ' FROM alerts a '. - ' WHERE a.eventid='.$row_event['eventid']. - ' AND a.status='.ALERT_STATUS_SENT; - - $alerts=DBfetch(DBselect($sql)); - - $alert_cnt = new CSpan($alerts['sent'],'green'); - if($alerts['sent']){ - $hint=get_actions_hint_by_eventid($row_event['eventid'],ALERT_STATUS_SENT); - $alert_cnt->SetHint($hint); - } - $tdl = new CCol(($alerts['sent'])?$alert_cnt:SPACE); - $tdl->AddOption('width','10'); - - $sql='SELECT COUNT(a.alertid) as inprogress '. - ' FROM alerts a '. - ' WHERE a.eventid='.$row_event['eventid']. - ' AND a.status='.ALERT_STATUS_NOT_SENT; - - $alerts=DBfetch(DBselect($sql)); - - $alert_cnt = new CSpan($alerts['inprogress'],'orange'); - if($alerts['inprogress']){ - $hint=get_actions_hint_by_eventid($row_event['eventid'],ALERT_STATUS_NOT_SENT); - $alert_cnt->SetHint($hint); - } - $tdc = new CCol(($alerts['inprogress'])?$alert_cnt:SPACE); - $tdc->AddOption('width','10'); - - $sql='SELECT COUNT(a.alertid) as failed '. - ' FROM alerts a '. - ' WHERE a.eventid='.$row_event['eventid']. - ' AND a.status='.ALERT_STATUS_FAILED; - - $alerts=DBfetch(DBselect($sql)); - - $alert_cnt = new CSpan($alerts['failed'],'red'); - if($alerts['failed']){ - $hint=get_actions_hint_by_eventid($row_event['eventid'],ALERT_STATUS_FAILED); - $alert_cnt->SetHint($hint); - } - - $tdr = new CCol(($alerts['failed'])?$alert_cnt:SPACE); - $tdr->AddOption('width','10'); - - $actions->AddRow(array($tdl,$tdc,$tdr)); - } + $actions = get_event_actions_stat_hints($row_event['eventid']); //-------- $clock = new CLink(zbx_date2str(S_DATE_FORMAT_YMDHMS,$row_event['clock']),"events.php?triggerid=".$row["triggerid"].'&source=0',"action"); $clock->SetTarget('_blank'); diff --git a/frontends/php/include/events.inc.php b/frontends/php/include/events.inc.php index c0f1119a..ce85022b 100644 --- a/frontends/php/include/events.inc.php +++ b/frontends/php/include/events.inc.php @@ -380,65 +380,8 @@ function make_small_eventlist($triggerid,&$trigger_data){ ); } -//actions - $actions= new CTable(' - '); - - $sql='SELECT COUNT(a.alertid) as cnt '. - ' FROM alerts a '. - ' WHERE a.eventid='.$row['eventid']. - ' AND a.alerttype in ('.ALERT_TYPE_MESSAGE.')'; - - $alerts=DBfetch(DBselect($sql)); - - if(isset($alerts['cnt']) && ($alerts['cnt'] > 0)){ - $sql='SELECT COUNT(a.alertid) as sent '. - ' FROM alerts a '. - ' WHERE a.eventid='.$row['eventid']. - ' AND a.alerttype in ('.ALERT_TYPE_MESSAGE.')'. - ' AND a.status='.ALERT_STATUS_SENT; - $alerts=DBfetch(DBselect($sql)); - - $alert_cnt = new CSpan($alerts['sent'],'green'); - if($alerts['sent']){ - $hint=get_actions_hint_by_eventid($row['eventid'],ALERT_STATUS_SENT); - $alert_cnt->SetHint($hint); - } - $tdl = new CCol(($alerts['sent'])?$alert_cnt:SPACE); - $tdl->AddOption('width','10'); - - $sql='SELECT COUNT(a.alertid) as inprogress '. - ' FROM alerts a '. - ' WHERE a.eventid='.$row['eventid']. - ' AND a.alerttype in ('.ALERT_TYPE_MESSAGE.')'. - ' AND a.status='.ALERT_STATUS_NOT_SENT; - $alerts=DBfetch(DBselect($sql)); - - $alert_cnt = new CSpan($alerts['inprogress'],'orange'); - if($alerts['inprogress']){ - $hint=get_actions_hint_by_eventid($row['eventid'],ALERT_STATUS_NOT_SENT); - $alert_cnt->SetHint($hint); - } - $tdc = new CCol(($alerts['inprogress'])?$alert_cnt:SPACE); - $tdc->AddOption('width','10'); - - $sql='SELECT COUNT(a.alertid) as failed '. - ' FROM alerts a '. - ' WHERE a.eventid='.$row['eventid']. - ' AND a.alerttype in ('.ALERT_TYPE_MESSAGE.')'. - ' AND a.status='.ALERT_STATUS_FAILED; - $alerts=DBfetch(DBselect($sql)); - - $alert_cnt = new CSpan($alerts['failed'],'red'); - if($alerts['failed']){ - $hint=get_actions_hint_by_eventid($row['eventid'],ALERT_STATUS_FAILED); - $alert_cnt->SetHint($hint); - } - - $tdr = new CCol(($alerts['failed'])?$alert_cnt:SPACE); - $tdr->AddOption('width','10'); - - $actions->AddRow(array($tdl,$tdc,$tdr)); - } +//actions + $actions= get_event_actions_stat_hints($row['eventid']); //-------- $table->AddRow(array( |