2008-07-14 21:54:50 +08:00
< ? php
//
// ZoneMinder web event view file, $Date$, $Revision$
2008-07-25 17:48:16 +08:00
// Copyright (C) 2001-2008 Philip Coombes
2008-07-14 21:54:50 +08:00
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
if ( ! canView ( 'Events' ) )
{
$_REQUEST [ 'view' ] = " error " ;
return ;
}
$midSql = '' ;
if ( $user [ 'MonitorIds' ] )
{
$midSql = " and MonitorId in ( " . join ( " , " , preg_split ( '/["\'\s]*,["\'\s]*/' , $user [ 'MonitorIds' ] ) ) . " ) " ;
}
2014-04-30 22:01:10 +08:00
$sql = 'select E.*,M.Name as MonitorName from Events as E inner join Monitors as M on E.MonitorId = M.Id where E.Id = ?' . $midSql ;
$event = dbFetchOne ( $sql , NULL , array ( $_REQUEST [ 'eid' ]) );
2008-07-14 21:54:50 +08:00
if ( ! empty ( $_REQUEST [ 'fid' ]) )
{
2014-04-30 22:01:10 +08:00
$frame = dbFetchOne ( 'SELECT * FROM Frames WHERE EventID = ? AND FrameId = ?' , NULL , array ( $_REQUEST [ 'eid' ], $_REQUEST [ 'fid' ]) );
2008-07-14 21:54:50 +08:00
}
elseif ( isset ( $_REQUEST [ 'fid' ]) )
{
2014-04-30 22:01:10 +08:00
$frame = dbFetchOne ( 'SELECT * FROM Frames WHERE EventID = ? AND Score = ?' , NULL , array ( $_REQUEST [ 'eid' ], $event [ 'MaxScore' ]) );
2008-07-14 21:54:50 +08:00
$_REQUEST [ 'fid' ] = $frame [ 'FrameId' ];
}
parseSort ( true , '&' );
parseFilter ( $_REQUEST [ 'filter' ], true , '&' );
$filterQuery = $_REQUEST [ 'filter' ][ 'query' ];
2014-04-30 22:01:10 +08:00
if ( $sortOrder == 'asc' ) {
$sql = " select E.* from Events as E inner join Monitors as M on E.MonitorId = M.Id where $sortColumn <= ? " . $_REQUEST [ 'filter' ][ 'sql' ] . $midSql . " order by $sortColumn desc " ;
} else {
$sql = " select E.* from Events as E inner join Monitors as M on E.MonitorId = M.Id where $sortColumn >= ? " . $_REQUEST [ 'filter' ][ 'sql' ] . $midSql . " order by $sortColumn asc " ;
}
$result = dbQuery ( $sql , array ( $event [ $_REQUEST [ 'sort_field' ]] ) );
2008-07-14 21:54:50 +08:00
while ( $row = dbFetchNext ( $result ) )
{
if ( $row [ 'Id' ] == $_REQUEST [ 'eid' ] )
{
$prevEvent = dbFetchNext ( $result );
break ;
}
}
2014-04-30 22:01:10 +08:00
$sql = " select E.* from Events as E inner join Monitors as M on E.MonitorId = M.Id where $sortColumn " . ( $sortOrder == 'asc' ? '>=' : '<=' ) . ' ?' . $_REQUEST [ 'filter' ][ 'sql' ] . $midSql . " order by $sortColumn $sortOrder " ;
$result = dbQuery ( $sql , array ( $event [ $_REQUEST [ 'sort_field' ]]) );
2008-07-14 21:54:50 +08:00
while ( $row = dbFetchNext ( $result ) )
{
if ( $row [ 'Id' ] == $_REQUEST [ 'eid' ] )
{
$nextEvent = dbFetchNext ( $result );
break ;
}
}
$framesPerPage = 15 ;
$framesPerLine = 3 ;
$maxShortcuts = 3 ;
$paged = $event [ 'Frames' ] > $framesPerPage ;
if ( $paged && ! empty ( $_REQUEST [ 'page' ]) )
{
$loFrameId = (( $_REQUEST [ 'page' ] - 1 ) * $framesPerPage ) + 1 ;
$hiFrameId = min ( $_REQUEST [ 'page' ] * $framesPerPage , $event [ 'Frames' ] );
}
else
{
$loFrameId = 1 ;
$hiFrameId = $event [ 'Frames' ];
}
2014-04-30 22:01:10 +08:00
$sql = 'SELECT * FROM Frames WHERE EventID = ?' ;
2008-07-14 21:54:50 +08:00
if ( $paged && ! empty ( $_REQUEST [ 'page' ]) )
$sql .= " and FrameId between $loFrameId and $hiFrameId " ;
$sql .= " order by FrameId " ;
2014-04-30 22:01:10 +08:00
$frames = dbFetchAll ( $sql , NULL , array ( $_REQUEST [ 'eid' ] ) );
2008-07-14 21:54:50 +08:00
$scale = getDeviceScale ( $event [ 'Width' ], $event [ 'Height' ], $framesPerLine + 0.3 );
$pages = ( int ) ceil ( $event [ 'Frames' ] / $framesPerPage );
if ( ! empty ( $_REQUEST [ 'fid' ]) )
$_REQUEST [ 'page' ] = ( $_REQUEST [ 'fid' ] / $framesPerPage ) + 1 ;
$pagination = getPagination ( $pages , $_REQUEST [ 'page' ], $maxShortcuts , '&eid=' . $_REQUEST [ 'eid' ] . $filterQuery . $sortQuery , '&' );
xhtmlHeaders ( __FILE__ , $SLANG [ 'Event' ] . ' - ' . $event [ 'Name' ] );
?>
< body >
< div id = " page " >
< div id = " header " >
< ? php
if ( canEdit ( 'Events' ) )
{
?>
< div id = " headerButtons " >
2014-12-05 07:44:23 +08:00
< a href = " ?view=events&action=delete&mark_eid=<?php echo $_REQUEST['eid'] ?><?php echo $filterQuery ?><?php echo $sortQuery ?>&limit=<?php echo $_REQUEST['limit'] ?>&page=<?php echo $_REQUEST['page'] ?> " >< ? php echo $SLANG [ 'Delete' ] ?> </a>
2008-07-14 21:54:50 +08:00
</ div >
< ? php
}
?>
2014-12-05 07:44:23 +08:00
< h2 >< ? php echo makeLink ( '?view=eventdetails&eid=' . $_REQUEST [ 'eid' ], $event [ 'Name' ] . ( $event [ 'Archived' ] ? '*' : '' ), canEdit ( 'Events' ) ) ?> </h2>
2008-07-14 21:54:50 +08:00
</ div >
< div id = " content " >
< ? php
if ( $pagination )
{
?>
2014-12-05 07:44:23 +08:00
< h3 class = " pagination " >< ? php echo $pagination ?> </h3>
2008-07-14 21:54:50 +08:00
< ? php
}
?>
< div id = " eventFrames " >
< ? php
foreach ( $frames as $frame )
{
$imageData = getImageSrc ( $event , $frame , $scale );
?>
2014-12-05 07:44:23 +08:00
< a href = " ?view=frame&eid=<?php echo $_REQUEST['eid'] ?>&fid=<?php echo $frame['FrameId'] ?> " >< img src = " <?php echo viewImagePath( $imageData['thumbPath'] ) ?> " class = " <?php echo $imageData['imageClass'] ?> " alt = " <?php echo $frame['Type'] ?>/<?php echo $frame['Type'] =='Alarm'? $frame['Score'] :0 ?> " /></ a >
2008-07-14 21:54:50 +08:00
< ? php
}
?>
</ div >
</ div >
</ div >
</ body >
</ html >