2008-07-14 21:54:50 +08:00
< ? php
2019-04-10 23:48:17 +08:00
error_reporting ( E_ERROR );
2008-07-14 21:54:50 +08:00
2013-12-18 00:07:19 +08:00
if ( empty ( $_REQUEST [ 'id' ]) && empty ( $_REQUEST [ 'eids' ]) ) {
2018-07-09 21:59:03 +08:00
ajaxError ( 'No event id(s) supplied' );
2008-07-14 21:54:50 +08:00
}
2018-07-09 21:59:03 +08:00
if ( canView ( 'Events' ) ) {
2017-06-06 03:21:07 +08:00
switch ( $_REQUEST [ 'action' ] ) {
2019-03-21 02:25:34 +08:00
case 'video' :
if ( empty ( $_REQUEST [ 'videoFormat' ]) ) {
ajaxError ( 'Video Generation Failure, no format given' );
} elseif ( empty ( $_REQUEST [ 'rate' ]) ) {
ajaxError ( 'Video Generation Failure, no rate given' );
} elseif ( empty ( $_REQUEST [ 'scale' ]) ) {
ajaxError ( 'Video Generation Failure, no scale given' );
} else {
$sql = 'SELECT E.*,M.Name AS MonitorName,M.DefaultRate,M.DefaultScale FROM Events AS E INNER JOIN Monitors AS M ON E.MonitorId = M.Id WHERE E.Id = ?' . monitorLimitSql ();
if ( ! ( $event = dbFetchOne ( $sql , NULL , array ( $_REQUEST [ 'id' ]))) ) {
ajaxError ( 'Video Generation Failure, Unable to load event' );
} else {
if ( $videoFile = createVideo ( $event , $_REQUEST [ 'videoFormat' ], $_REQUEST [ 'rate' ], $_REQUEST [ 'scale' ], ! empty ( $_REQUEST [ 'overwrite' ])) )
ajaxResponse ( array ( 'response' => $videoFile ));
else
ajaxError ( 'Video Generation Failed' );
2017-06-06 03:21:07 +08:00
}
2019-03-21 02:25:34 +08:00
}
$ok = true ;
break ;
case 'deleteVideo' :
unlink ( $videoFiles [ $_REQUEST [ 'id' ]] );
unset ( $videoFiles [ $_REQUEST [ 'id' ]] );
ajaxResponse ();
break ;
case 'export' :
require_once ( ZM_SKIN_PATH . '/includes/export_functions.php' );
2008-07-14 21:54:50 +08:00
2019-03-21 02:25:34 +08:00
# We use session vars in here, so we need to restart the session
# because we stopped it in index.php to improve concurrency.
zm_session_start ();
2016-06-07 22:38:37 +08:00
2019-03-21 02:25:34 +08:00
if ( ! empty ( $_REQUEST [ 'exportDetail' ]) )
$exportDetail = $_SESSION [ 'export' ][ 'detail' ] = $_REQUEST [ 'exportDetail' ];
else
$exportDetail = false ;
2018-07-09 21:59:03 +08:00
2019-03-21 02:25:34 +08:00
if ( ! empty ( $_REQUEST [ 'exportFrames' ]) )
$exportFrames = $_SESSION [ 'export' ][ 'frames' ] = $_REQUEST [ 'exportFrames' ];
else
$exportFrames = false ;
2018-07-09 21:59:03 +08:00
2019-03-21 02:25:34 +08:00
if ( ! empty ( $_REQUEST [ 'exportImages' ]) )
$exportImages = $_SESSION [ 'export' ][ 'images' ] = $_REQUEST [ 'exportImages' ];
else
$exportImages = false ;
2018-07-09 21:59:03 +08:00
2019-03-21 02:25:34 +08:00
if ( ! empty ( $_REQUEST [ 'exportVideo' ]) )
$exportVideo = $_SESSION [ 'export' ][ 'video' ] = $_REQUEST [ 'exportVideo' ];
else
$exportVideo = false ;
2018-07-09 21:59:03 +08:00
2019-03-21 02:25:34 +08:00
if ( ! empty ( $_REQUEST [ 'exportMisc' ]) )
$exportMisc = $_SESSION [ 'export' ][ 'misc' ] = $_REQUEST [ 'exportMisc' ];
else
$exportMisc = false ;
2018-07-09 21:59:03 +08:00
2019-03-21 02:25:34 +08:00
if ( ! empty ( $_REQUEST [ 'exportFormat' ]) )
$exportFormat = $_SESSION [ 'export' ][ 'format' ] = $_REQUEST [ 'exportFormat' ];
else
$exportFormat = '' ;
2008-07-14 21:54:50 +08:00
2019-03-21 02:25:34 +08:00
if ( ! empty ( $_REQUEST [ 'exportCompress' ]) )
$exportCompress = $_SESSION [ 'export' ][ 'compress' ] = $_REQUEST [ 'exportCompress' ];
else
$exportCompress = false ;
2018-09-07 21:08:33 +08:00
2019-03-21 02:25:34 +08:00
session_write_close ();
2016-06-07 22:38:37 +08:00
2019-03-21 02:25:34 +08:00
$exportIds = ! empty ( $_REQUEST [ 'eids' ]) ? $_REQUEST [ 'eids' ] : $_REQUEST [ 'id' ];
if ( $exportFile = exportEvents (
$exportIds ,
( isset ( $_REQUEST [ 'connkey' ]) ? $_REQUEST [ 'connkey' ] : '' ),
$exportDetail ,
$exportFrames ,
$exportImages ,
$exportVideo ,
$exportMisc ,
$exportFormat ,
$exportCompress
) )
ajaxResponse ( array ( 'exportFile' => $exportFile ));
else
ajaxError ( 'Export Failed' );
break ;
case 'download' :
require_once ( ZM_SKIN_PATH . '/includes/export_functions.php' );
$exportVideo = 1 ;
$exportFormat = $_REQUEST [ 'exportFormat' ];
$exportStructure = 'flat' ;
$exportIds = ! empty ( $_REQUEST [ 'eids' ]) ? $_REQUEST [ 'eids' ] : $_REQUEST [ 'id' ];
if ( $exportFile = exportEvents (
$exportIds ,
( isset ( $_REQUEST [ 'connkey' ]) ? $_REQUEST [ 'connkey' ] : '' ),
2019-07-25 00:31:43 +08:00
false , #detail
false , #frames
false , #images
$exportVideo ,
false , #Misc
$exportFormat ,
false #,#Compress
#$exportStructure
) ) {
ajaxResponse ( array ( 'exportFile' => $exportFile , 'exportFormat' => $exportFormat , 'connkey' => ( isset ( $_REQUEST [ 'connkey' ]) ? $_REQUEST [ 'connkey' ] : '' )));
} else {
2019-03-21 02:25:34 +08:00
ajaxError ( 'Export Failed' );
2019-07-25 00:31:43 +08:00
}
2019-03-21 02:25:34 +08:00
break ;
2017-06-06 03:21:07 +08:00
}
2018-07-13 02:05:23 +08:00
} // end if canView('Events')
2009-03-27 17:14:54 +08:00
2018-07-13 02:05:23 +08:00
if ( canEdit ( 'Events' ) ) {
2017-06-06 03:21:07 +08:00
switch ( $_REQUEST [ 'action' ] ) {
2019-03-21 02:25:34 +08:00
case 'rename' :
if ( ! empty ( $_REQUEST [ 'eventName' ]) )
dbQuery ( 'UPDATE Events SET Name = ? WHERE Id = ?' , array ( $_REQUEST [ 'eventName' ], $_REQUEST [ 'id' ]));
else
ajaxError ( 'No new event name supplied' );
ajaxResponse ( array ( 'refreshEvent' => true , 'refreshParent' => true ));
break ;
case 'eventdetail' :
dbQuery (
'UPDATE Events SET Cause = ?, Notes = ? WHERE Id = ?' ,
array ( $_REQUEST [ 'newEvent' ][ 'Cause' ], $_REQUEST [ 'newEvent' ][ 'Notes' ], $_REQUEST [ 'id' ])
);
ajaxResponse ( array ( 'refreshEvent' => true , 'refreshParent' => true ));
break ;
case 'archive' :
case 'unarchive' :
$archiveVal = ( $_REQUEST [ 'action' ] == 'archive' ) ? 1 : 0 ;
dbQuery (
'UPDATE Events SET Archived = ? WHERE Id = ?' ,
array ( $archiveVal , $_REQUEST [ 'id' ])
);
ajaxResponse ( array ( 'refreshEvent' => true , 'refreshParent' => false ));
break ;
case 'delete' :
2019-04-10 23:46:12 +08:00
$Event = new ZM\Event ( $_REQUEST [ 'id' ]);
2019-03-21 02:25:34 +08:00
if ( ! $Event -> Id () ) {
ajaxResponse ( array ( 'refreshEvent' => false , 'refreshParent' => true , 'message' => 'Event not found.' ));
} else {
$Event -> delete ();
ajaxResponse ( array ( 'refreshEvent' => false , 'refreshParent' => true ));
}
break ;
} // end switch action
2018-07-13 02:05:23 +08:00
} // end if canEdit('Events')
2008-07-14 21:54:50 +08:00
2018-07-13 02:05:23 +08:00
ajaxError ( 'Unrecognised action or insufficient permissions' );
2008-07-14 21:54:50 +08:00
?>