translate('Events'), 'filter' => array( 'terms' => array( ) ), ), array( 'title' => translate('Hour'), 'filter' => array( 'terms' => array( array( 'attr' => 'DateTime', 'op' => '>=', 'val' => '-1 hour' ), ) ), ), array( 'title' => translate('Day'), 'filter' => array( 'terms' => array( array( 'attr' => "DateTime", 'op' => '>=', 'val' => '-1 day' ), ) ), ), array( 'title' => translate('Week'), 'filter' => array( 'terms' => array( array( 'attr' => "DateTime", 'op' => '>=', 'val' => '-7 day' ), ) ), ), array( 'title' => translate('Month'), 'filter' => array( 'terms' => array( array( 'attr' => "DateTime", 'op' => '>=', 'val' => '-1 month' ), ) ), ), array( 'title' => translate('Archived'), 'filter' => array( 'terms' => array( array( 'attr' => "Archived", 'op' => '=', 'val' => '1' ), ) ), ), ); $running = daemonCheck(); $status = $running?translate('Running'):translate('Stopped'); $run_state = dbFetchOne('select Name from States where IsActive = 1', 'Name' ); $group = NULL; if ( ! empty($_COOKIE['zmGroup']) ) { if ( $group = dbFetchOne( 'select * from Groups where Id = ?', NULL, array($_COOKIE['zmGroup'])) ) $groupIds = array_flip(explode( ',', $group['MonitorIds'] )); } noCacheHeaders(); $maxWidth = 0; $maxHeight = 0; $cycleCount = 0; $minSequence = 0; $maxSequence = 1; $seqIdList = array(); $monitors = dbFetchAll( "select * from Monitors order by Sequence asc" ); $displayMonitors = array(); for ( $i = 0; $i < count($monitors); $i++ ) { if ( !visibleMonitor( $monitors[$i]['Id'] ) ) { continue; } if ( $group && !empty($groupIds) && !array_key_exists( $monitors[$i]['Id'], $groupIds ) ) { continue; } $monitors[$i]['Show'] = true; if ( empty($minSequence) || ($monitors[$i]['Sequence'] < $minSequence) ) { $minSequence = $monitors[$i]['Sequence']; } if ( $monitors[$i]['Sequence'] > $maxSequence ) { $maxSequence = $monitors[$i]['Sequence']; } $monitors[$i]['zmc'] = zmcStatus( $monitors[$i] ); $monitors[$i]['zma'] = zmaStatus( $monitors[$i] ); $monitors[$i]['ZoneCount'] = dbFetchOne( 'select count(Id) as ZoneCount from Zones where MonitorId = ?', 'ZoneCount', array($monitors[$i]['Id']) ); $counts = array(); for ( $j = 0; $j < count($eventCounts); $j++ ) { $filter = addFilterTerm( $eventCounts[$j]['filter'], count($eventCounts[$j]['filter']['terms']), array( 'cnj' => 'and', 'attr' => 'MonitorId', 'op' => '=', 'val' => $monitors[$i]['Id'] ) ); parseFilter( $filter ); $counts[] = 'count(if(1'.$filter['sql'].",1,NULL)) as EventCount$j"; $monitors[$i]['eventCounts'][$j]['filter'] = $filter; } $sql = 'SELECT '.join($counts,', ').' FROM Events AS E WHERE MonitorId = ?'; $counts = dbFetchOne( $sql, NULL, array($monitors[$i]['Id']) ); if ( $monitors[$i]['Function'] != 'None' ) { $cycleCount++; $scaleWidth = reScale( $monitors[$i]['Width'], $monitors[$i]['DefaultScale'], ZM_WEB_DEFAULT_SCALE ); $scaleHeight = reScale( $monitors[$i]['Height'], $monitors[$i]['DefaultScale'], ZM_WEB_DEFAULT_SCALE ); if ( $maxWidth < $scaleWidth ) $maxWidth = $scaleWidth; if ( $maxHeight < $scaleHeight ) $maxHeight = $scaleHeight; } if ( $counts ) $monitors[$i] = array_merge( $monitors[$i], $counts ); $seqIdList[] = $monitors[$i]['Id']; $displayMonitors[] = $monitors[$i]; } $lastId = 0; $seqIdUpList = array(); foreach ( $seqIdList as $seqId ) { if ( !empty($lastId) ) $seqIdUpList[$seqId] = $lastId; else $seqIdUpList[$seqId] = $seqId; $lastId = $seqId; } $lastId = 0; $seqIdDownList = array(); foreach ( array_reverse($seqIdList) as $seqId ) { if ( !empty($lastId) ) $seqIdDownList[$seqId] = $lastId; else $seqIdDownList[$seqId] = $seqId; $lastId = $seqId; } $cycleWidth = $maxWidth; $cycleHeight = $maxHeight; $eventsView = ZM_WEB_EVENTS_VIEW; $eventsWindow = 'zm'.ucfirst(ZM_WEB_EVENTS_VIEW); $eventCount = 0; for ( $i = 0; $i < count($eventCounts); $i++ ) { $eventCounts[$i]['total'] = 0; } $zoneCount = 0; foreach( $displayMonitors as $monitor ) { for ( $i = 0; $i < count($eventCounts); $i++ ) { $eventCounts[$i]['total'] += $monitor['EventCount'.$i]; } $zoneCount += $monitor['ZoneCount']; } $seqUpFile = getSkinFile( 'graphics/seq-u.png' ); $seqDownFile = getSkinFile( 'graphics/seq-d.png' ); $versionClass = (ZM_DYN_DB_VERSION&&(ZM_DYN_DB_VERSION!=ZM_VERSION))?'errorText':''; $left_columns = 3; if ( count($servers) ) $left_columns += 1; if ( ZM_WEB_ID_ON_CONSOLE ) $left_columns += 1; xhtmlHeaders( __FILE__, translate('Console') ); ?>