148 lines
4.9 KiB
PHP
148 lines
4.9 KiB
PHP
<?php
|
|
//
|
|
// ZoneMinder web event view file, $Date$, $Revision$
|
|
// Copyright (C) 2001-2008 Philip Coombes
|
|
//
|
|
// 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'] ) ).")";
|
|
}
|
|
|
|
$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']) );
|
|
|
|
if ( !empty($_REQUEST['fid']) )
|
|
{
|
|
$frame = dbFetchOne( 'SELECT * FROM Frames WHERE EventID = ? AND FrameId = ?', NULL, array($_REQUEST['eid'],$_REQUEST['fid']) );
|
|
}
|
|
elseif ( isset($_REQUEST['fid']) )
|
|
{
|
|
$frame = dbFetchOne( 'SELECT * FROM Frames WHERE EventID = ? AND Score = ?', NULL, array($_REQUEST['eid'],$event['MaxScore']) );
|
|
$_REQUEST['fid'] = $frame['FrameId'];
|
|
}
|
|
|
|
parseSort( true, '&' );
|
|
parseFilter( $_REQUEST['filter'], true, '&' );
|
|
$filterQuery = $_REQUEST['filter']['query'];
|
|
|
|
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']] ) );
|
|
while ( $row = dbFetchNext( $result ) )
|
|
{
|
|
if ( $row['Id'] == $_REQUEST['eid'] )
|
|
{
|
|
$prevEvent = dbFetchNext( $result );
|
|
break;
|
|
}
|
|
}
|
|
|
|
$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']]) );
|
|
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'];
|
|
}
|
|
|
|
$sql = 'SELECT * FROM Frames WHERE EventID = ?';
|
|
if ( $paged && !empty($_REQUEST['page']) )
|
|
$sql .= " and FrameId between $loFrameId and $hiFrameId";
|
|
$sql .= " order by FrameId";
|
|
$frames = dbFetchAll( $sql, NULL, array( $_REQUEST['eid'] ) );
|
|
|
|
$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__, translate('Event').' - '.$event['Name'] );
|
|
?>
|
|
<body>
|
|
<div id="page">
|
|
<div id="header">
|
|
<?php
|
|
if ( canEdit( 'Events' ) )
|
|
{
|
|
?>
|
|
<div id="headerButtons">
|
|
<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 translate('Delete') ?></a>
|
|
</div>
|
|
<?php
|
|
}
|
|
?>
|
|
<h2><?php echo makeLink( '?view=eventdetails&eid='.$_REQUEST['eid'], $event['Name'].($event['Archived']?'*':''), canEdit( 'Events' ) ) ?></h2>
|
|
</div>
|
|
<div id="content">
|
|
<?php
|
|
if ( $pagination )
|
|
{
|
|
?>
|
|
<h3 class="pagination"><?php echo $pagination ?></h3>
|
|
<?php
|
|
}
|
|
?>
|
|
<div id="eventFrames">
|
|
<?php
|
|
foreach ( $frames as $frame )
|
|
{
|
|
$imageData = getImageSrc( $event, $frame, $scale );
|
|
?>
|
|
<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>
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|