Merge branch 'master' into multi-server
commit
c0517b11ae
|
@ -24,7 +24,7 @@ before_install:
|
||||||
- sudo apt-get update -qq
|
- sudo apt-get update -qq
|
||||||
- sudo apt-get install -y -qq libpolkit-gobject-1-dev zlib1g-dev apache2 mysql-server php5 php5-mysql build-essential libmysqlclient-dev libssl-dev libbz2-dev libpcre3-dev libdbi-perl libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libmime-perl libwww-perl libdbd-mysql-perl libsys-mmap-perl yasm automake autoconf cmake libjpeg-turbo8-dev apache2-mpm-prefork libapache2-mod-php5 php5-cli libtheora-dev libvorbis-dev libvpx-dev libx264-dev libvlccore-dev libvlc-dev libvlccore5 libvlc5 2>&1 > /dev/null
|
- sudo apt-get install -y -qq libpolkit-gobject-1-dev zlib1g-dev apache2 mysql-server php5 php5-mysql build-essential libmysqlclient-dev libssl-dev libbz2-dev libpcre3-dev libdbi-perl libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libmime-perl libwww-perl libdbd-mysql-perl libsys-mmap-perl yasm automake autoconf cmake libjpeg-turbo8-dev apache2-mpm-prefork libapache2-mod-php5 php5-cli libtheora-dev libvorbis-dev libvpx-dev libx264-dev libvlccore-dev libvlc-dev libvlccore5 libvlc5 2>&1 > /dev/null
|
||||||
install:
|
install:
|
||||||
- git clone -b n2.4.2 --depth=1 git://source.ffmpeg.org/ffmpeg.git
|
- git clone -b n2.7.2 --depth=1 git://source.ffmpeg.org/ffmpeg.git
|
||||||
- cd ffmpeg
|
- cd ffmpeg
|
||||||
- ./configure --enable-shared --enable-swscale --enable-gpl --enable-libx264 --enable-libvpx --enable-libvorbis --enable-libtheora
|
- ./configure --enable-shared --enable-swscale --enable-gpl --enable-libx264 --enable-libvpx --enable-libvorbis --enable-libtheora
|
||||||
- make -j `grep processor /proc/cpuinfo|wc -l`
|
- make -j `grep processor /proc/cpuinfo|wc -l`
|
||||||
|
|
|
@ -9,6 +9,10 @@ All documentation for ZoneMinder is now online at http://www.zoneminder.com/wiki
|
||||||
|
|
||||||
ZoneMinder is an integrated set of applications which provide a complete surveillance solution allowing capture, analysis, recording and monitoring of any CCTV or security cameras attached to a Linux based machine. It is designed to run on distributions which support the Video For Linux (V4L) interface and has been tested with video cameras attached to BTTV cards, various USB cameras and also supports most IP network cameras.
|
ZoneMinder is an integrated set of applications which provide a complete surveillance solution allowing capture, analysis, recording and monitoring of any CCTV or security cameras attached to a Linux based machine. It is designed to run on distributions which support the Video For Linux (V4L) interface and has been tested with video cameras attached to BTTV cards, various USB cameras and also supports most IP network cameras.
|
||||||
|
|
||||||
|
## Contacting the Developement Team
|
||||||
|
Before creating an issue in our github forum, please read our posting rules:
|
||||||
|
https://github.com/ZoneMinder/ZoneMinder/wiki/Github-Posting-Rules
|
||||||
|
|
||||||
## Installation Methods
|
## Installation Methods
|
||||||
|
|
||||||
### Building from Source is Discouraged
|
### Building from Source is Discouraged
|
||||||
|
@ -40,7 +44,7 @@ Lastly, if you desire to build a development snapshot from the master branch, it
|
||||||
|
|
||||||
What follows are instructions for various distros to build ZoneMinder into a package.
|
What follows are instructions for various distros to build ZoneMinder into a package.
|
||||||
|
|
||||||
### Package Maintainters
|
### Package Maintainers
|
||||||
Many of the ZoneMinder configration variable default values are not configurable at build time through autotools or cmake. A new tool called *zmeditconfigdata.sh* has been added to allow package maintainers to manipulate any variable stored in ConfigData.pm without patching the source.
|
Many of the ZoneMinder configration variable default values are not configurable at build time through autotools or cmake. A new tool called *zmeditconfigdata.sh* has been added to allow package maintainers to manipulate any variable stored in ConfigData.pm without patching the source.
|
||||||
|
|
||||||
For example, let's say I have created a new ZoneMinder package that contains the cambolzola javascript file. However, by default cambozola support is turned off. To fix that, add this to the pacakging script:
|
For example, let's say I have created a new ZoneMinder package that contains the cambolzola javascript file. However, by default cambozola support is turned off. To fix that, add this to the pacakging script:
|
||||||
|
|
|
@ -496,7 +496,7 @@ fi
|
||||||
AC_SUBST(PERL_MM_PARMS)
|
AC_SUBST(PERL_MM_PARMS)
|
||||||
AC_SUBST(EXTRA_PERL_LIB)
|
AC_SUBST(EXTRA_PERL_LIB)
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile zm.conf zmconfgen.pl db/Makefile db/zm_create.sql misc/Makefile misc/apache.conf misc/logrotate.conf misc/syslog.conf misc/com.zoneminder.systemctl.policy misc/com.zoneminder.systemctl.rules onvif/Makefile onvif/scripts/Makefile scripts/Makefile scripts/zm scripts/zmaudit.pl scripts/zmcontrol.pl scripts/zmdc.pl scripts/zmfilter.pl scripts/zmpkg.pl scripts/zmtrack.pl scripts/zmcamtool.pl scripts/zmsystemctl.pl scripts/zmtrigger.pl scripts/zmupdate.pl scripts/zmvideo.pl scripts/zmwatch.pl scripts/zmx10.pl scripts/zmdbbackup scripts/zmdbrestore scripts/zmeventdump scripts/zmlogrotate.conf scripts/ZoneMinder/lib/ZoneMinder/Base.pm scripts/ZoneMinder/lib/ZoneMinder/Config.pm scripts/ZoneMinder/lib/ZoneMinder/Memory.pm scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm src/Makefile src/zm_config.h web/Makefile web/ajax/Makefile web/css/Makefile web/graphics/Makefile web/includes/Makefile web/includes/config.php web/js/Makefile web/lang/Makefile web/skins/Makefile web/skins/classic/Makefile web/skins/classic/ajax/Makefile web/skins/classic/css/Makefile web/skins/classic/css/classic/Makefile web/skins/classic/css/classic/views/Makefile web/skins/classic/css/flat/Makefile web/skins/classic/css/flat/views/Makefile web/skins/classic/graphics/Makefile web/skins/classic/includes/Makefile web/skins/classic/js/Makefile web/skins/classic/lang/Makefile web/skins/classic/views/Makefile web/skins/classic/views/js/Makefile web/skins/mobile/Makefile web/skins/mobile/ajax/Makefile web/skins/mobile/css/Makefile web/skins/mobile/graphics/Makefile web/skins/mobile/includes/Makefile web/skins/mobile/lang/Makefile web/skins/mobile/views/Makefile web/skins/mobile/views/css/Makefile web/tools/Makefile web/tools/mootools/Makefile web/views/Makefile web/skins/xml/Makefile web/skins/xml/views/Makefile web/skins/xml/includes/Makefile])
|
AC_CONFIG_FILES([Makefile zm.conf zmconfgen.pl db/Makefile db/zm_create.sql misc/Makefile misc/apache.conf misc/logrotate.conf misc/syslog.conf misc/com.zoneminder.systemctl.policy misc/com.zoneminder.systemctl.rules onvif/Makefile onvif/scripts/Makefile scripts/Makefile scripts/zm scripts/zmaudit.pl scripts/zmcontrol.pl scripts/zmdc.pl scripts/zmfilter.pl scripts/zmpkg.pl scripts/zmtrack.pl scripts/zmcamtool.pl scripts/zmsystemctl.pl scripts/zmtrigger.pl scripts/zmupdate.pl scripts/zmvideo.pl scripts/zmwatch.pl scripts/zmx10.pl scripts/zmdbbackup scripts/zmdbrestore scripts/zmeventdump scripts/zmlogrotate.conf scripts/ZoneMinder/lib/ZoneMinder/Base.pm scripts/ZoneMinder/lib/ZoneMinder/Config.pm scripts/ZoneMinder/lib/ZoneMinder/Memory.pm scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm src/Makefile src/zm_config.h web/Makefile web/ajax/Makefile web/css/Makefile web/graphics/Makefile web/includes/Makefile web/includes/config.php web/js/Makefile web/lang/Makefile web/skins/Makefile web/skins/classic/Makefile web/skins/classic/ajax/Makefile web/skins/classic/css/Makefile web/skins/classic/css/classic/Makefile web/skins/classic/css/classic/views/Makefile web/skins/classic/css/dark/Makefile web/skins/classic/css/dark/views/Makefile web/skins/classic/css/flat/Makefile web/skins/classic/css/flat/views/Makefile web/skins/classic/graphics/Makefile web/skins/classic/includes/Makefile web/skins/classic/js/Makefile web/skins/classic/lang/Makefile web/skins/classic/views/Makefile web/skins/classic/views/js/Makefile web/skins/mobile/Makefile web/skins/mobile/ajax/Makefile web/skins/mobile/css/Makefile web/skins/mobile/graphics/Makefile web/skins/mobile/includes/Makefile web/skins/mobile/lang/Makefile web/skins/mobile/views/Makefile web/skins/mobile/views/css/Makefile web/tools/Makefile web/tools/mootools/Makefile web/views/Makefile web/skins/xml/Makefile web/skins/xml/views/Makefile web/skins/xml/includes/Makefile])
|
||||||
|
|
||||||
# Create the definitions for compilation and defaults for the database
|
# Create the definitions for compilation and defaults for the database
|
||||||
AC_CONFIG_COMMANDS([src/zm_config_defines.h],[perl ./zmconfgen.pl])
|
AC_CONFIG_COMMANDS([src/zm_config_defines.h],[perl ./zmconfgen.pl])
|
||||||
|
|
|
@ -23,7 +23,7 @@ apache_remove() {
|
||||||
|
|
||||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
|
if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
|
||||||
# Deconfigure the web server
|
# Deconfigure the web server
|
||||||
db_get zoneminder/webserver
|
db_get zoneminder/webserver || true
|
||||||
for webserver in $RET; do
|
for webserver in $RET; do
|
||||||
webserver=${webserver%,}
|
webserver=${webserver%,}
|
||||||
# Currently we only support apache2
|
# Currently we only support apache2
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
../redhat/redalert.wav
|
|
|
@ -0,0 +1 @@
|
||||||
|
../redhat/redalert.wav
|
|
@ -32,7 +32,7 @@ Alias /zm "/usr/share/zoneminder/www"
|
||||||
ScriptAlias /cgi-bin/zm "/usr/libexec/zoneminder/cgi-bin"
|
ScriptAlias /cgi-bin/zm "/usr/libexec/zoneminder/cgi-bin"
|
||||||
<Directory "/usr/libexec/zoneminder/cgi-bin">
|
<Directory "/usr/libexec/zoneminder/cgi-bin">
|
||||||
AllowOverride All
|
AllowOverride All
|
||||||
Options ExecCGI
|
Options +ExecCGI +FollowSymLinks
|
||||||
<IfModule mod_authz_core.c>
|
<IfModule mod_authz_core.c>
|
||||||
# Apache 2.4
|
# Apache 2.4
|
||||||
Require all granted
|
Require all granted
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
../redhat/redalert.wav
|
|
|
@ -0,0 +1 @@
|
||||||
|
../redhat/redalert.wav
|
|
@ -22,7 +22,7 @@ Alias /zm "@ZM_WEBDIR@"
|
||||||
ScriptAlias /cgi-bin/zm "@ZM_WEBDIR@"
|
ScriptAlias /cgi-bin/zm "@ZM_WEBDIR@"
|
||||||
<Directory "@ZM_WEBDIR@">
|
<Directory "@ZM_WEBDIR@">
|
||||||
AllowOverride All
|
AllowOverride All
|
||||||
Options ExecCGI
|
Options ExecCGI FollowSymLinks
|
||||||
Order allow,deny
|
Order allow,deny
|
||||||
Allow from all
|
Allow from all
|
||||||
</Directory>
|
</Directory>
|
||||||
|
|
|
@ -29,7 +29,7 @@ Alias /zm "@ZM_WEBDIR@"
|
||||||
ScriptAlias /cgi-bin-zm "@ZM_CGIDIR@"
|
ScriptAlias /cgi-bin-zm "@ZM_CGIDIR@"
|
||||||
<Directory "@ZM_CGIDIR@">
|
<Directory "@ZM_CGIDIR@">
|
||||||
AllowOverride All
|
AllowOverride All
|
||||||
Options ExecCGI
|
Options +ExecCGI +FollowSymLinks
|
||||||
<IfModule mod_authz_core.c>
|
<IfModule mod_authz_core.c>
|
||||||
# Apache 2.4
|
# Apache 2.4
|
||||||
Require all granted
|
Require all granted
|
||||||
|
|
|
@ -23,7 +23,7 @@ apache_remove() {
|
||||||
|
|
||||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
|
if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
|
||||||
# Deconfigure the web server
|
# Deconfigure the web server
|
||||||
db_get zoneminder/webserver
|
db_get zoneminder/webserver || true
|
||||||
for webserver in $RET; do
|
for webserver in $RET; do
|
||||||
webserver=${webserver%,}
|
webserver=${webserver%,}
|
||||||
# Currently we only support apache2
|
# Currently we only support apache2
|
||||||
|
|
|
@ -98,3 +98,11 @@ You use "less than" to indicate that you want to match events before the specifi
|
||||||
|
|
||||||
You should always test your filters before enabling any actions based on them to make sure they consistently return the results you want. You can use the submit button to see what events are returned by your query.
|
You should always test your filters before enabling any actions based on them to make sure they consistently return the results you want. You can use the submit button to see what events are returned by your query.
|
||||||
|
|
||||||
|
Caveat with Relative items
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
One thing to remember if you specify relative dates like "now" or "1 minute ago", etc, they are converted to a specific date and time by Zoneminder's filtering process (zmfilter.pl) when the filters are loaded. They are _NOT_ recomputed each time the filter runs. Filters are re-loaded depending on the value specified by FILTER_RELOAD_DELAY variable in the Zoneminder Web Console->Options->System
|
||||||
|
|
||||||
|
This may cause confusion in the following cases, for example:
|
||||||
|
Let's say a user specifies that he wants to be notified of events via email the moment the event "DateTime" is "less than" "now" as a filter criteria. When the filter first gets loaded by zmfilter.pl, this will translate to "Match events where Start Time < " + localtime() where local time is the time that is resolved when this filter gets loaded. Now till the time the filter gets reloaded after FILTER_RELOAD_DELAY seconds (which is usually set to 300 seconds, or 5 minutes), that time does not get recomputed, so the filter will not process any new events that occur after that computed date till another 5 minutes, which is probably not what you want.
|
||||||
|
|
||||||
|
|
|
@ -567,13 +567,15 @@ void Event::AddFrame( Image *image, struct timeval timestamp, int score, Image *
|
||||||
struct DeltaTimeval delta_time;
|
struct DeltaTimeval delta_time;
|
||||||
DELTA_TIMEVAL( delta_time, timestamp, start_time, DT_PREC_2 );
|
DELTA_TIMEVAL( delta_time, timestamp, start_time, DT_PREC_2 );
|
||||||
|
|
||||||
bool db_frame = (score>=0) || ((frames%config.bulk_frame_interval)==0) || !frames;
|
const char *frame_type = score>0?"Alarm":(score<0?"Bulk":"Normal");
|
||||||
|
if ( score < 0 )
|
||||||
|
score = 0;
|
||||||
|
|
||||||
|
bool db_frame = (strcmp(frame_type,"Bulk") != 0) || ((frames%config.bulk_frame_interval)==0) || !frames;
|
||||||
if ( db_frame )
|
if ( db_frame )
|
||||||
{
|
{
|
||||||
const char *frame_type = score>0?"Alarm":(score<0?"Bulk":"Normal");
|
|
||||||
|
|
||||||
Debug( 1, "Adding frame %d to DB", frames );
|
Debug( 1, "Adding frame %d of type \"%s\" to DB", frames, frame_type );
|
||||||
static char sql[ZM_SQL_MED_BUFSIZ];
|
static char sql[ZM_SQL_MED_BUFSIZ];
|
||||||
snprintf( sql, sizeof(sql), "insert into Frames ( EventId, FrameId, Type, TimeStamp, Delta, Score ) values ( %d, %d, '%s', from_unixtime( %ld ), %s%ld.%02ld, %d )", id, frames, frame_type, timestamp.tv_sec, delta_time.positive?"":"-", delta_time.sec, delta_time.fsec, score );
|
snprintf( sql, sizeof(sql), "insert into Frames ( EventId, FrameId, Type, TimeStamp, Delta, Score ) values ( %d, %d, '%s', from_unixtime( %ld ), %s%ld.%02ld, %d )", id, frames, frame_type, timestamp.tv_sec, delta_time.positive?"":"-", delta_time.sec, delta_time.fsec, score );
|
||||||
if ( mysql_query( &dbconn, sql ) )
|
if ( mysql_query( &dbconn, sql ) )
|
||||||
|
@ -583,8 +585,8 @@ void Event::AddFrame( Image *image, struct timeval timestamp, int score, Image *
|
||||||
}
|
}
|
||||||
last_db_frame = frames;
|
last_db_frame = frames;
|
||||||
|
|
||||||
// We are writing a bulk frame
|
// We are writing a Bulk frame
|
||||||
if ( score < 0 )
|
if ( !strcmp( frame_type,"Bulk") )
|
||||||
{
|
{
|
||||||
snprintf( sql, sizeof(sql), "update Events set Length = %s%ld.%02ld, Frames = %d, AlarmFrames = %d, TotScore = %d, AvgScore = %d, MaxScore = %d where Id = %d", delta_time.positive?"":"-", delta_time.sec, delta_time.fsec, frames, alarm_frames, tot_score, (int)(alarm_frames?(tot_score/alarm_frames):0), max_score, id );
|
snprintf( sql, sizeof(sql), "update Events set Length = %s%ld.%02ld, Frames = %d, AlarmFrames = %d, TotScore = %d, AvgScore = %d, MaxScore = %d where Id = %d", delta_time.positive?"":"-", delta_time.sec, delta_time.fsec, frames, alarm_frames, tot_score, (int)(alarm_frames?(tot_score/alarm_frames):0), max_score, id );
|
||||||
if ( mysql_query( &dbconn, sql ) )
|
if ( mysql_query( &dbconn, sql ) )
|
||||||
|
@ -597,7 +599,8 @@ void Event::AddFrame( Image *image, struct timeval timestamp, int score, Image *
|
||||||
|
|
||||||
end_time = timestamp;
|
end_time = timestamp;
|
||||||
|
|
||||||
if ( score > 0 )
|
// We are writing an Alarm frame
|
||||||
|
if ( !strcmp( frame_type,"Alarm") )
|
||||||
{
|
{
|
||||||
alarm_frames++;
|
alarm_frames++;
|
||||||
|
|
||||||
|
|
|
@ -2596,10 +2596,10 @@ void Image::Scale( unsigned int factor )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int new_width = (width*factor)/ZM_SCALE_BASE+1;
|
unsigned int new_width = (width*factor)/ZM_SCALE_BASE;
|
||||||
unsigned int new_height = (height*factor)/ZM_SCALE_BASE+1;
|
unsigned int new_height = (height*factor)/ZM_SCALE_BASE;
|
||||||
|
|
||||||
size_t scale_buffer_size = new_width * new_height * colours;
|
size_t scale_buffer_size = (new_width+1) * (new_height+1) * colours;
|
||||||
|
|
||||||
uint8_t* scale_buffer = AllocBuffer(scale_buffer_size);
|
uint8_t* scale_buffer = AllocBuffer(scale_buffer_size);
|
||||||
|
|
||||||
|
|
|
@ -235,7 +235,7 @@ void Logger::initialise( const std::string &id, const Options &options )
|
||||||
|
|
||||||
void Logger::terminate()
|
void Logger::terminate()
|
||||||
{
|
{
|
||||||
Info( "Terminating Logger" );
|
Debug(1, "Terminating Logger" );
|
||||||
|
|
||||||
if ( mFileLevel > NOLOG )
|
if ( mFileLevel > NOLOG )
|
||||||
closeFile();
|
closeFile();
|
||||||
|
|
|
@ -427,10 +427,6 @@ Monitor::Monitor(
|
||||||
Error( "Shared data not initialised by capture daemon for monitor %s", name );
|
Error( "Shared data not initialised by capture daemon for monitor %s", name );
|
||||||
exit( -1 );
|
exit( -1 );
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
Warning( "Shared data not initialised by capture daemon, some query functions may not be available or produce invalid results for monitor %s", name );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Will this not happen every time a monitor is instantiated? Seems like all the calls to the Monitor constructor pass a zero for n_zones, then load zones after..
|
// Will this not happen every time a monitor is instantiated? Seems like all the calls to the Monitor constructor pass a zero for n_zones, then load zones after..
|
||||||
|
@ -2863,7 +2859,7 @@ int Monitor::Capture()
|
||||||
}
|
}
|
||||||
if ( true ) {
|
if ( true ) {
|
||||||
|
|
||||||
if ( capture_image->Size() != camera->ImageSize() )
|
if ( capture_image->Size() > camera->ImageSize() )
|
||||||
{
|
{
|
||||||
Error( "Captured image %d does not match expected size %d check width, height and colour depth",capture_image->Size(),camera->ImageSize() );
|
Error( "Captured image %d does not match expected size %d check width, height and colour depth",capture_image->Size(),camera->ImageSize() );
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
|
|
@ -238,7 +238,7 @@ User *zmLoadAuthUser( const char *auth, bool use_remote_addr )
|
||||||
{
|
{
|
||||||
// We have a match
|
// We have a match
|
||||||
User *user = new User( dbrow );
|
User *user = new User( dbrow );
|
||||||
Info( "Authenticated user '%s'", user->getUsername() );
|
Debug(1, "Authenticated user '%s'", user->getUsername() );
|
||||||
return( user );
|
return( user );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ class AppController extends Controller {
|
||||||
use CrudControllerTrait;
|
use CrudControllerTrait;
|
||||||
|
|
||||||
public $components = [
|
public $components = [
|
||||||
|
'Session', // PP - We are going to use SessionHelper to check PHP session vars
|
||||||
'RequestHandler',
|
'RequestHandler',
|
||||||
'Crud.Crud' => [
|
'Crud.Crud' => [
|
||||||
'actions' => [
|
'actions' => [
|
||||||
|
@ -47,4 +48,25 @@ class AppController extends Controller {
|
||||||
'listeners' => ['Api', 'ApiTransformation']
|
'listeners' => ['Api', 'ApiTransformation']
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
//PP - Global beforeFilter function
|
||||||
|
//Zoneminder sets the username session variable
|
||||||
|
// to the logged in user. If this variable is set
|
||||||
|
// then you are logged in
|
||||||
|
// its pretty simple to extend this to also check
|
||||||
|
// for role and deny API access in future
|
||||||
|
// Also checking to do this only if ZM_OPT_USE_AUTH is on
|
||||||
|
public function beforeFilter() {
|
||||||
|
$this->loadModel('Config');
|
||||||
|
$options = array('conditions' => array('Config.' . $this->Config->primaryKey => 'ZM_OPT_USE_AUTH'));
|
||||||
|
$config = $this->Config->find('first', $options);
|
||||||
|
$zmOptAuth = $config['Config']['Value'];
|
||||||
|
if (!$this->Session->Read('user.Username') && ($zmOptAuth=='1'))
|
||||||
|
{
|
||||||
|
throw new NotFoundException(__('Not Authenticated'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,23 @@ class ConfigsController extends AppController {
|
||||||
*/
|
*/
|
||||||
public $components = array('RequestHandler');
|
public $components = array('RequestHandler');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PP - resolves the issue of not returning all config parameters
|
||||||
|
* refer https://github.com/ZoneMinder/ZoneMinder/issues/953
|
||||||
|
* index method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function index() {
|
||||||
|
$this->Config->recursive = 0;
|
||||||
|
$configs = $this->Config->find('all');
|
||||||
|
$this->set(array(
|
||||||
|
'configs' => $configs,
|
||||||
|
'_serialize' => array('configs')
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* view method
|
* view method
|
||||||
*
|
*
|
||||||
|
|
|
@ -37,7 +37,16 @@ class EventsController extends AppController {
|
||||||
'fields' => array('Name', 'Value')
|
'fields' => array('Name', 'Value')
|
||||||
));
|
));
|
||||||
$this->Paginator->settings = array(
|
$this->Paginator->settings = array(
|
||||||
'limit' => $limit['ZM_WEB_EVENTS_PER_PAGE'],
|
// https://github.com/ZoneMinder/ZoneMinder/issues/995
|
||||||
|
// 'limit' => $limit['ZM_WEB_EVENTS_PER_PAGE'],
|
||||||
|
// PP - 25 events per page which is what the above
|
||||||
|
// default is, is way too low for an API
|
||||||
|
// changing this to 100 so we don't kill ZM
|
||||||
|
// with many event APIs. In future, we can
|
||||||
|
// make a nice ZM_API_ITEMS_PER_PAGE for all pagination
|
||||||
|
// API
|
||||||
|
|
||||||
|
'limit' => '100',
|
||||||
'order' => array('StartTime', 'MaxScore'),
|
'order' => array('StartTime', 'MaxScore'),
|
||||||
'paramType' => 'querystring',
|
'paramType' => 'querystring',
|
||||||
'conditions' => $conditions
|
'conditions' => $conditions
|
||||||
|
|
|
@ -78,7 +78,7 @@ $SLANG = array(
|
||||||
'8BitGrey' => '8-Bit-Grau',
|
'8BitGrey' => '8-Bit-Grau',
|
||||||
'Action' => 'Aktion',
|
'Action' => 'Aktion',
|
||||||
'Actual' => 'Original',
|
'Actual' => 'Original',
|
||||||
'AddNewControl' => 'Neues Kontrollelement hinzufügen',
|
'AddNewControl' => 'Neues Kontrollelement hinzufügen',
|
||||||
'AddNewMonitor' => 'Neuer Monitor',
|
'AddNewMonitor' => 'Neuer Monitor',
|
||||||
'AddNewUser' => 'Neuer Benutzer',
|
'AddNewUser' => 'Neuer Benutzer',
|
||||||
'AddNewZone' => 'Neue Zone',
|
'AddNewZone' => 'Neue Zone',
|
||||||
|
@ -89,7 +89,7 @@ $SLANG = array(
|
||||||
'AlarmLimits' => 'Alarm-Limits',
|
'AlarmLimits' => 'Alarm-Limits',
|
||||||
'AlarmMaximumFPS' => 'Alarm-Maximum-FPS',
|
'AlarmMaximumFPS' => 'Alarm-Maximum-FPS',
|
||||||
'AlarmPx' => 'Alarm-Pixel',
|
'AlarmPx' => 'Alarm-Pixel',
|
||||||
'AlarmRGBUnset' => 'Sie müssen eine RGB-Alarmfarbe setzen',
|
'AlarmRGBUnset' => 'Sie müssen eine RGB-Alarmfarbe setzen',
|
||||||
'AlarmRefImageBlendPct'=> 'Alarm Reference Image Blend %ge', // Added - 2015-04-18
|
'AlarmRefImageBlendPct'=> 'Alarm Reference Image Blend %ge', // Added - 2015-04-18
|
||||||
'Alert' => 'Alarm',
|
'Alert' => 'Alarm',
|
||||||
'All' => 'Alle',
|
'All' => 'Alle',
|
||||||
|
@ -107,7 +107,7 @@ $SLANG = array(
|
||||||
'AttrCause' => 'Grund',
|
'AttrCause' => 'Grund',
|
||||||
'AttrDate' => 'Datum',
|
'AttrDate' => 'Datum',
|
||||||
'AttrDateTime' => 'Datum/Zeit',
|
'AttrDateTime' => 'Datum/Zeit',
|
||||||
'AttrDiskBlocks' => 'Disk-Blöcke',
|
'AttrDiskBlocks' => 'Disk-Blöcke',
|
||||||
'AttrDiskPercent' => 'Disk-Prozent',
|
'AttrDiskPercent' => 'Disk-Prozent',
|
||||||
'AttrDuration' => 'Dauer',
|
'AttrDuration' => 'Dauer',
|
||||||
'AttrFrames' => 'Bilder',
|
'AttrFrames' => 'Bilder',
|
||||||
|
@ -122,61 +122,61 @@ $SLANG = array(
|
||||||
'AttrTotalScore' => 'Totale Punktzahl',
|
'AttrTotalScore' => 'Totale Punktzahl',
|
||||||
'AttrWeekday' => 'Wochentag',
|
'AttrWeekday' => 'Wochentag',
|
||||||
'Auto' => 'Auto',
|
'Auto' => 'Auto',
|
||||||
'AutoStopTimeout' => 'Auto-Stopp-Zeitüberschreitung',
|
'AutoStopTimeout' => 'Auto-Stopp-Zeitüberschreitung',
|
||||||
'Available' => 'Verfügbar', // Added - 2009-03-31
|
'Available' => 'Verfügbar', // Added - 2009-03-31
|
||||||
'AvgBrScore' => 'Mittlere<br/>Punktzahl',
|
'AvgBrScore' => 'Mittlere<br/>Punktzahl',
|
||||||
'Background' => 'Hintergrund',
|
'Background' => 'Hintergrund',
|
||||||
'BackgroundFilter' => 'Filter im Hintergrund laufen lassen',
|
'BackgroundFilter' => 'Filter im Hintergrund laufen lassen',
|
||||||
'BadAlarmFrameCount' => 'Die Bildanzahl muss ganzzahlig 1 oder größer sein',
|
'BadAlarmFrameCount' => 'Die Bildanzahl muss ganzzahlig 1 oder größer sein',
|
||||||
'BadAlarmMaxFPS' => 'Alarm-Maximum-FPS muss eine positive Ganzzahl oder eine Gleitkommazahl sein',
|
'BadAlarmMaxFPS' => 'Alarm-Maximum-FPS muss eine positive Ganzzahl oder eine Gleitkommazahl sein',
|
||||||
'BadChannel' => 'Der Kanal muss ganzzahlig 0 oder größer sein',
|
'BadChannel' => 'Der Kanal muss ganzzahlig 0 oder größer sein',
|
||||||
'BadColours' => 'Zielfarbe muss auf einen gültigen Wert gesetzt werden', // Added - 2011-06-15
|
'BadColours' => 'Zielfarbe muss auf einen gültigen Wert gesetzt werden', // Added - 2011-06-15
|
||||||
'BadDevice' => 'Das Gerät muss eine gültige Systemresource sein',
|
'BadDevice' => 'Das Gerät muss eine gültige Systemresource sein',
|
||||||
'BadFPSReportInterval' => 'Der FPS-Intervall-Puffer-Zähler muss ganzzahlig 0 oder größer sein',
|
'BadFPSReportInterval' => 'Der FPS-Intervall-Puffer-Zähler muss ganzzahlig 0 oder größer sein',
|
||||||
'BadFormat' => 'Das Format muss ganzzahlig 0 oder größer sein',
|
'BadFormat' => 'Das Format muss ganzzahlig 0 oder größer sein',
|
||||||
'BadFrameSkip' => 'Der Auslasszähler für Frames muss ganzzahlig 0 oder größer sein',
|
'BadFrameSkip' => 'Der Auslasszähler für Frames muss ganzzahlig 0 oder größer sein',
|
||||||
'BadHeight' => 'Die Höhe muss auf einen gültigen Wert eingestellt sein',
|
'BadHeight' => 'Die Höhe muss auf einen gültigen Wert eingestellt sein',
|
||||||
'BadHost' => 'Der Host muss auf eine gültige IP-Adresse oder einen Hostnamen (ohne http://) eingestellt sein',
|
'BadHost' => 'Der Host muss auf eine gültige IP-Adresse oder einen Hostnamen (ohne http://) eingestellt sein',
|
||||||
'BadImageBufferCount' => 'Die Größe des Bildpuffers muss ganzzahlig 10 oder größer sein',
|
'BadImageBufferCount' => 'Die Größe des Bildpuffers muss ganzzahlig 10 oder größer sein',
|
||||||
'BadLabelX' => 'Die x-Koordinate der Bezeichnung muss ganzzahlig 0 oder größer sein',
|
'BadLabelX' => 'Die x-Koordinate der Bezeichnung muss ganzzahlig 0 oder größer sein',
|
||||||
'BadLabelY' => 'Die y-Koordinate der Bezeichnung muss ganzzahlig 0 oder größer sein',
|
'BadLabelY' => 'Die y-Koordinate der Bezeichnung muss ganzzahlig 0 oder größer sein',
|
||||||
'BadMaxFPS' => 'Maximum-FPS muss eine positive Ganzzahl oder eine Gleitkommazahl sein',
|
'BadMaxFPS' => 'Maximum-FPS muss eine positive Ganzzahl oder eine Gleitkommazahl sein',
|
||||||
'BadMotionFrameSkip' => 'Bewegungsrahmen Skip-Zählung muß eine ganze Zahl von null oder mehr betragen,',
|
'BadMotionFrameSkip' => 'Bewegungsrahmen Skip-Zählung muß eine ganze Zahl von null oder mehr betragen,',
|
||||||
'BadNameChars' => 'Namen dürfen nur aus Buchstaben, Zahlen und Trenn- oder Unterstrichen bestehen',
|
'BadNameChars' => 'Namen dürfen nur aus Buchstaben, Zahlen und Trenn- oder Unterstrichen bestehen',
|
||||||
'BadPalette' => 'Palette muss auf einen gültigen Wert gesetzt sein', // Added - 2009-03-31
|
'BadPalette' => 'Palette muss auf einen gültigen Wert gesetzt sein', // Added - 2009-03-31
|
||||||
'BadPath' => 'Der Pfad muss auf einen gültigen Wert eingestellt sein',
|
'BadPath' => 'Der Pfad muss auf einen gültigen Wert eingestellt sein',
|
||||||
'BadPort' => 'Der Port muss auf eine gültige Zahl eingestellt sein',
|
'BadPort' => 'Der Port muss auf eine gültige Zahl eingestellt sein',
|
||||||
'BadPostEventCount' => 'Der Zähler für die Ereignisfolgebilder muss ganzzahlig 0 oder größer sein',
|
'BadPostEventCount' => 'Der Zähler für die Ereignisfolgebilder muss ganzzahlig 0 oder größer sein',
|
||||||
'BadPreEventCount' => 'Der Zähler für die Ereignisvorlaufbilder muss mindestens ganzzahlig 0 und kleiner als die Bildpuffergröße sein',
|
'BadPreEventCount' => 'Der Zähler für die Ereignisvorlaufbilder muss mindestens ganzzahlig 0 und kleiner als die Bildpuffergröße sein',
|
||||||
'BadRefBlendPerc' => 'Der Referenz-Blenden-Prozentwert muss ganzzahlig 0 oder größer sein',
|
'BadRefBlendPerc' => 'Der Referenz-Blenden-Prozentwert muss ganzzahlig 0 oder größer sein',
|
||||||
'BadSectionLength' => 'Die Bereichslänge muss ganzzahlig 0 oder größer sein',
|
'BadSectionLength' => 'Die Bereichslänge muss ganzzahlig 0 oder größer sein',
|
||||||
'BadSignalCheckColour' => 'Die Signalprüffarbe muss auf einen gültigen Farbwert eingestellt sein',
|
'BadSignalCheckColour' => 'Die Signalprüffarbe muss auf einen gültigen Farbwert eingestellt sein',
|
||||||
'BadStreamReplayBuffer'=> 'Der Wiedergabestrompuffer muss eine ganze Zahl von null oder mehr betragen',
|
'BadStreamReplayBuffer'=> 'Der Wiedergabestrompuffer muss eine ganze Zahl von null oder mehr betragen',
|
||||||
'BadWarmupCount' => 'Die Anzahl der Vorwärmbilder muss ganzzahlig 0 oder größer sein',
|
'BadWarmupCount' => 'Die Anzahl der Vorwärmbilder muss ganzzahlig 0 oder größer sein',
|
||||||
'BadWebColour' => 'Die Webfarbe muss auf einen gültigen Farbwert eingestellt sein',
|
'BadWebColour' => 'Die Webfarbe muss auf einen gültigen Farbwert eingestellt sein',
|
||||||
'BadWidth' => 'Die Breite muss auf einen gültigen Wert eingestellt sein',
|
'BadWidth' => 'Die Breite muss auf einen gültigen Wert eingestellt sein',
|
||||||
'Bandwidth' => 'Bandbreite',
|
'Bandwidth' => 'Bandbreite',
|
||||||
'BandwidthHead' => 'Bandbreite', // This is the end of the bandwidth status on the top of the console, different in many language due to phrasing
|
'BandwidthHead' => 'Bandbreite', // This is the end of the bandwidth status on the top of the console, different in many language due to phrasing
|
||||||
'BlobPx' => 'Blob-Pixel',
|
'BlobPx' => 'Blob-Pixel',
|
||||||
'BlobSizes' => 'Blobgröße',
|
'BlobSizes' => 'Blobgröße',
|
||||||
'Blobs' => 'Blobs',
|
'Blobs' => 'Blobs',
|
||||||
'Brightness' => 'Helligkeit',
|
'Brightness' => 'Helligkeit',
|
||||||
'Buffer' => 'Buffer', // Added - 2015-04-18
|
'Buffer' => 'Buffer', // Added - 2015-04-18
|
||||||
'Buffers' => 'Buffer',
|
'Buffers' => 'Buffer',
|
||||||
'CSSDescription' => 'Ändere das standard CSS für diesen Computer.', // Added - 2015-04-18
|
'CSSDescription' => 'Ändere das standard CSS für diesen Computer.', // Added - 2015-04-18
|
||||||
'CanAutoFocus' => 'Kann Autofokus',
|
'CanAutoFocus' => 'Kann Autofokus',
|
||||||
'CanAutoGain' => 'Kann Auto-Verstärkung',
|
'CanAutoGain' => 'Kann Auto-Verstärkung',
|
||||||
'CanAutoIris' => 'Kann Auto-Blende',
|
'CanAutoIris' => 'Kann Auto-Blende',
|
||||||
'CanAutoWhite' => 'Kann Auto-Weiß-Abgleich',
|
'CanAutoWhite' => 'Kann Auto-Weiß-Abgleich',
|
||||||
'CanAutoZoom' => 'Kann Auto-Zoom',
|
'CanAutoZoom' => 'Kann Auto-Zoom',
|
||||||
'CanFocus' => 'Kann Fokus',
|
'CanFocus' => 'Kann Fokus',
|
||||||
'CanFocusAbs' => 'Kann absoluten Fokus',
|
'CanFocusAbs' => 'Kann absoluten Fokus',
|
||||||
'CanFocusCon' => 'Kann kontinuierlichen Fokus',
|
'CanFocusCon' => 'Kann kontinuierlichen Fokus',
|
||||||
'CanFocusRel' => 'Kann relativen Fokus',
|
'CanFocusRel' => 'Kann relativen Fokus',
|
||||||
'CanGain' => 'Kann Verstärkung',
|
'CanGain' => 'Kann Verstärkung',
|
||||||
'CanGainAbs' => 'Kann absolute Verstärkung',
|
'CanGainAbs' => 'Kann absolute Verstärkung',
|
||||||
'CanGainCon' => 'Kann kontinuierliche Verstärkung',
|
'CanGainCon' => 'Kann kontinuierliche Verstärkung',
|
||||||
'CanGainRel' => 'Kann relative Verstärkung',
|
'CanGainRel' => 'Kann relative Verstärkung',
|
||||||
'CanIris' => 'Kann Blende',
|
'CanIris' => 'Kann Blende',
|
||||||
'CanIrisAbs' => 'Kann absolute Blende',
|
'CanIrisAbs' => 'Kann absolute Blende',
|
||||||
'CanIrisCon' => 'Kann kontinuierliche Blende',
|
'CanIrisCon' => 'Kann kontinuierliche Blende',
|
||||||
|
@ -193,49 +193,49 @@ $SLANG = array(
|
||||||
'CanSleep' => 'Kann Sleep',
|
'CanSleep' => 'Kann Sleep',
|
||||||
'CanTilt' => 'Kann Neigung',
|
'CanTilt' => 'Kann Neigung',
|
||||||
'CanWake' => 'Kann Wake',
|
'CanWake' => 'Kann Wake',
|
||||||
'CanWhite' => 'Kann Weiß-Abgleich',
|
'CanWhite' => 'Kann Weiß-Abgleich',
|
||||||
'CanWhiteAbs' => 'Kann absoluten Weiß-Abgleich',
|
'CanWhiteAbs' => 'Kann absoluten Weiß-Abgleich',
|
||||||
'CanWhiteBal' => 'Kann Weiß-Abgleich-Balance',
|
'CanWhiteBal' => 'Kann Weiß-Abgleich-Balance',
|
||||||
'CanWhiteCon' => 'Kann kontinuierlichen Weiß-Abgleich',
|
'CanWhiteCon' => 'Kann kontinuierlichen Weiß-Abgleich',
|
||||||
'CanWhiteRel' => 'Kann relativen Weiß-Abgleich',
|
'CanWhiteRel' => 'Kann relativen Weiß-Abgleich',
|
||||||
'CanZoom' => 'Kann Zoom',
|
'CanZoom' => 'Kann Zoom',
|
||||||
'CanZoomAbs' => 'Kann absoluten Zoom',
|
'CanZoomAbs' => 'Kann absoluten Zoom',
|
||||||
'CanZoomCon' => 'Kann kontinuierlichen Zoom',
|
'CanZoomCon' => 'Kann kontinuierlichen Zoom',
|
||||||
'CanZoomRel' => 'Kann relativen Zoom',
|
'CanZoomRel' => 'Kann relativen Zoom',
|
||||||
'Cancel' => 'Abbruch',
|
'Cancel' => 'Abbruch',
|
||||||
'CancelForcedAlarm' => 'Abbruch des unbedingten Alarms',
|
'CancelForcedAlarm' => 'Abbruch des unbedingten Alarms',
|
||||||
'CaptureHeight' => 'Erfassungshöhe',
|
'CaptureHeight' => 'Erfassungshöhe',
|
||||||
'CaptureMethod' => 'Erfassungsmethode', // Added - 2009-02-08
|
'CaptureMethod' => 'Erfassungsmethode', // Added - 2009-02-08
|
||||||
'CapturePalette' => 'Erfassungsfarbpalette',
|
'CapturePalette' => 'Erfassungsfarbpalette',
|
||||||
'CaptureResolution' => 'Aufnahmeauflösung', // Added - 2015-04-18
|
'CaptureResolution' => 'Aufnahmeauflösung', // Added - 2015-04-18
|
||||||
'CaptureWidth' => 'Erfassungsbreite',
|
'CaptureWidth' => 'Erfassungsbreite',
|
||||||
'Cause' => 'Grund',
|
'Cause' => 'Grund',
|
||||||
'CheckMethod' => 'Alarm-Prüfmethode',
|
'CheckMethod' => 'Alarm-Prüfmethode',
|
||||||
'ChooseDetectedCamera' => 'Erkannte Kamera wählen', // Added - 2009-03-31
|
'ChooseDetectedCamera' => 'Erkannte Kamera wählen', // Added - 2009-03-31
|
||||||
'ChooseFilter' => 'Filterauswahl',
|
'ChooseFilter' => 'Filterauswahl',
|
||||||
'ChooseLogFormat' => 'Log-Format wählen', // Added - 2011-06-17
|
'ChooseLogFormat' => 'Log-Format wählen', // Added - 2011-06-17
|
||||||
'ChooseLogSelection' => 'Log-Auswahl', // Added - 2011-06-17
|
'ChooseLogSelection' => 'Log-Auswahl', // Added - 2011-06-17
|
||||||
'ChoosePreset' => 'Voreinstellung auswählen',
|
'ChoosePreset' => 'Voreinstellung auswählen',
|
||||||
'Clear' => 'Leeren', // Added - 2011-06-16
|
'Clear' => 'Leeren', // Added - 2011-06-16
|
||||||
'Close' => 'Schließen',
|
'Close' => 'Schließen',
|
||||||
'Colour' => 'Farbe',
|
'Colour' => 'Farbe',
|
||||||
'Command' => 'Kommando',
|
'Command' => 'Kommando',
|
||||||
'Component' => 'Komponente', // Added - 2011-06-16
|
'Component' => 'Komponente', // Added - 2011-06-16
|
||||||
'Config' => 'Konfig.',
|
'Config' => 'Konfig.',
|
||||||
'ConfiguredFor' => 'Konfiguriert für',
|
'ConfiguredFor' => 'Konfiguriert für',
|
||||||
'ConfirmDeleteEvents' => 'Sind Sie sicher, dass Sie die ausgewählten Ereignisse löschen wollen?',
|
'ConfirmDeleteEvents' => 'Sind Sie sicher, dass Sie die ausgewählten Ereignisse löschen wollen?',
|
||||||
'ConfirmPassword' => 'Passwortbestätigung',
|
'ConfirmPassword' => 'Passwortbestätigung',
|
||||||
'ConjAnd' => 'und',
|
'ConjAnd' => 'und',
|
||||||
'ConjOr' => 'oder',
|
'ConjOr' => 'oder',
|
||||||
'Console' => 'Konsole',
|
'Console' => 'Konsole',
|
||||||
'ContactAdmin' => 'Bitte kontaktieren Sie den Administrator für weitere Details',
|
'ContactAdmin' => 'Bitte kontaktieren Sie den Administrator für weitere Details',
|
||||||
'Continue' => 'Weiter',
|
'Continue' => 'Weiter',
|
||||||
'Contrast' => 'Kontrast',
|
'Contrast' => 'Kontrast',
|
||||||
'Control' => 'Kontrolle',
|
'Control' => 'Kontrolle',
|
||||||
'ControlAddress' => 'Kontrolladresse',
|
'ControlAddress' => 'Kontrolladresse',
|
||||||
'ControlCap' => 'Kontrollmöglichkeit',
|
'ControlCap' => 'Kontrollmöglichkeit',
|
||||||
'ControlCaps' => 'Kontrollmöglichkeiten',
|
'ControlCaps' => 'Kontrollmöglichkeiten',
|
||||||
'ControlDevice' => 'Kontrollgerät',
|
'ControlDevice' => 'Kontrollgerät',
|
||||||
'ControlType' => 'Kontrolltyp',
|
'ControlType' => 'Kontrolltyp',
|
||||||
'Controllable' => 'Kontrollierbar',
|
'Controllable' => 'Kontrollierbar',
|
||||||
'Current' => 'Aktuell', // Added - 2015-04-18
|
'Current' => 'Aktuell', // Added - 2015-04-18
|
||||||
|
@ -248,20 +248,20 @@ $SLANG = array(
|
||||||
'DefaultScale' => 'Standardskalierung',
|
'DefaultScale' => 'Standardskalierung',
|
||||||
'DefaultView' => 'Standardansicht',
|
'DefaultView' => 'Standardansicht',
|
||||||
'Deinterlacing' => 'Deinterlacing', // Added - 2015-04-18
|
'Deinterlacing' => 'Deinterlacing', // Added - 2015-04-18
|
||||||
'Delay' => 'Verzögerung', // Added - 2015-04-18
|
'Delay' => 'Verzögerung', // Added - 2015-04-18
|
||||||
'Delete' => 'Löschen',
|
'Delete' => 'Löschen',
|
||||||
'DeleteAndNext' => 'Löschen & Nächstes',
|
'DeleteAndNext' => 'Löschen & Nächstes',
|
||||||
'DeleteAndPrev' => 'Löschen & Vorheriges',
|
'DeleteAndPrev' => 'Löschen & Vorheriges',
|
||||||
'DeleteSavedFilter' => 'Lösche gespeichertes Filter',
|
'DeleteSavedFilter' => 'Lösche gespeichertes Filter',
|
||||||
'Description' => 'Beschreibung',
|
'Description' => 'Beschreibung',
|
||||||
'DetectedCameras' => 'Erkannte Kameras', // Added - 2009-03-31
|
'DetectedCameras' => 'Erkannte Kameras', // Added - 2009-03-31
|
||||||
'DetectedProfiles' => 'Erkannte Profile', // Added - 2015-04-18
|
'DetectedProfiles' => 'Erkannte Profile', // Added - 2015-04-18
|
||||||
'Device' => 'Gerät', // Added - 2009-02-08
|
'Device' => 'Gerät', // Added - 2009-02-08
|
||||||
'DeviceChannel' => 'Gerätekanal',
|
'DeviceChannel' => 'Gerätekanal',
|
||||||
'DeviceFormat' => 'Geräteformat',
|
'DeviceFormat' => 'Geräteformat',
|
||||||
'DeviceNumber' => 'Gerätenummer',
|
'DeviceNumber' => 'Gerätenummer',
|
||||||
'DevicePath' => 'Gerätepfad',
|
'DevicePath' => 'Gerätepfad',
|
||||||
'Devices' => 'Geräte',
|
'Devices' => 'Geräte',
|
||||||
'Dimensions' => 'Abmessungen',
|
'Dimensions' => 'Abmessungen',
|
||||||
'DisableAlarms' => 'Alarme abschalten',
|
'DisableAlarms' => 'Alarme abschalten',
|
||||||
'Disk' => 'Disk',
|
'Disk' => 'Disk',
|
||||||
|
@ -270,13 +270,13 @@ $SLANG = array(
|
||||||
'DoNativeMotionDetection'=> 'Do Native Motion Detection',
|
'DoNativeMotionDetection'=> 'Do Native Motion Detection',
|
||||||
'Donate' => 'Bitte spenden Sie.',
|
'Donate' => 'Bitte spenden Sie.',
|
||||||
'DonateAlready' => 'Nein, ich habe schon gespendet',
|
'DonateAlready' => 'Nein, ich habe schon gespendet',
|
||||||
'DonateEnticement' => 'Sie benutzen ZoneMinder nun schon eine Weile und es ist hoffentlich eine nützliche Applikation zur Verbesserung Ihrer Heim- oder Arbeitssicherheit. Obwohl ZoneMinder eine freie Open-Source-Software ist und bleiben wird, entstehen Kosten bei der Entwicklung und dem Support.<br><br>Falls Sie ZoneMinder für Weiterentwicklung in der Zukunft unterstützen möchten, denken Sie bitte über eine Spende für das Projekt unter der Webadresse http://www.zoneminder.com/donate.html oder über nachfolgend stehende Option nach. Spenden sind, wie der Name schon sagt, immer freiwillig. Dem Projekt helfen kleine genauso wie größere Spenden sehr weiter und ein herzlicher Dank ist jedem Spender sicher.<br><br>Vielen Dank dafür, dass sie ZoneMinder benutzen. Vergessen Sie nicht die Foren unter ZoneMinder.com, um Support zu erhalten und Ihre Erfahrung mit ZoneMinder zu verbessern!',
|
'DonateEnticement' => 'Sie benutzen ZoneMinder nun schon eine Weile und es ist hoffentlich eine nützliche Applikation zur Verbesserung Ihrer Heim- oder Arbeitssicherheit. Obwohl ZoneMinder eine freie Open-Source-Software ist und bleiben wird, entstehen Kosten bei der Entwicklung und dem Support.<br><br>Falls Sie ZoneMinder für Weiterentwicklung in der Zukunft unterstützen möchten, denken Sie bitte über eine Spende für das Projekt unter der Webadresse http://www.zoneminder.com/donate.html oder über nachfolgend stehende Option nach. Spenden sind, wie der Name schon sagt, immer freiwillig. Dem Projekt helfen kleine genauso wie größere Spenden sehr weiter und ein herzlicher Dank ist jedem Spender sicher.<br><br>Vielen Dank dafür, dass sie ZoneMinder benutzen. Vergessen Sie nicht die Foren unter ZoneMinder.com, um Support zu erhalten und Ihre Erfahrung mit ZoneMinder zu verbessern!',
|
||||||
'DonateRemindDay' => 'Noch nicht, erinnere mich in einem Tag noch mal.',
|
'DonateRemindDay' => 'Noch nicht, erinnere mich in einem Tag noch mal.',
|
||||||
'DonateRemindHour' => 'Noch nicht, erinnere mich in einer Stunde noch mal.',
|
'DonateRemindHour' => 'Noch nicht, erinnere mich in einer Stunde noch mal.',
|
||||||
'DonateRemindMonth' => 'Noch nicht, erinnere mich in einem Monat noch mal.',
|
'DonateRemindMonth' => 'Noch nicht, erinnere mich in einem Monat noch mal.',
|
||||||
'DonateRemindNever' => 'Nein, ich möchte nicht spenden, niemals erinnern.',
|
'DonateRemindNever' => 'Nein, ich möchte nicht spenden, niemals erinnern.',
|
||||||
'DonateRemindWeek' => 'Noch nicht, erinnere mich in einer Woche noch mal.',
|
'DonateRemindWeek' => 'Noch nicht, erinnere mich in einer Woche noch mal.',
|
||||||
'DonateYes' => 'Ja, ich möchte jetzt spenden.',
|
'DonateYes' => 'Ja, ich möchte jetzt spenden.',
|
||||||
'Download' => 'Download',
|
'Download' => 'Download',
|
||||||
'DuplicateMonitorName' => 'Monitornamen Duplizieren', // Added - 2009-03-31
|
'DuplicateMonitorName' => 'Monitornamen Duplizieren', // Added - 2009-03-31
|
||||||
'Duration' => 'Dauer',
|
'Duration' => 'Dauer',
|
||||||
|
@ -287,16 +287,16 @@ $SLANG = array(
|
||||||
'EnterNewFilterName' => 'Neuen Filternamen eingeben',
|
'EnterNewFilterName' => 'Neuen Filternamen eingeben',
|
||||||
'Error' => 'Fehler',
|
'Error' => 'Fehler',
|
||||||
'ErrorBrackets' => 'Fehler. Bitte nur gleiche Anzahl offener und geschlossener Klammern.',
|
'ErrorBrackets' => 'Fehler. Bitte nur gleiche Anzahl offener und geschlossener Klammern.',
|
||||||
'ErrorValidValue' => 'Fehler. Bitte alle Werte auf richtige Eingabe prüfen',
|
'ErrorValidValue' => 'Fehler. Bitte alle Werte auf richtige Eingabe prüfen',
|
||||||
'Etc' => 'etc.',
|
'Etc' => 'etc.',
|
||||||
'Event' => 'Ereignis',
|
'Event' => 'Ereignis',
|
||||||
'EventFilter' => 'Ereignisfilter',
|
'EventFilter' => 'Ereignisfilter',
|
||||||
'EventId' => 'Ereignis-ID',
|
'EventId' => 'Ereignis-ID',
|
||||||
'EventName' => 'Ereignisname',
|
'EventName' => 'Ereignisname',
|
||||||
'EventPrefix' => 'Ereignis-Präfix',
|
'EventPrefix' => 'Ereignis-Präfix',
|
||||||
'Events' => 'Ereignisse',
|
'Events' => 'Ereignisse',
|
||||||
'Exclude' => 'Ausschluss;',
|
'Exclude' => 'Ausschluss;',
|
||||||
'Execute' => 'Ausführen',
|
'Execute' => 'Ausführen',
|
||||||
'Export' => 'Exportieren',
|
'Export' => 'Exportieren',
|
||||||
'ExportDetails' => 'Exportiere Ereignis-Details',
|
'ExportDetails' => 'Exportiere Ereignis-Details',
|
||||||
'ExportFailed' => 'Exportieren fehlgeschlagen',
|
'ExportFailed' => 'Exportieren fehlgeschlagen',
|
||||||
|
@ -315,21 +315,21 @@ $SLANG = array(
|
||||||
'FPSReportInterval' => 'FPS-Meldeintervall',
|
'FPSReportInterval' => 'FPS-Meldeintervall',
|
||||||
'FTP' => 'FTP',
|
'FTP' => 'FTP',
|
||||||
'Far' => 'Weit',
|
'Far' => 'Weit',
|
||||||
'FastForward' => 'Schnell vorwärts',
|
'FastForward' => 'Schnell vorwärts',
|
||||||
'Feed' => 'Eingabe',
|
'Feed' => 'Eingabe',
|
||||||
'Ffmpeg' => 'Ffmpeg', // Added - 2009-02-08
|
'Ffmpeg' => 'Ffmpeg', // Added - 2009-02-08
|
||||||
'File' => 'Datei',
|
'File' => 'Datei',
|
||||||
'Filter' => 'Filter', // Added - 2015-04-18
|
'Filter' => 'Filter', // Added - 2015-04-18
|
||||||
'FilterArchiveEvents' => 'Archivierung aller Treffer',
|
'FilterArchiveEvents' => 'Archivierung aller Treffer',
|
||||||
'FilterDeleteEvents' => 'Löschen aller Treffer',
|
'FilterDeleteEvents' => 'Löschen aller Treffer',
|
||||||
'FilterEmailEvents' => 'Detaillierte E-Mail zu allen Treffern',
|
'FilterEmailEvents' => 'Detaillierte E-Mail zu allen Treffern',
|
||||||
'FilterExecuteEvents' => 'Ausführen bei allen Treffern',
|
'FilterExecuteEvents' => 'Ausführen bei allen Treffern',
|
||||||
'FilterLog' => 'Log filtern', // Added - 2015-04-18
|
'FilterLog' => 'Log filtern', // Added - 2015-04-18
|
||||||
'FilterMessageEvents' => 'Detaillierte Nachricht zu allen Treffern',
|
'FilterMessageEvents' => 'Detaillierte Nachricht zu allen Treffern',
|
||||||
'FilterPx' => 'Filter-Pixel',
|
'FilterPx' => 'Filter-Pixel',
|
||||||
'FilterUnset' => 'Sie müssen eine Breite und Höhe für das Filter angeben',
|
'FilterUnset' => 'Sie müssen eine Breite und Höhe für das Filter angeben',
|
||||||
'FilterUploadEvents' => 'Hochladen aller Treffer',
|
'FilterUploadEvents' => 'Hochladen aller Treffer',
|
||||||
'FilterVideoEvents' => 'Video für alle Treffer erstellen',
|
'FilterVideoEvents' => 'Video für alle Treffer erstellen',
|
||||||
'Filters' => 'Filter',
|
'Filters' => 'Filter',
|
||||||
'First' => 'Erstes',
|
'First' => 'Erstes',
|
||||||
'FlippedHori' => 'Horizontal gespiegelt',
|
'FlippedHori' => 'Horizontal gespiegelt',
|
||||||
|
@ -350,7 +350,7 @@ $SLANG = array(
|
||||||
'Frames' => 'Bilder',
|
'Frames' => 'Bilder',
|
||||||
'Func' => 'Fkt.',
|
'Func' => 'Fkt.',
|
||||||
'Function' => 'Funktion',
|
'Function' => 'Funktion',
|
||||||
'Gain' => 'Verstärkung',
|
'Gain' => 'Verstärkung',
|
||||||
'General' => 'Allgemeines',
|
'General' => 'Allgemeines',
|
||||||
'GenerateVideo' => 'Erzeuge Video',
|
'GenerateVideo' => 'Erzeuge Video',
|
||||||
'GeneratingVideo' => 'Erzeuge Video...',
|
'GeneratingVideo' => 'Erzeuge Video...',
|
||||||
|
@ -359,7 +359,7 @@ $SLANG = array(
|
||||||
'Group' => 'Gruppe',
|
'Group' => 'Gruppe',
|
||||||
'Groups' => 'Gruppen',
|
'Groups' => 'Gruppen',
|
||||||
'HasFocusSpeed' => 'Hat Fokus-Geschwindigkeit',
|
'HasFocusSpeed' => 'Hat Fokus-Geschwindigkeit',
|
||||||
'HasGainSpeed' => 'Hat Verstärkungs-Geschwindigkeit',
|
'HasGainSpeed' => 'Hat Verstärkungs-Geschwindigkeit',
|
||||||
'HasHomePreset' => 'Hat Standardvoreinstellungen',
|
'HasHomePreset' => 'Hat Standardvoreinstellungen',
|
||||||
'HasIrisSpeed' => 'Hat Blendengeschwindigkeit',
|
'HasIrisSpeed' => 'Hat Blendengeschwindigkeit',
|
||||||
'HasPanSpeed' => 'Hat Pan-Geschwindigkeit',
|
'HasPanSpeed' => 'Hat Pan-Geschwindigkeit',
|
||||||
|
@ -367,7 +367,7 @@ $SLANG = array(
|
||||||
'HasTiltSpeed' => 'Hat Neigungsgeschwindigkeit',
|
'HasTiltSpeed' => 'Hat Neigungsgeschwindigkeit',
|
||||||
'HasTurboPan' => 'Hat Turbo-Pan',
|
'HasTurboPan' => 'Hat Turbo-Pan',
|
||||||
'HasTurboTilt' => 'Hat Turbo-Neigung',
|
'HasTurboTilt' => 'Hat Turbo-Neigung',
|
||||||
'HasWhiteSpeed' => 'Hat Weiß-Abgleichgeschwindigkeit',
|
'HasWhiteSpeed' => 'Hat Weiß-Abgleichgeschwindigkeit',
|
||||||
'HasZoomSpeed' => 'Hat Zoom-Geschwindigkeit',
|
'HasZoomSpeed' => 'Hat Zoom-Geschwindigkeit',
|
||||||
'High' => 'hohe',
|
'High' => 'hohe',
|
||||||
'HighBW' => 'Hohe B/W',
|
'HighBW' => 'Hohe B/W',
|
||||||
|
@ -378,13 +378,13 @@ $SLANG = array(
|
||||||
'Idle' => 'Leerlauf',
|
'Idle' => 'Leerlauf',
|
||||||
'Ignore' => 'Ignoriere',
|
'Ignore' => 'Ignoriere',
|
||||||
'Image' => 'Bild',
|
'Image' => 'Bild',
|
||||||
'ImageBufferSize' => 'Bildpuffergröße',
|
'ImageBufferSize' => 'Bildpuffergröße',
|
||||||
'Images' => 'Bilder',
|
'Images' => 'Bilder',
|
||||||
'In' => 'In',
|
'In' => 'In',
|
||||||
'Include' => 'Einschluss',
|
'Include' => 'Einschluss',
|
||||||
'Inverted' => 'Invertiert',
|
'Inverted' => 'Invertiert',
|
||||||
'Iris' => 'Blende',
|
'Iris' => 'Blende',
|
||||||
'KeyString' => 'Schlüsselwort',
|
'KeyString' => 'Schlüsselwort',
|
||||||
'Label' => 'Bezeichnung',
|
'Label' => 'Bezeichnung',
|
||||||
'Language' => 'Sprache',
|
'Language' => 'Sprache',
|
||||||
'Last' => 'Letztes',
|
'Last' => 'Letztes',
|
||||||
|
@ -417,9 +417,9 @@ $SLANG = array(
|
||||||
'MaxFocusRange' => 'Maximaler Fokusbereich',
|
'MaxFocusRange' => 'Maximaler Fokusbereich',
|
||||||
'MaxFocusSpeed' => 'Maximale Fokusgeschwindigkeit',
|
'MaxFocusSpeed' => 'Maximale Fokusgeschwindigkeit',
|
||||||
'MaxFocusStep' => 'Maximale Fokusstufe',
|
'MaxFocusStep' => 'Maximale Fokusstufe',
|
||||||
'MaxGainRange' => 'Maximaler Verstärkungsbereich',
|
'MaxGainRange' => 'Maximaler Verstärkungsbereich',
|
||||||
'MaxGainSpeed' => 'Maximale Verstärkungsgeschwindigkeit',
|
'MaxGainSpeed' => 'Maximale Verstärkungsgeschwindigkeit',
|
||||||
'MaxGainStep' => 'Maximale Verstärkungsstufe',
|
'MaxGainStep' => 'Maximale Verstärkungsstufe',
|
||||||
'MaxIrisRange' => 'Maximaler Blendenbereich',
|
'MaxIrisRange' => 'Maximaler Blendenbereich',
|
||||||
'MaxIrisSpeed' => 'Maximale Blendengeschwindigkeit',
|
'MaxIrisSpeed' => 'Maximale Blendengeschwindigkeit',
|
||||||
'MaxIrisStep' => 'Maximale Blendenstufe',
|
'MaxIrisStep' => 'Maximale Blendenstufe',
|
||||||
|
@ -429,9 +429,9 @@ $SLANG = array(
|
||||||
'MaxTiltRange' => 'Maximaler Neig.-Bereich',
|
'MaxTiltRange' => 'Maximaler Neig.-Bereich',
|
||||||
'MaxTiltSpeed' => 'Maximale Neig.-Geschw.',
|
'MaxTiltSpeed' => 'Maximale Neig.-Geschw.',
|
||||||
'MaxTiltStep' => 'Maximale Neig.-Stufe',
|
'MaxTiltStep' => 'Maximale Neig.-Stufe',
|
||||||
'MaxWhiteRange' => 'Maximaler Weiß-Abgl.bereich',
|
'MaxWhiteRange' => 'Maximaler Weiß-Abgl.bereich',
|
||||||
'MaxWhiteSpeed' => 'Maximale Weiß-Abgl.geschw.',
|
'MaxWhiteSpeed' => 'Maximale Weiß-Abgl.geschw.',
|
||||||
'MaxWhiteStep' => 'Maximale Weiß-Abgl.stufe',
|
'MaxWhiteStep' => 'Maximale Weiß-Abgl.stufe',
|
||||||
'MaxZoomRange' => 'Maximaler Zoom-Bereich',
|
'MaxZoomRange' => 'Maximaler Zoom-Bereich',
|
||||||
'MaxZoomSpeed' => 'Maximale Zoom-Geschw.',
|
'MaxZoomSpeed' => 'Maximale Zoom-Geschw.',
|
||||||
'MaxZoomStep' => 'Maximale Zoom-Stufe',
|
'MaxZoomStep' => 'Maximale Zoom-Stufe',
|
||||||
|
@ -440,21 +440,21 @@ $SLANG = array(
|
||||||
'MediumBW' => 'Mittlere B/W',
|
'MediumBW' => 'Mittlere B/W',
|
||||||
'Message' => 'Nachricht', // Added - 2011-06-16
|
'Message' => 'Nachricht', // Added - 2011-06-16
|
||||||
'MinAlarmAreaLtMax' => 'Der minimale Alarmbereich sollte kleiner sein als der maximale',
|
'MinAlarmAreaLtMax' => 'Der minimale Alarmbereich sollte kleiner sein als der maximale',
|
||||||
'MinAlarmAreaUnset' => 'Sie müssen einen Minimumwert an Alarmflächenpixeln angeben',
|
'MinAlarmAreaUnset' => 'Sie müssen einen Minimumwert an Alarmflächenpixeln angeben',
|
||||||
'MinBlobAreaLtMax' => 'Die minimale Blob-Fläche muss kleiner sein als die maximale',
|
'MinBlobAreaLtMax' => 'Die minimale Blob-Fläche muss kleiner sein als die maximale',
|
||||||
'MinBlobAreaUnset' => 'Sie müssen einen Minimumwert an Blobflächenpixeln angeben',
|
'MinBlobAreaUnset' => 'Sie müssen einen Minimumwert an Blobflächenpixeln angeben',
|
||||||
'MinBlobLtMinFilter' => 'Die minimale Blob-Fläche sollte kleiner oder gleich der minimalen Filterfläche sein',
|
'MinBlobLtMinFilter' => 'Die minimale Blob-Fläche sollte kleiner oder gleich der minimalen Filterfläche sein',
|
||||||
'MinBlobsLtMax' => 'Die minimalen Blobs müssen kleiner sein als die maximalen',
|
'MinBlobsLtMax' => 'Die minimalen Blobs müssen kleiner sein als die maximalen',
|
||||||
'MinBlobsUnset' => 'Sie müssen einen Minimumwert an Blobs angeben',
|
'MinBlobsUnset' => 'Sie müssen einen Minimumwert an Blobs angeben',
|
||||||
'MinFilterAreaLtMax' => 'Die minimale Filterfläche sollte kleiner sein als die maximale',
|
'MinFilterAreaLtMax' => 'Die minimale Filterfläche sollte kleiner sein als die maximale',
|
||||||
'MinFilterAreaUnset' => 'Sie müssen einen Minimumwert an Filterpixeln angeben',
|
'MinFilterAreaUnset' => 'Sie müssen einen Minimumwert an Filterpixeln angeben',
|
||||||
'MinFilterLtMinAlarm' => 'Die minimale Filterfläche sollte kleiner oder gleich der minimalen Alarmfläche sein',
|
'MinFilterLtMinAlarm' => 'Die minimale Filterfläche sollte kleiner oder gleich der minimalen Alarmfläche sein',
|
||||||
'MinFocusRange' => 'Min. Fokusbereich',
|
'MinFocusRange' => 'Min. Fokusbereich',
|
||||||
'MinFocusSpeed' => 'Min. Fokusgeschw.',
|
'MinFocusSpeed' => 'Min. Fokusgeschw.',
|
||||||
'MinFocusStep' => 'Min. Fokusstufe',
|
'MinFocusStep' => 'Min. Fokusstufe',
|
||||||
'MinGainRange' => 'Min. Verstärkungsbereich',
|
'MinGainRange' => 'Min. Verstärkungsbereich',
|
||||||
'MinGainSpeed' => 'Min. Verstärkungsgeschwindigkeit',
|
'MinGainSpeed' => 'Min. Verstärkungsgeschwindigkeit',
|
||||||
'MinGainStep' => 'Min. Verstärkungsstufe',
|
'MinGainStep' => 'Min. Verstärkungsstufe',
|
||||||
'MinIrisRange' => 'Min. Blendenbereich',
|
'MinIrisRange' => 'Min. Blendenbereich',
|
||||||
'MinIrisSpeed' => 'Min. Blendengeschwindigkeit',
|
'MinIrisSpeed' => 'Min. Blendengeschwindigkeit',
|
||||||
'MinIrisStep' => 'Min. Blendenstufe',
|
'MinIrisStep' => 'Min. Blendenstufe',
|
||||||
|
@ -462,13 +462,13 @@ $SLANG = array(
|
||||||
'MinPanSpeed' => 'Min. Pan-Geschwindigkeit',
|
'MinPanSpeed' => 'Min. Pan-Geschwindigkeit',
|
||||||
'MinPanStep' => 'Min. Pan-Stufe',
|
'MinPanStep' => 'Min. Pan-Stufe',
|
||||||
'MinPixelThresLtMax' => 'Der minimale Pixelschwellwert muss kleiner sein als der maximale',
|
'MinPixelThresLtMax' => 'Der minimale Pixelschwellwert muss kleiner sein als der maximale',
|
||||||
'MinPixelThresUnset' => 'Sie müssen einen minimalen Pixel-Schwellenwert angeben',
|
'MinPixelThresUnset' => 'Sie müssen einen minimalen Pixel-Schwellenwert angeben',
|
||||||
'MinTiltRange' => 'Min. Neigungsbereich',
|
'MinTiltRange' => 'Min. Neigungsbereich',
|
||||||
'MinTiltSpeed' => 'Min. Neigungsgeschwindigkeit',
|
'MinTiltSpeed' => 'Min. Neigungsgeschwindigkeit',
|
||||||
'MinTiltStep' => 'Min. Neigungsstufe',
|
'MinTiltStep' => 'Min. Neigungsstufe',
|
||||||
'MinWhiteRange' => 'Min. Weiß-Abgleichbereich',
|
'MinWhiteRange' => 'Min. Weiß-Abgleichbereich',
|
||||||
'MinWhiteSpeed' => 'Min. Weiß-Abgleichgeschwindigkeit',
|
'MinWhiteSpeed' => 'Min. Weiß-Abgleichgeschwindigkeit',
|
||||||
'MinWhiteStep' => 'Min. Weiß-Abgleichstufe',
|
'MinWhiteStep' => 'Min. Weiß-Abgleichstufe',
|
||||||
'MinZoomRange' => 'Min. Zoom-Bereich',
|
'MinZoomRange' => 'Min. Zoom-Bereich',
|
||||||
'MinZoomSpeed' => 'Min. Zoom-Geschwindigkeit',
|
'MinZoomSpeed' => 'Min. Zoom-Geschwindigkeit',
|
||||||
'MinZoomStep' => 'Min. Zoom-Stufe',
|
'MinZoomStep' => 'Min. Zoom-Stufe',
|
||||||
|
@ -477,9 +477,9 @@ $SLANG = array(
|
||||||
'Monitor' => 'Monitor',
|
'Monitor' => 'Monitor',
|
||||||
'MonitorIds' => 'Monitor-ID',
|
'MonitorIds' => 'Monitor-ID',
|
||||||
'MonitorPreset' => 'Monitor-Voreinstellung',
|
'MonitorPreset' => 'Monitor-Voreinstellung',
|
||||||
'MonitorPresetIntro' => 'Wählen Sie eine geeignete Voreinstellung aus der folgenden Liste.<br><br>Bitte beachten Sie, dass dies mögliche Einstellungen von Ihnen am Monitor überschreiben kann.<br><br>',
|
'MonitorPresetIntro' => 'Wählen Sie eine geeignete Voreinstellung aus der folgenden Liste.<br><br>Bitte beachten Sie, dass dies mögliche Einstellungen von Ihnen am Monitor überschreiben kann.<br><br>',
|
||||||
'MonitorProbe' => 'Kamera suche', // Added - 2009-03-31
|
'MonitorProbe' => 'Kamera suche', // Added - 2009-03-31
|
||||||
'MonitorProbeIntro' => 'Die nachfolgende Liste zeigt erkannte Analog- und Netzwerkkameras, ob sie bereits genutzt werden und ob sie zur Auswahl verfügbar sind.<br/><br/>Wähle den gewünschten Eintrag aus der folgenden Liste.<br/><br/>Bitte Beachten: Nicht alle Kameras können erkannt werden. Die Auswahl einer Kamera kann bereits eingetragene Werte im aktuellen Monitor überschreiben.<br/><br/>', // Added - 2009-03-31
|
'MonitorProbeIntro' => 'Die nachfolgende Liste zeigt erkannte Analog- und Netzwerkkameras, ob sie bereits genutzt werden und ob sie zur Auswahl verfügbar sind.<br/><br/>Wähle den gewünschten Eintrag aus der folgenden Liste.<br/><br/>Bitte Beachten: Nicht alle Kameras können erkannt werden. Die Auswahl einer Kamera kann bereits eingetragene Werte im aktuellen Monitor überschreiben.<br/><br/>', // Added - 2009-03-31
|
||||||
'Monitors' => 'Monitore',
|
'Monitors' => 'Monitore',
|
||||||
'Montage' => 'Montage',
|
'Montage' => 'Montage',
|
||||||
'Month' => 'Monat',
|
'Month' => 'Monat',
|
||||||
|
@ -491,11 +491,11 @@ $SLANG = array(
|
||||||
'Mtg3widgrx' => '3 Spalten, skaliert, vergr. bei Alarm', // Added 2013.08.15.
|
'Mtg3widgrx' => '3 Spalten, skaliert, vergr. bei Alarm', // Added 2013.08.15.
|
||||||
'Mtg4widgrd' => '4 Spalten', // Added 2013.08.15.
|
'Mtg4widgrd' => '4 Spalten', // Added 2013.08.15.
|
||||||
'MtgDefault' => 'Standard', // Added 2013.08.15.
|
'MtgDefault' => 'Standard', // Added 2013.08.15.
|
||||||
'MustBeGe' => 'muss größer oder gleich sein wie',
|
'MustBeGe' => 'muss größer oder gleich sein wie',
|
||||||
'MustBeLe' => 'muss kleiner oder gleich sein wie',
|
'MustBeLe' => 'muss kleiner oder gleich sein wie',
|
||||||
'MustConfirmPassword' => 'Sie müssen das Passwort bestätigen.',
|
'MustConfirmPassword' => 'Sie müssen das Passwort bestätigen.',
|
||||||
'MustSupplyPassword' => 'Sie müssen ein Passwort vergeben.',
|
'MustSupplyPassword' => 'Sie müssen ein Passwort vergeben.',
|
||||||
'MustSupplyUsername' => 'Sie müssen einen Usernamen vergeben.',
|
'MustSupplyUsername' => 'Sie müssen einen Usernamen vergeben.',
|
||||||
'Name' => 'Name',
|
'Name' => 'Name',
|
||||||
'Near' => 'Nah',
|
'Near' => 'Nah',
|
||||||
'Network' => 'Netzwerk',
|
'Network' => 'Netzwerk',
|
||||||
|
@ -505,23 +505,23 @@ $SLANG = array(
|
||||||
'NewPassword' => 'Neues Passwort',
|
'NewPassword' => 'Neues Passwort',
|
||||||
'NewState' => 'Neuer Status',
|
'NewState' => 'Neuer Status',
|
||||||
'NewUser' => 'Neuer Benutzer',
|
'NewUser' => 'Neuer Benutzer',
|
||||||
'Next' => 'Nächstes',
|
'Next' => 'Nächstes',
|
||||||
'No' => 'Nein',
|
'No' => 'Nein',
|
||||||
'NoDetectedCameras' => 'Keine Kameras erkannt', // Added - 2009-03-31
|
'NoDetectedCameras' => 'Keine Kameras erkannt', // Added - 2009-03-31
|
||||||
'NoFramesRecorded' => 'Es gibt keine Aufnahmen von diesem Ereignis.',
|
'NoFramesRecorded' => 'Es gibt keine Aufnahmen von diesem Ereignis.',
|
||||||
'NoGroup' => 'Keine Gruppe',
|
'NoGroup' => 'Keine Gruppe',
|
||||||
'NoSavedFilters' => 'Keine gespeicherten Filter',
|
'NoSavedFilters' => 'Keine gespeicherten Filter',
|
||||||
'NoStatisticsRecorded' => 'Keine Statistik für dieses Ereignis/diese Bilder',
|
'NoStatisticsRecorded' => 'Keine Statistik für dieses Ereignis/diese Bilder',
|
||||||
'None' => 'ohne',
|
'None' => 'ohne',
|
||||||
'NoneAvailable' => 'Nichts verfügbar',
|
'NoneAvailable' => 'Nichts verfügbar',
|
||||||
'Normal' => 'Normal',
|
'Normal' => 'Normal',
|
||||||
'Notes' => 'Bemerkungen',
|
'Notes' => 'Bemerkungen',
|
||||||
'NumPresets' => 'Nummerierte Voreinstellungen',
|
'NumPresets' => 'Nummerierte Voreinstellungen',
|
||||||
'Off' => 'Aus',
|
'Off' => 'Aus',
|
||||||
'On' => 'An',
|
'On' => 'An',
|
||||||
'OnvifCredentialsIntro'=> 'Bitte den Benutzernamen und das Passwort für die gewählte Kamera eintragen.<br/>Der hier eingetragene Benutzer wird erstellt mitsamt des Passworts, falls kein Benutzer für diese Kamera erstellt wurde.<br/><br/>', // Added - 2015-04-18
|
'OnvifCredentialsIntro'=> 'Bitte den Benutzernamen und das Passwort für die gewählte Kamera eintragen.<br/>Der hier eingetragene Benutzer wird erstellt mitsamt des Passworts, falls kein Benutzer für diese Kamera erstellt wurde.<br/><br/>', // Added - 2015-04-18
|
||||||
'OnvifProbe' => 'ONVIF', // Added - 2015-04-18
|
'OnvifProbe' => 'ONVIF', // Added - 2015-04-18
|
||||||
'OnvifProbeIntro' => 'Die folgende Liste zeigt erkannte ONVIF Kameras, ob sie bereits genutzt werden und ob sie zur Auswahl verfügbar sind.<br/><br/>Wähle den gewünschten Eintrag aus der folgenden Liste.<br/><br/>Bitte Beachten: Nicht alle Kameras können erkannt werden. Die Auswahl einer Kamera kann bereits eingetragene Werte im aktuellen Monitor überschreiben.<br/><br/>', // Added - 2015-04-18
|
'OnvifProbeIntro' => 'Die folgende Liste zeigt erkannte ONVIF Kameras, ob sie bereits genutzt werden und ob sie zur Auswahl verfügbar sind.<br/><br/>Wähle den gewünschten Eintrag aus der folgenden Liste.<br/><br/>Bitte Beachten: Nicht alle Kameras können erkannt werden. Die Auswahl einer Kamera kann bereits eingetragene Werte im aktuellen Monitor überschreiben.<br/><br/>', // Added - 2015-04-18
|
||||||
'OpEq' => 'gleich zu',
|
'OpEq' => 'gleich zu',
|
||||||
'OpGt' => 'groesser als',
|
'OpGt' => 'groesser als',
|
||||||
'OpGtEq' => 'groesser oder gleich wie',
|
'OpGtEq' => 'groesser oder gleich wie',
|
||||||
|
@ -532,15 +532,15 @@ $SLANG = array(
|
||||||
'OpNe' => 'nicht gleich',
|
'OpNe' => 'nicht gleich',
|
||||||
'OpNotIn' => 'nicht im Satz',
|
'OpNotIn' => 'nicht im Satz',
|
||||||
'OpNotMatches' => 'nicht zutreffend',
|
'OpNotMatches' => 'nicht zutreffend',
|
||||||
'Open' => 'öffnen',
|
'Open' => 'öffnen',
|
||||||
'OptionHelp' => 'Hilfe',
|
'OptionHelp' => 'Hilfe',
|
||||||
'OptionRestartWarning' => 'Veränderungen werden erst nach einem Neustart des Programms aktiv.\nFür eine sofortige änderung starten Sie das Programm bitte neu.',
|
'OptionRestartWarning' => 'Veränderungen werden erst nach einem Neustart des Programms aktiv.\nFür eine sofortige änderung starten Sie das Programm bitte neu.',
|
||||||
'Options' => 'Optionen',
|
'Options' => 'Optionen',
|
||||||
'OrEnterNewName' => 'oder neuen Namen eingeben',
|
'OrEnterNewName' => 'oder neuen Namen eingeben',
|
||||||
'Order' => 'Reihenfolge',
|
'Order' => 'Reihenfolge',
|
||||||
'Orientation' => 'Ausrichtung',
|
'Orientation' => 'Ausrichtung',
|
||||||
'Out' => 'Aus',
|
'Out' => 'Aus',
|
||||||
'OverwriteExisting' => 'überschreibe bestehende',
|
'OverwriteExisting' => 'überschreibe bestehende',
|
||||||
'Paged' => 'Seitennummeriert',
|
'Paged' => 'Seitennummeriert',
|
||||||
'Pan' => 'Pan',
|
'Pan' => 'Pan',
|
||||||
'PanLeft' => 'Pan-Links',
|
'PanLeft' => 'Pan-Links',
|
||||||
|
@ -548,7 +548,7 @@ $SLANG = array(
|
||||||
'PanTilt' => 'Pan/Neigung',
|
'PanTilt' => 'Pan/Neigung',
|
||||||
'Parameter' => 'Parameter',
|
'Parameter' => 'Parameter',
|
||||||
'Password' => 'Passwort',
|
'Password' => 'Passwort',
|
||||||
'PasswordsDifferent' => 'Die Passwörter sind unterschiedlich',
|
'PasswordsDifferent' => 'Die Passwörter sind unterschiedlich',
|
||||||
'Paths' => 'Pfade',
|
'Paths' => 'Pfade',
|
||||||
'Pause' => 'Pause',
|
'Pause' => 'Pause',
|
||||||
'Phone' => 'Telefon',
|
'Phone' => 'Telefon',
|
||||||
|
@ -563,13 +563,13 @@ $SLANG = array(
|
||||||
'Point' => 'Punkt',
|
'Point' => 'Punkt',
|
||||||
'PostEventImageBuffer' => 'Nachereignispuffer',
|
'PostEventImageBuffer' => 'Nachereignispuffer',
|
||||||
'PreEventImageBuffer' => 'Vorereignispuffer',
|
'PreEventImageBuffer' => 'Vorereignispuffer',
|
||||||
'PreserveAspect' => 'Seitenverhältnis beibehalten',
|
'PreserveAspect' => 'Seitenverhältnis beibehalten',
|
||||||
'Preset' => 'Voreinstellung',
|
'Preset' => 'Voreinstellung',
|
||||||
'Presets' => 'Voreinstellungen',
|
'Presets' => 'Voreinstellungen',
|
||||||
'Prev' => 'Vorheriges',
|
'Prev' => 'Vorheriges',
|
||||||
'Probe' => 'Suchen', // Added - 2009-03-31
|
'Probe' => 'Suchen', // Added - 2009-03-31
|
||||||
'ProfileProbe' => 'Streamsonde', // Added - 2015-04-18
|
'ProfileProbe' => 'Streamsonde', // Added - 2015-04-18
|
||||||
'ProfileProbeIntro' => 'Die folgende Liste zeigt die verfügbaren Streamingprofile der ausgewählten Kamera.<br/><br/>Wähle den gewünschten Eintrag aus der folgenden Liste.<br/><br/>Bitte Beachten: Zoneminder kann keine zusätzlichen Profile konfigurieren. Die Auswahl einer Kamera kann bereits eingetragene Werte im aktuellen Monitor überschreiben.<br/><br/>', // Added - 2015-04-18
|
'ProfileProbeIntro' => 'Die folgende Liste zeigt die verfügbaren Streamingprofile der ausgewählten Kamera.<br/><br/>Wähle den gewünschten Eintrag aus der folgenden Liste.<br/><br/>Bitte Beachten: Zoneminder kann keine zusätzlichen Profile konfigurieren. Die Auswahl einer Kamera kann bereits eingetragene Werte im aktuellen Monitor überschreiben.<br/><br/>', // Added - 2015-04-18
|
||||||
'Progress' => 'Fortschritt', // Added - 2015-04-18
|
'Progress' => 'Fortschritt', // Added - 2015-04-18
|
||||||
'Protocol' => 'Protokoll',
|
'Protocol' => 'Protokoll',
|
||||||
'Rate' => 'Abspielgeschwindigkeit',
|
'Rate' => 'Abspielgeschwindigkeit',
|
||||||
|
@ -588,20 +588,20 @@ $SLANG = array(
|
||||||
'Rename' => 'Umbenennen',
|
'Rename' => 'Umbenennen',
|
||||||
'Replay' => 'Wiederholung',
|
'Replay' => 'Wiederholung',
|
||||||
'ReplayAll' => 'Alle Ereignisse',
|
'ReplayAll' => 'Alle Ereignisse',
|
||||||
'ReplayGapless' => 'Lückenlose Ereignisse',
|
'ReplayGapless' => 'Lückenlose Ereignisse',
|
||||||
'ReplaySingle' => 'Einzelereignis',
|
'ReplaySingle' => 'Einzelereignis',
|
||||||
'Reset' => 'Zurücksetzen',
|
'Reset' => 'Zurücksetzen',
|
||||||
'ResetEventCounts' => 'Lösche Ereignispunktzahl',
|
'ResetEventCounts' => 'Lösche Ereignispunktzahl',
|
||||||
'Restart' => 'Neustart',
|
'Restart' => 'Neustart',
|
||||||
'Restarting' => 'Neustarten',
|
'Restarting' => 'Neustarten',
|
||||||
'RestrictedCameraIds' => 'Verbotene Kamera-ID',
|
'RestrictedCameraIds' => 'Verbotene Kamera-ID',
|
||||||
'RestrictedMonitors' => 'Eingeschränkte Monitore',
|
'RestrictedMonitors' => 'Eingeschränkte Monitore',
|
||||||
'ReturnDelay' => 'Rückkehr-Verzögerung',
|
'ReturnDelay' => 'Rückkehr-Verzögerung',
|
||||||
'ReturnLocation' => 'Rückkehrpunkt',
|
'ReturnLocation' => 'Rückkehrpunkt',
|
||||||
'Rewind' => 'Zurückspulen',
|
'Rewind' => 'Zurückspulen',
|
||||||
'RotateLeft' => 'Drehung links',
|
'RotateLeft' => 'Drehung links',
|
||||||
'RotateRight' => 'Drehung rechts',
|
'RotateRight' => 'Drehung rechts',
|
||||||
'RunLocalUpdate' => 'Für Update "zmupdate.pl" ausführen', // Added - 2011-05-25
|
'RunLocalUpdate' => 'Für Update "zmupdate.pl" ausführen', // Added - 2011-05-25
|
||||||
'RunMode' => 'Betriebsmodus',
|
'RunMode' => 'Betriebsmodus',
|
||||||
'RunState' => 'Laufender Status',
|
'RunState' => 'Laufender Status',
|
||||||
'Running' => 'In Betrieb',
|
'Running' => 'In Betrieb',
|
||||||
|
@ -611,12 +611,12 @@ $SLANG = array(
|
||||||
'Scale' => 'Skalierung',
|
'Scale' => 'Skalierung',
|
||||||
'Score' => 'Punktzahl',
|
'Score' => 'Punktzahl',
|
||||||
'Secs' => 'Sekunden',
|
'Secs' => 'Sekunden',
|
||||||
'Sectionlength' => 'Sektionslänge',
|
'Sectionlength' => 'Sektionslänge',
|
||||||
'Select' => 'Auswahl',
|
'Select' => 'Auswahl',
|
||||||
'SelectFormat' => 'Format auswählen', // Added - 2011-06-17
|
'SelectFormat' => 'Format auswählen', // Added - 2011-06-17
|
||||||
'SelectLog' => 'Log auswählen', // Added - 2011-06-17
|
'SelectLog' => 'Log auswählen', // Added - 2011-06-17
|
||||||
'SelectMonitors' => 'Wähle Monitore',
|
'SelectMonitors' => 'Wähle Monitore',
|
||||||
'SelfIntersecting' => 'Die Polygonränder dürfen sich nicht überschneiden.',
|
'SelfIntersecting' => 'Die Polygonränder dürfen sich nicht überschneiden.',
|
||||||
'Set' => 'Setze',
|
'Set' => 'Setze',
|
||||||
'SetNewBandwidth' => 'Setze neue Bandbreite',
|
'SetNewBandwidth' => 'Setze neue Bandbreite',
|
||||||
'SetPreset' => 'Setze Voreinstellung',
|
'SetPreset' => 'Setze Voreinstellung',
|
||||||
|
@ -624,8 +624,8 @@ $SLANG = array(
|
||||||
'ShowFilterWindow' => 'Zeige Filterfenster',
|
'ShowFilterWindow' => 'Zeige Filterfenster',
|
||||||
'ShowTimeline' => 'Zeige Zeitlinie',
|
'ShowTimeline' => 'Zeige Zeitlinie',
|
||||||
'SignalCheckColour' => 'Farbe des Signalchecks',
|
'SignalCheckColour' => 'Farbe des Signalchecks',
|
||||||
'Size' => 'Größe',
|
'Size' => 'Größe',
|
||||||
'SkinDescription' => 'Wähle den standard Skin für diesen Computer.', // Added - 2011-01-30
|
'SkinDescription' => 'Wähle den standard Skin für diesen Computer.', // Added - 2011-01-30
|
||||||
'Sleep' => 'Schlaf',
|
'Sleep' => 'Schlaf',
|
||||||
'SortAsc' => 'aufsteigend',
|
'SortAsc' => 'aufsteigend',
|
||||||
'SortBy' => 'Sortieren nach',
|
'SortBy' => 'Sortieren nach',
|
||||||
|
@ -644,9 +644,9 @@ $SLANG = array(
|
||||||
'Stats' => 'Statistik',
|
'Stats' => 'Statistik',
|
||||||
'Status' => 'Status',
|
'Status' => 'Status',
|
||||||
'Step' => 'Stufe',
|
'Step' => 'Stufe',
|
||||||
'StepBack' => 'Einen Schritt rückwärts',
|
'StepBack' => 'Einen Schritt rückwärts',
|
||||||
'StepForward' => 'Einen Schritt vorwärts',
|
'StepForward' => 'Einen Schritt vorwärts',
|
||||||
'StepLarge' => 'Großer Schritt',
|
'StepLarge' => 'Großer Schritt',
|
||||||
'StepMedium' => 'Mittlere Schhritt',
|
'StepMedium' => 'Mittlere Schhritt',
|
||||||
'StepNone' => 'Keine Schritt',
|
'StepNone' => 'Keine Schritt',
|
||||||
'StepSmall' => 'Kleiner Schritt',
|
'StepSmall' => 'Kleiner Schritt',
|
||||||
|
@ -666,10 +666,10 @@ $SLANG = array(
|
||||||
'TimeDelta' => 'Zeitdifferenz',
|
'TimeDelta' => 'Zeitdifferenz',
|
||||||
'TimeStamp' => 'Zeitstempel',
|
'TimeStamp' => 'Zeitstempel',
|
||||||
'Timeline' => 'Zeitlinie',
|
'Timeline' => 'Zeitlinie',
|
||||||
'TimelineTip1' => 'Fahren Sie mit der Maus über die Grafik, um eine Momentaufnahme der Bild- und Ereignisdetails zusehen.', // Added 2013.08.15.
|
'TimelineTip1' => 'Fahren Sie mit der Maus über die Grafik, um eine Momentaufnahme der Bild- und Ereignisdetails zusehen.', // Added 2013.08.15.
|
||||||
'TimelineTip2' => 'Klicken Sie auf den farbig markierten Bereichen der Grafik oder das Bild, um das Ereignis zu sehen.', // Added 2013.08.15.
|
'TimelineTip2' => 'Klicken Sie auf den farbig markierten Bereichen der Grafik oder das Bild, um das Ereignis zu sehen.', // Added 2013.08.15.
|
||||||
'TimelineTip3' => 'Klicken Sie auf den Hintergrund, um in einen kleineren Zeitraum zu vergrößern.', // Added 2013.08.15.
|
'TimelineTip3' => 'Klicken Sie auf den Hintergrund, um in einen kleineren Zeitraum zu vergrößern.', // Added 2013.08.15.
|
||||||
'TimelineTip4' => 'Verwenden Sie die Steuerelemente unten, um zu Zoomen oder navigieren Sie vorwärts und rückwärts durch die Zeit.', // Added 2013.08.15.
|
'TimelineTip4' => 'Verwenden Sie die Steuerelemente unten, um zu Zoomen oder navigieren Sie vorwärts und rückwärts durch die Zeit.', // Added 2013.08.15.
|
||||||
'Timestamp' => 'Zeitstempel',
|
'Timestamp' => 'Zeitstempel',
|
||||||
'TimestampLabelFormat' => 'Format des Zeitstempels',
|
'TimestampLabelFormat' => 'Format des Zeitstempels',
|
||||||
'TimestampLabelX' => 'Zeitstempel-X',
|
'TimestampLabelX' => 'Zeitstempel-X',
|
||||||
|
@ -678,9 +678,9 @@ $SLANG = array(
|
||||||
'Tools' => 'Werkzeuge',
|
'Tools' => 'Werkzeuge',
|
||||||
'Total' => 'Total', // Added - 2011-06-16
|
'Total' => 'Total', // Added - 2011-06-16
|
||||||
'TotalBrScore' => 'Totale<br/>Punktzahl',
|
'TotalBrScore' => 'Totale<br/>Punktzahl',
|
||||||
'TrackDelay' => 'Nachführungsverzögerung',
|
'TrackDelay' => 'Nachführungsverzögerung',
|
||||||
'TrackMotion' => 'Bewegungs-Nachführung',
|
'TrackMotion' => 'Bewegungs-Nachführung',
|
||||||
'Triggers' => 'Auslöser',
|
'Triggers' => 'Auslöser',
|
||||||
'TurboPanSpeed' => 'Turbo-Pan-Geschwindigkeit',
|
'TurboPanSpeed' => 'Turbo-Pan-Geschwindigkeit',
|
||||||
'TurboTiltSpeed' => 'Turbo-Neigungsgeschwindigkeit',
|
'TurboTiltSpeed' => 'Turbo-Neigungsgeschwindigkeit',
|
||||||
'Type' => 'Typ',
|
'Type' => 'Typ',
|
||||||
|
@ -689,12 +689,12 @@ $SLANG = array(
|
||||||
'Units' => 'Einheiten',
|
'Units' => 'Einheiten',
|
||||||
'Unknown' => 'Unbekannt',
|
'Unknown' => 'Unbekannt',
|
||||||
'Update' => 'Aktualisieren',
|
'Update' => 'Aktualisieren',
|
||||||
'UpdateAvailable' => 'Eine Aktualisierung für ZoneMinder ist verfügbar.',
|
'UpdateAvailable' => 'Eine Aktualisierung für ZoneMinder ist verfügbar.',
|
||||||
'UpdateNotNecessary' => 'Es ist keine Aktualisierung verfügbar.',
|
'UpdateNotNecessary' => 'Es ist keine Aktualisierung verfügbar.',
|
||||||
'Updated' => 'Aktualisiert', // Added - 2011-06-16
|
'Updated' => 'Aktualisiert', // Added - 2011-06-16
|
||||||
'Upload' => 'Hochladen', // Added - 2011-08-23
|
'Upload' => 'Hochladen', // Added - 2011-08-23
|
||||||
'UseFilter' => 'Benutze Filter',
|
'UseFilter' => 'Benutze Filter',
|
||||||
'UseFilterExprsPost' => ' Filter Ausdrücke', // This is used at the end of the phrase 'use N filter expressions'
|
'UseFilterExprsPost' => ' Filter Ausdrücke', // This is used at the end of the phrase 'use N filter expressions'
|
||||||
'UseFilterExprsPre' => 'Benutze ', // This is used at the beginning of the phrase 'use N filter expressions'
|
'UseFilterExprsPre' => 'Benutze ', // This is used at the beginning of the phrase 'use N filter expressions'
|
||||||
'UsedPlugins' => 'Used Plugins',
|
'UsedPlugins' => 'Used Plugins',
|
||||||
'User' => 'Benutzer',
|
'User' => 'Benutzer',
|
||||||
|
@ -708,7 +708,7 @@ $SLANG = array(
|
||||||
'VersionIgnore' => 'Ignoriere diese Version',
|
'VersionIgnore' => 'Ignoriere diese Version',
|
||||||
'VersionRemindDay' => 'Erinnere mich wieder in 1 Tag.',
|
'VersionRemindDay' => 'Erinnere mich wieder in 1 Tag.',
|
||||||
'VersionRemindHour' => 'Erinnere mich wieder in 1 Stunde.',
|
'VersionRemindHour' => 'Erinnere mich wieder in 1 Stunde.',
|
||||||
'VersionRemindNever' => 'Informiere mich nicht mehr über neue Versionen.',
|
'VersionRemindNever' => 'Informiere mich nicht mehr über neue Versionen.',
|
||||||
'VersionRemindWeek' => 'Erinnere mich wieder in 1 Woche.',
|
'VersionRemindWeek' => 'Erinnere mich wieder in 1 Woche.',
|
||||||
'Video' => 'Video',
|
'Video' => 'Video',
|
||||||
'VideoFormat' => 'Videoformat',
|
'VideoFormat' => 'Videoformat',
|
||||||
|
@ -717,19 +717,19 @@ $SLANG = array(
|
||||||
'VideoGenNoFiles' => 'Keine Videodateien gefunden.',
|
'VideoGenNoFiles' => 'Keine Videodateien gefunden.',
|
||||||
'VideoGenParms' => 'Parameter der Videoerzeugung',
|
'VideoGenParms' => 'Parameter der Videoerzeugung',
|
||||||
'VideoGenSucceeded' => 'Videoerzeugung erfolgreich!',
|
'VideoGenSucceeded' => 'Videoerzeugung erfolgreich!',
|
||||||
'VideoSize' => 'Videogröße',
|
'VideoSize' => 'Videogröße',
|
||||||
'View' => 'Ansicht',
|
'View' => 'Ansicht',
|
||||||
'ViewAll' => 'Alles ansehen',
|
'ViewAll' => 'Alles ansehen',
|
||||||
'ViewEvent' => 'Zeige Ereignis',
|
'ViewEvent' => 'Zeige Ereignis',
|
||||||
'ViewPaged' => 'Seitenansicht',
|
'ViewPaged' => 'Seitenansicht',
|
||||||
'Wake' => 'Aufwachen',
|
'Wake' => 'Aufwachen',
|
||||||
'WarmupFrames' => 'Aufwärmbilder',
|
'WarmupFrames' => 'Aufwärmbilder',
|
||||||
'Watch' => 'Beobachte',
|
'Watch' => 'Beobachte',
|
||||||
'Web' => 'Web',
|
'Web' => 'Web',
|
||||||
'WebColour' => 'Webfarbe',
|
'WebColour' => 'Webfarbe',
|
||||||
'Week' => 'Woche',
|
'Week' => 'Woche',
|
||||||
'White' => 'Weiß',
|
'White' => 'Weiß',
|
||||||
'WhiteBalance' => 'Weiß-Abgleich',
|
'WhiteBalance' => 'Weiß-Abgleich',
|
||||||
'Wide' => 'Weit',
|
'Wide' => 'Weit',
|
||||||
'X' => 'X',
|
'X' => 'X',
|
||||||
'X10' => 'X10',
|
'X10' => 'X10',
|
||||||
|
@ -740,17 +740,17 @@ $SLANG = array(
|
||||||
'Yes' => 'Ja',
|
'Yes' => 'Ja',
|
||||||
'YouNoPerms' => 'Keine Erlaubnis zum Zugang dieser Resource.',
|
'YouNoPerms' => 'Keine Erlaubnis zum Zugang dieser Resource.',
|
||||||
'Zone' => 'Zone',
|
'Zone' => 'Zone',
|
||||||
'ZoneAlarmColour' => 'Alarmfarbe (Rot/Grün/Blau)',
|
'ZoneAlarmColour' => 'Alarmfarbe (Rot/Grün/Blau)',
|
||||||
'ZoneArea' => 'Zone Area',
|
'ZoneArea' => 'Zone Area',
|
||||||
'ZoneExtendAlarmFrames' => 'Alarmstatus nach Ende für Frames aufrechterhalten',
|
'ZoneExtendAlarmFrames' => 'Alarmstatus nach Ende für Frames aufrechterhalten',
|
||||||
'ZoneFilterSize' => 'Filter-Breite/-Höhe (Pixel)',
|
'ZoneFilterSize' => 'Filter-Breite/-Höhe (Pixel)',
|
||||||
'ZoneMinMaxAlarmArea' => 'Min./max. Alarmfläche',
|
'ZoneMinMaxAlarmArea' => 'Min./max. Alarmfläche',
|
||||||
'ZoneMinMaxBlobArea' => 'Min./max. Blobfläche',
|
'ZoneMinMaxBlobArea' => 'Min./max. Blobfläche',
|
||||||
'ZoneMinMaxBlobs' => 'Min./max. Blobs',
|
'ZoneMinMaxBlobs' => 'Min./max. Blobs',
|
||||||
'ZoneMinMaxFiltArea' => 'Min./max. Filterfläche',
|
'ZoneMinMaxFiltArea' => 'Min./max. Filterfläche',
|
||||||
'ZoneMinMaxPixelThres' => 'Min./max. Pixelschwellwert',
|
'ZoneMinMaxPixelThres' => 'Min./max. Pixelschwellwert',
|
||||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||||
'ZoneOverloadFrames' => 'Bildauslassrate bei Systemüberlastung',
|
'ZoneOverloadFrames' => 'Bildauslassrate bei Systemüberlastung',
|
||||||
'Zones' => 'Zonen',
|
'Zones' => 'Zonen',
|
||||||
'Zoom' => 'Zoom',
|
'Zoom' => 'Zoom',
|
||||||
'ZoomIn' => 'Hineinzoomen',
|
'ZoomIn' => 'Hineinzoomen',
|
||||||
|
@ -903,4 +903,4 @@ $OLANG = array(
|
||||||
// ),
|
// ),
|
||||||
);
|
);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -2,5 +2,6 @@ AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
webdir = @WEB_PREFIX@/skins/classic/css
|
webdir = @WEB_PREFIX@/skins/classic/css
|
||||||
|
|
||||||
SUBDIRS = flat \
|
SUBDIRS = dark \
|
||||||
|
flat \
|
||||||
classic
|
classic
|
||||||
|
|
|
@ -242,6 +242,11 @@ ul.tabList li.active a {
|
||||||
font-size: 120%;
|
font-size: 120%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#content table > tbody > tr:hover
|
||||||
|
{
|
||||||
|
background-color: #EEE;
|
||||||
|
}
|
||||||
|
|
||||||
.overlay {
|
.overlay {
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
|
webdir = @WEB_PREFIX@/skins/classic/css/dark
|
||||||
|
|
||||||
|
SUBDIRS = views
|
||||||
|
|
||||||
|
dist_web_DATA = \
|
||||||
|
skin.css \
|
||||||
|
control.css \
|
||||||
|
export.css
|
|
@ -0,0 +1,147 @@
|
||||||
|
.ptzControls {
|
||||||
|
vertical-align: top;
|
||||||
|
margin: 10px auto 0;
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls input.ptzTextBtn {
|
||||||
|
margin-top: 2px;
|
||||||
|
width: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls input[type=image] {
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .arrowControl {
|
||||||
|
width: 40px;
|
||||||
|
height: 180px;
|
||||||
|
margin: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .arrowControl input {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .longArrowBtn {
|
||||||
|
width: 32px;
|
||||||
|
height: 48px;
|
||||||
|
margin: 0 auto;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is a bit of a hack as these lines should be in the above
|
||||||
|
* section but that messes up layout on IE6
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
.ptzControls .controlsPanel > div > div.longArrowBtn {
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -16px;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .upBtn {
|
||||||
|
background: url("../../graphics/arrow-l-u.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .downBtn {
|
||||||
|
background: url("../../graphics/arrow-l-d.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .focusControls {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .zoomControls {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .irisControls {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .whiteControls {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel {
|
||||||
|
margin: 0 auto;
|
||||||
|
height: 180px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .pantiltButtons {
|
||||||
|
margin: 5px auto;
|
||||||
|
border: 1px solid #006699;
|
||||||
|
text-align: center;
|
||||||
|
padding: 1px;
|
||||||
|
width: 96px;
|
||||||
|
height: 96px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .arrowBtn {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
cursor: pointer;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .upLeftBtn {
|
||||||
|
background: url("../../graphics/arrow-ul.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .upBtn {
|
||||||
|
background: url("../../graphics/arrow-u.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .upRightBtn {
|
||||||
|
background: url("../../graphics/arrow-ur.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .leftBtn {
|
||||||
|
background: url("../../graphics/arrow-l.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .centerBtn {
|
||||||
|
background: url("../../graphics/center.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .rightBtn {
|
||||||
|
background: url("../../graphics/arrow-r.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .downLeftBtn {
|
||||||
|
background: url("../../graphics/arrow-dl.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .downBtn {
|
||||||
|
background: url("../../graphics/arrow-d.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .downRightBtn {
|
||||||
|
background: url("../../graphics/arrow-dr.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .controlsPanel .pantiltPanel .powerControls {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .presetControls {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .presetControls input {
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ptzControls .presetControls input.ptzNumBtn {
|
||||||
|
padding: 1px 2px;
|
||||||
|
width: 24px;
|
||||||
|
color: #ffffff;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #016A9D;
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
body {
|
||||||
|
font-family: Verdana, Arial, Helvetica, sans-serif;
|
||||||
|
font-size:10px;
|
||||||
|
font-weight: normal
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
th, td {
|
||||||
|
border: 1px solid #7f7fb2;
|
||||||
|
text-align: center;
|
||||||
|
padding: 2px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link {
|
||||||
|
color: #7f7fb2;
|
||||||
|
text-decoration: none
|
||||||
|
}
|
||||||
|
|
||||||
|
a:visited {
|
||||||
|
color: #7f7fb2;
|
||||||
|
text-decoration: none
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #666699;
|
||||||
|
text-decoration: underline
|
||||||
|
}
|
||||||
|
|
||||||
|
img.thumb {
|
||||||
|
width: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.monoRow {
|
||||||
|
line-height: 200%;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventFrames tr.alarm {
|
||||||
|
background-color: #fa8072;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventFrames tr.bulk {
|
||||||
|
background-color: #cccccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventFrames tr.normal {
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,453 @@
|
||||||
|
/*
|
||||||
|
* ZoneMinder Base Stylesheet, $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) input[type=password], 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Primary look and feel styles
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: Verdana, Arial, Helvetica, sans-serif;
|
||||||
|
font-size: 10px;
|
||||||
|
color: #dddddd;
|
||||||
|
background-color: #222222;
|
||||||
|
font-weight: normal;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: 120%;
|
||||||
|
color: #10a4e8;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: 110%;
|
||||||
|
color: #10a4e8;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: 100%;
|
||||||
|
color: #117AAd;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: 100%;
|
||||||
|
color: #117AAd;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: 100%;
|
||||||
|
color: #dddddd;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #117AAd;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link {
|
||||||
|
color: #8f8fc2;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:visited {
|
||||||
|
color: #8f8fc2;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #7777aa;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input,textarea,select,button {
|
||||||
|
border: 1px #8f8fc2 solid;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: 100%;
|
||||||
|
color: #eeeeee;
|
||||||
|
background-color: #444444;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=text], input[type=password], textarea {
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.noborder {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[disabled] {
|
||||||
|
color: #777777;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.normal {
|
||||||
|
border: #cccccc solid 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.alarm {
|
||||||
|
border: red solid 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
height: 1px;
|
||||||
|
width: 100%;
|
||||||
|
border: 0;
|
||||||
|
color: #8f8fc2;
|
||||||
|
background-color: #8f8fc2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Tabbed headings
|
||||||
|
*/
|
||||||
|
ul.tabList {
|
||||||
|
float: left;
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0 0 -4px 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.tabList li {
|
||||||
|
float: left;
|
||||||
|
border: 1px solid;
|
||||||
|
color: #8f8fc2;
|
||||||
|
border: #8f8fc2 solid 1px;
|
||||||
|
border-bottom-width: 0;
|
||||||
|
margin: 0 2px 0 0;
|
||||||
|
background: #444444;
|
||||||
|
text-align: center;
|
||||||
|
padding: 3px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.tabList li a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.tabList li:hover {
|
||||||
|
background-color: #dddddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.tabList li.active {
|
||||||
|
background-color: #222222;
|
||||||
|
border-bottom: #8f8fc2 dotted 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.tabList li.active a {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Major league table for multiple inputs or presentation
|
||||||
|
*/
|
||||||
|
|
||||||
|
#content table.major {
|
||||||
|
margin: 4px auto;
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.major tr.highlight {
|
||||||
|
color: #eeeeee;
|
||||||
|
background-color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.major thead tr th {
|
||||||
|
padding-top: 6px;
|
||||||
|
padding-bottom: 6px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.major tfoot td {
|
||||||
|
padding-top: 6px;
|
||||||
|
padding-bottom: 6px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.major th, #content table.major td {
|
||||||
|
border: 1px solid #8f8fc2;
|
||||||
|
padding: 3px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.major th {
|
||||||
|
vertical-align: bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.major td {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.major th[scope=row] {
|
||||||
|
padding: 4px 3px 3px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.major .colMark, #content table.major .colSelect {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Lesser table for very simple forms
|
||||||
|
*/
|
||||||
|
|
||||||
|
#content table.minor {
|
||||||
|
width: 280px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.minor td {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.minor .colLeft {
|
||||||
|
width: 50%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.minor .colRight {
|
||||||
|
width: 50%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table.minor input[type=submit]
|
||||||
|
{
|
||||||
|
margin-top: 8px;
|
||||||
|
padding: 0 2px;
|
||||||
|
font-size: 120%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table > tbody > tr:hover
|
||||||
|
{
|
||||||
|
background-color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay {
|
||||||
|
font-size: 11px;
|
||||||
|
background-color: #222222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay .overlayHeader {
|
||||||
|
color: #eeeeee;
|
||||||
|
background-color: #070707;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay fieldset {
|
||||||
|
background-color: #222222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.validation-advice {
|
||||||
|
padding: 4px;
|
||||||
|
color: #dc143c;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
border: 1px solid #dddddd;
|
||||||
|
padding: 4px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
border-radius: 2px;
|
||||||
|
-moz-border-radius: 2px;
|
||||||
|
-webkit-border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset > legend {
|
||||||
|
padding: 0 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Behavior classes
|
||||||
|
*/
|
||||||
|
.alarm, .errorText {
|
||||||
|
color: #dc143c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.alert, .warnText {
|
||||||
|
color: #ff8c00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ok, .infoText {
|
||||||
|
color: #77a328;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fakelink {
|
||||||
|
color: #8f8fc2;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fakelink:hover {
|
||||||
|
color: #336699;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Generic useful classes, especially with mootools
|
||||||
|
*/
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.invisible {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nowrap {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.clear {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
.table-th-sort {
|
||||||
|
font-style:italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.table-td-sort {
|
||||||
|
font-style:italic;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
th.table-th-sort {
|
||||||
|
margin-right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.table-th-sort span.table-th-sort-span {
|
||||||
|
float: right;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
background: url("../graphics/arrow-s-u.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.table-th-sort-rev span.table-th-sort-span {
|
||||||
|
float: right;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
background: url("../graphics/arrow-s-d.gif") no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-tr-odd {
|
||||||
|
background-color: #070707;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Primary layout styles
|
||||||
|
*/
|
||||||
|
|
||||||
|
#page {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header {
|
||||||
|
width: 96%;
|
||||||
|
line-height: 24px;
|
||||||
|
margin: 8px auto;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header h2 {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header h2.floating {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#headerControl {
|
||||||
|
width: 50%;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#headerButtons {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#headerButtons a {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#headerButtons input {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
width: 96%;
|
||||||
|
margin: 8px auto;
|
||||||
|
line-height: 130%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content p {
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content p.textblock {
|
||||||
|
text-align: justify;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content p.textblock br {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
#contentDiv {
|
||||||
|
margin: 0 auto 8px;
|
||||||
|
line-height: 140%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#content > input[type=submit], #content > input[type=button], #content > button {
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content table input[type=submit], #content table input[type=button], #content table button {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentButtons {
|
||||||
|
margin-top: 8px;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentButtons input {
|
||||||
|
margin-left: 8px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer {
|
||||||
|
width: 96%;
|
||||||
|
margin: 8px auto;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
|
webdir = @WEB_PREFIX@/skins/classic/css/dark/views
|
||||||
|
|
||||||
|
dist_web_DATA = \
|
||||||
|
console.css \
|
||||||
|
controlcaps.css \
|
||||||
|
control.css \
|
||||||
|
devices.css \
|
||||||
|
event.css \
|
||||||
|
events.css \
|
||||||
|
export.css \
|
||||||
|
filter.css \
|
||||||
|
frame.css \
|
||||||
|
frames.css \
|
||||||
|
groups.css \
|
||||||
|
log.css \
|
||||||
|
monitor.css \
|
||||||
|
montage_2wide.css \
|
||||||
|
montage_3wide50enlarge.css \
|
||||||
|
montage_3wide.css \
|
||||||
|
montage_4wide.css \
|
||||||
|
montage.css \
|
||||||
|
montage_freeform.css \
|
||||||
|
options.css \
|
||||||
|
stats.css \
|
||||||
|
timeline.css \
|
||||||
|
timeline.css.php \
|
||||||
|
video.css \
|
||||||
|
watch.css \
|
||||||
|
zone.css
|
|
@ -0,0 +1,97 @@
|
||||||
|
#systemTime {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#title {
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#systemStats {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorSummary {
|
||||||
|
float: left;
|
||||||
|
text-align: left;
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#devices {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#loginBandwidth {
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
width: 40%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cycleMontage {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#options {
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable tr.highlight {
|
||||||
|
background-color: #111111;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable thead th {
|
||||||
|
padding-bottom: 4px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable tfoot td {
|
||||||
|
padding-top: 4px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable th,td {
|
||||||
|
height: 16px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable .colOrder {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable .colMark {
|
||||||
|
width: 32px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable .colEvents {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable .colZones {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable .colLeftButtons {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable .colLeftButtons input {
|
||||||
|
margin-right: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable .colRightButtons {
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#consoleTable .colRightButtons input {
|
||||||
|
margin: 0 8px;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
@import url(../control.css);
|
|
@ -0,0 +1,3 @@
|
||||||
|
#content table.major .colCanMove, #content table.major .colCanZoom, #content table.major .colCanFocus, #content table.major .colCanIris, #content table.major .colCanWhiteBal, #content table.major .colHasPresets {
|
||||||
|
text-align: center;
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
input.set {
|
||||||
|
border: 1px #7F7FB2 dashed;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,232 @@
|
||||||
|
#dataBar {
|
||||||
|
width: 100%;
|
||||||
|
margin: 2px auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dataBar #dataTable {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dataBar #dataTable td {
|
||||||
|
text-align: center;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar1 {
|
||||||
|
width: 100%;
|
||||||
|
height: 1.5em;
|
||||||
|
padding: 3px 0;
|
||||||
|
text-align: center;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar1 #nameControl {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar1 #nameControl #eventName {
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar1 #replayControl {
|
||||||
|
float: right;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar1 #scaleControl {
|
||||||
|
float: right;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar2 {
|
||||||
|
width: 100%;
|
||||||
|
height: 1.2em;
|
||||||
|
padding: 3px 0;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar2 div {
|
||||||
|
text-align: left;
|
||||||
|
float: left;
|
||||||
|
padding: 0 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar2 #closeWindow {
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#imageFeed {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorStatus {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorStatus #enableAlarms {
|
||||||
|
position: absolute;
|
||||||
|
left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorStatus #forceAlarm {
|
||||||
|
position: absolute;
|
||||||
|
right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorStatus #monitorState {
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls {
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls input {
|
||||||
|
height: 20px;
|
||||||
|
width: 28px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
margin: 0 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls input[disabled=disabled] {
|
||||||
|
color: #aaaaaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls input.active {
|
||||||
|
border: 1px solid blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls input.inactive {
|
||||||
|
border: 1px solid green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls input.unavail {
|
||||||
|
border: 1px solid red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#replayStatus {
|
||||||
|
margin: 3px 0 2px;
|
||||||
|
text-align: center;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
#replayStatus > span {
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#progressBar {
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid #666666;
|
||||||
|
height: 15px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#progressBar .progressBox {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
height: 15px;
|
||||||
|
background: #eeeeee;
|
||||||
|
border-left: 1px solid #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
#progressBar .complete {
|
||||||
|
background: #aaaaaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventStills {
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventThumbsPanel {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
margin: 4px auto;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventThumbs {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventThumbs img {
|
||||||
|
height: 25px; /* HACK - Although this is pixels it will be interpreted as a scale %ge, so 25px = 25% scaling for thumbnails */
|
||||||
|
margin: 2px;
|
||||||
|
background-color: #dddddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventThumbs img.placeholder {
|
||||||
|
/* width: 100px; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventThumbs img.selected {
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventImagePanel {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventImageFrame {
|
||||||
|
border: 2px solid gray;
|
||||||
|
background-color: white;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventImage {
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventImageBar {
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventImageStats {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventImageData {
|
||||||
|
margin: 0 auto;
|
||||||
|
padding-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventImageClose {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventImageNav {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventImageNav input {
|
||||||
|
width: 32px;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#thumbsSliderPanel {
|
||||||
|
width: 400px;
|
||||||
|
margin: 4px auto 0;
|
||||||
|
background: #888888;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#thumbsSlider {
|
||||||
|
width: 400px;
|
||||||
|
height: 10px;
|
||||||
|
background: #dddddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
#thumbsKnob {
|
||||||
|
width: 8px;
|
||||||
|
height: 10px;
|
||||||
|
background-color: #444444;
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
#controls {
|
||||||
|
height: 16px;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 auto;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#controls a {
|
||||||
|
width: 32%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#controls #refreshLink {
|
||||||
|
position: absolute;
|
||||||
|
left: 0%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#controls #filterLink {
|
||||||
|
position: absolute;
|
||||||
|
left: 34%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#controls #timelineLink {
|
||||||
|
position: absolute;
|
||||||
|
left: 68%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentTable.major .colTime {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentTable.major .colId, #contentTable.major .colDuration, #contentTable.major .colFrames, #contentTable.major .colAlarmFrames, #contentTable.major .colTotScore, #contentTable.major .colMaxScore, #contentTable.major .colAvgScore {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentTable.major td.colDuration {
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 8px;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
#contentTable + input {
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentTable th, #contentTable td {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
#exportProgress {
|
||||||
|
margin: 8px auto 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#downloadLink {
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
#filterSelector {
|
||||||
|
}
|
||||||
|
|
||||||
|
table.filterTable {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fieldsTable td {
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fieldsTable input[type=button] {
|
||||||
|
width: 1.6em;
|
||||||
|
margin-left: 2px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sortTable input[type=text] {
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#actionsTable input[type=text] {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
#controls {
|
||||||
|
width: 80%;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#controls a {
|
||||||
|
width: 40px;
|
||||||
|
margin-left: -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#firstLink {
|
||||||
|
position: absolute;
|
||||||
|
left: 13%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prevLink {
|
||||||
|
position: absolute;
|
||||||
|
left: 37%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nextLink {
|
||||||
|
position: absolute;
|
||||||
|
left: 63%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lastLink {
|
||||||
|
position: absolute;
|
||||||
|
left: 87%;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
#contentTable.major .colId, #contentTable.major .colType, #contentTable.major .colTimeStamp, #contentTable.major .colTimeDelta, #contentTable.major .colScore {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.alarm {
|
||||||
|
background-color: #fa8072;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.bulk {
|
||||||
|
background-color: #cccccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.normal {
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
#contentTable .colSelect {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentTable .colSelect input {
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
#logSummary {
|
||||||
|
margin: 4px auto 0;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
#logSummary tr {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#logSummary td {
|
||||||
|
border: 1px solid #8f8fc2;
|
||||||
|
padding: 0 6px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 10px;
|
||||||
|
line-height: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.log-fat td {
|
||||||
|
color: #222222;
|
||||||
|
background-color:#ffcccc;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.log-err td {
|
||||||
|
color: #222222;
|
||||||
|
background-color:#ffcccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.log-war td {
|
||||||
|
color: #222222;
|
||||||
|
background-color: #ffe4b5;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.log-dbg td {
|
||||||
|
color: #666666;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
#exportLog label {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#exportLog input[type=radio] {
|
||||||
|
margin-right: 4px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#exportError {
|
||||||
|
display: none;
|
||||||
|
color: #dc143c;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#exportErrorText {
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
.swatch {
|
||||||
|
border: 1px solid black;
|
||||||
|
margin-left: 3px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
#header {
|
||||||
|
width: 99%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#layout {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
width: 99%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .alarm {
|
||||||
|
color: #ff0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .alert {
|
||||||
|
color: #ffa500;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .imageFeed {
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .imageFeed img.idle {
|
||||||
|
border: 2px solid #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .imageFeed img.alarm {
|
||||||
|
border: 2px solid #ff0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .imageFeed img.alert {
|
||||||
|
border: 2px solid #ffa500;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitorState {
|
||||||
|
margin: 2px auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
#monitors {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitorFrame {
|
||||||
|
padding: 1px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitor {
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame0, #monitorFrame2, #monitorFrame4, #monitorFrame6, #monitorFrame8, #monitorFrame10, #monitorFrame12, #monitorFrame14 {
|
||||||
|
width: 49%;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor0, #monitor2, #monitor4, #monitor6, #monitor8, #monitor10, #monitor12, #monitor14 {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame1, #monitorFrame3, #monitorFrame5, #monitorFrame7, #monitorFrame9, #monitorFrame11, #monitorFrame13, #monitorFrame15 {
|
||||||
|
width: 49%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor1, #monitor3, #monitor5, #monitor7, #monitor9, #monitor11, #monitor13, #monitor15 {
|
||||||
|
float: left;
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
#monitors {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitorFrame {
|
||||||
|
padding: 1px;
|
||||||
|
float: left;
|
||||||
|
width: 33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitor {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame0, #monitorFrame3, #monitorFrame6, #monitorFrame9, #monitorFrame12, #monitorFrame15 {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor0, #monitor3, #monitor6, #monitor9, #monitor12, #monitor15 {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame1, #monitorFrame4, #monitorFrame7, #monitorFrame10, #monitorFrame13, #monitorFrame16 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor1, #monitor4, #monitor7, #monitor10, #monitor13, #monitor16 {
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame2, #monitorFrame5, #monitorFrame8, #monitorFrame11, #monitorFrame14, #monitorFrame17 {
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor2, #monitor5, #monitor8, #monitor11, #monitor14, #monitor17 {
|
||||||
|
float: left;
|
||||||
|
}
|
|
@ -0,0 +1,74 @@
|
||||||
|
#monitors {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitorFrame {
|
||||||
|
float: left;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitor {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame0, #monitorFrame3, #monitorFrame6, #monitorFrame9, #monitorFrame12, #monitorFrame15 {
|
||||||
|
width: 32%;
|
||||||
|
text-align: right;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor0, #monitor3, #monitor6, #monitor9, #monitor12, #monitor15 {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame1, #monitorFrame4, #monitorFrame7, #monitorFrame10, #monitorFrame13, #monitorFrame16 {
|
||||||
|
width: 32%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor1, #monitor4, #monitor7, #monitor10, #monitor13, #monitor16 {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame2, #monitorFrame5, #monitorFrame8, #monitorFrame11, #monitorFrame14, #monitorFrame17 {
|
||||||
|
width: 32%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor2, #monitor5, #monitor8, #monitor11, #monitor14, #monitor17 {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .imageFeed img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitorFrame > div.alarm, #monitors .monitorFrame > div.alert {
|
||||||
|
position: absolute;
|
||||||
|
width: 96%;
|
||||||
|
left: 2%;
|
||||||
|
top: 72px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitorFrame > div.alert {
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitorFrame > div.alarm {
|
||||||
|
z-index: 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitorFrame div.alarm, #monitors .monitorFrame div.alert {
|
||||||
|
font-size: 140%;
|
||||||
|
line-height: 160%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitorFrame div.monitorState {
|
||||||
|
text-align: center;
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
#monitors {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitorFrame {
|
||||||
|
padding: 1px;
|
||||||
|
float: left;
|
||||||
|
width: 24.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitor {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame0, #monitorFrame4, #monitorFrame8, #monitorFrame12, #monitorFrame16, #monitorFrame20 {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor0, #monitor4, #monitor8, #monitor12, #monitor16, #monitor20 {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame1, #monitorFrame5, #monitorFrame9, #monitorFrame13, #monitorFrame17, #monitorFrame21 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor1, #monitor5, #monitor9, #monitor13, #monitor17, #monitor21 {
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame2, #monitorFrame6, #monitorFrame10, #monitorFrame14, #monitorFrame18, #monitorFrame22 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor2, #monitor6, #monitor10, #monitor14, #monitor18, #monitor22 {
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorFrame3, #monitorFrame7, #monitorFrame11, #monitorFrame15, #monitorFrame19, #monitorFrame23 {
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitor3, #monitor7, #monitor11, #monitor15, #monitor19, #monitor23 {
|
||||||
|
float: left;
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
#monitors {
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitors .monitorFrame {
|
||||||
|
float: left;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
input.small {
|
||||||
|
width: 6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.medium {
|
||||||
|
width: 9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.large {
|
||||||
|
width: 20em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentTable.optionTable th, #contentTable.optionTable td {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentTable.userTable th, #contentTable.userTable td {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentTable.userTable .colMonitor, #contentTable.userTable .colUsername {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
#settingsPanel {
|
||||||
|
float: left;
|
||||||
|
margin: 0 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pluginSettings {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pluginSettings th, #pluginSettings td {
|
||||||
|
border: 1px solid #7f7fb2;
|
||||||
|
padding: 3px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pluginSettings th[scope=row] {
|
||||||
|
padding: 4px 3px 3px;
|
||||||
|
vertical-align: top;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
#contentTable.major .colZone, #contentTable.major .colPixelDiff, #contentTable.major .colAlarmPx, #contentTable.major .colFilterPx, #contentTable.major .colBlobPx, #contentTable.major .colBlobs, #contentTable.major .colBlobSizes, #contentTable.major .colAlarmLimits, #contentTable.major .colScore {
|
||||||
|
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentTable.major .rowNoStats {
|
||||||
|
text-align: center;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
|
@ -0,0 +1,222 @@
|
||||||
|
#content {
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
border: 1px solid #666666;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#title {
|
||||||
|
position: relative;
|
||||||
|
margin: 0 auto;
|
||||||
|
color: #016A9D;
|
||||||
|
height: 30px;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#listLink {
|
||||||
|
position: absolute;
|
||||||
|
top: 5px;
|
||||||
|
left: 20px;
|
||||||
|
height: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#closeLink {
|
||||||
|
position: absolute;
|
||||||
|
top: 5px;
|
||||||
|
right: 20px;
|
||||||
|
height: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topPanel {
|
||||||
|
position: relative;
|
||||||
|
height: 220px;
|
||||||
|
margin: 4px auto 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topPanel #imagePanel
|
||||||
|
{
|
||||||
|
width: 50%;
|
||||||
|
float: left;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topPanel #image {
|
||||||
|
float: right;
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 90%;
|
||||||
|
text-align: right;
|
||||||
|
margin-right: 2px;
|
||||||
|
background-color: #222222;
|
||||||
|
border: 1px solid #cccccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topPanel #image img {
|
||||||
|
float: left;
|
||||||
|
top: 0px;
|
||||||
|
background-color: #222222;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topPanel #dataPanel {
|
||||||
|
width: 45%;
|
||||||
|
float: left;
|
||||||
|
text-align: left;
|
||||||
|
margin-left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topPanel #textPanel {
|
||||||
|
text-align: left;
|
||||||
|
width: 100%;
|
||||||
|
height: 140px;
|
||||||
|
margin: 0 auto;
|
||||||
|
color: #dddddd;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 14px;
|
||||||
|
background-color: #222222;
|
||||||
|
border: 1px solid #cccccc;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topPanel #navPanel {
|
||||||
|
width: 100%;
|
||||||
|
height: 70px;
|
||||||
|
margin: 4px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topPanel #navPanel input {
|
||||||
|
background-color: #111111;
|
||||||
|
border: 1px solid #cccccc;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#chartPanel {
|
||||||
|
position: relative;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#chartPanel #chart {
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid black;
|
||||||
|
margin: 0 auto;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#chartPanel #activity {
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
left: 0px;
|
||||||
|
border-bottom: 1px solid #cccccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#chartPanel #activity div.activity {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0px;
|
||||||
|
z-index: 3;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#chartPanel .events {
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
left: 0px;
|
||||||
|
background-color: #fcfcfc;
|
||||||
|
border-bottom: 1px solid black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#chartPanel .event {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0px;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
#chartLabels {
|
||||||
|
margin: 25px auto 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#range {
|
||||||
|
width: 30%;
|
||||||
|
margin: 0 auto;
|
||||||
|
color: #016A9D;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#key {
|
||||||
|
float: right;
|
||||||
|
margin-top: -4px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.keyEntry {
|
||||||
|
}
|
||||||
|
|
||||||
|
img.keyBox {
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid black;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
top: 4px;
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.majGridX {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1;
|
||||||
|
top: 0px;
|
||||||
|
width: 1px;
|
||||||
|
border-left: dotted 1px #cccccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.majTickX {
|
||||||
|
position: absolute;
|
||||||
|
bottom: -7px;
|
||||||
|
width: 1px;
|
||||||
|
height: 7px;
|
||||||
|
border-left: solid 1px black;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.majLabelX {
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
bottom: -20px;
|
||||||
|
width: 50px;
|
||||||
|
font-size: 9px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.majGridY {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1;
|
||||||
|
left: 0px;
|
||||||
|
height: 1px;
|
||||||
|
border-top: dotted 1px #cccccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.majTickY {
|
||||||
|
position: absolute;
|
||||||
|
left: -7px;
|
||||||
|
height: 1px;
|
||||||
|
width: 7px;
|
||||||
|
border-top: solid 1px black;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.majLabelY {
|
||||||
|
position: absolute;
|
||||||
|
text-align: right;
|
||||||
|
left: -30px;
|
||||||
|
width: 20px;
|
||||||
|
font-size: 9px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.zoom {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
|
bottom: 0px;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
.chartSize {
|
||||||
|
width: <?php echo $chart['width'] ?>px;
|
||||||
|
height: <?php echo $chart['height'] ?>px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.graphSize {
|
||||||
|
width: <?php echo $chart['graph']['width'] ?>px;
|
||||||
|
height: <?php echo $chart['graph']['height'] ?>px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.graphHeight {
|
||||||
|
height: <?php echo $chart['graph']['height'] ?>px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.graphWidth {
|
||||||
|
width: <?php echo $chart['graph']['width'] ?>px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.imageSize {
|
||||||
|
width: <?php echo $chart['image']['width'] ?>px;
|
||||||
|
height: <?php echo $chart['image']['height'] ?>px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.imageHeight {
|
||||||
|
height: <?php echo $chart['image']['height'] ?>px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.activitySize {
|
||||||
|
width: <?php echo $chart['graph']['width'] ?>px;
|
||||||
|
height: <?php echo $chart['graph']['activityHeight'] ?>px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eventsSize {
|
||||||
|
width: <?php echo $chart['graph']['width'] ?>px;
|
||||||
|
height: <?php echo $chart['graph']['eventBarHeight'] ?>px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eventsHeight {
|
||||||
|
height: <?php echo $chart['graph']['eventBarHeight'] ?>px;
|
||||||
|
}
|
||||||
|
<?php
|
||||||
|
if ( $mode == "overlay" )
|
||||||
|
{
|
||||||
|
foreach ( array_keys($monitorIds) as $monitorId )
|
||||||
|
{
|
||||||
|
?>
|
||||||
|
#chartPanel .eventsPos<?php echo $monitorId ?> {
|
||||||
|
top: <?php echo $chart['eventBars'][$monitorId]['top'] ?>px;
|
||||||
|
}
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif ( $mode == "split" )
|
||||||
|
{
|
||||||
|
foreach ( array_keys($monitorIds) as $monitorId )
|
||||||
|
{
|
||||||
|
?>
|
||||||
|
#chartPanel .activityPos<?php echo $monitorId ?> {
|
||||||
|
top: <?php echo $char['activityBars'][$monitorId]['top'] ?>px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#chartPanel .eventsPos<?php echo $monitorId ?> {
|
||||||
|
top: <?php echo $char['eventBars'][$monitorId]['top'] ?>px;
|
||||||
|
}
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach( array_keys($monEventSlots) as $monitorId )
|
||||||
|
{
|
||||||
|
?>
|
||||||
|
.monitorColour<?php echo $monitorId ?> {
|
||||||
|
background-color: <?php echo $monitors[$monitorId]['WebColour'] ?>;
|
||||||
|
}
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,19 @@
|
||||||
|
#contentTable + input {
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#videoProgress {
|
||||||
|
margin: 8px auto 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#videoFilesHeader {
|
||||||
|
margin: 8px auto 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#videoNoFiles {
|
||||||
|
margin: 4px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#videoFile {
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
|
@ -0,0 +1,134 @@
|
||||||
|
@import url(../control.css);
|
||||||
|
|
||||||
|
#menuBar {
|
||||||
|
margin: 6px auto 4px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar #monitorName {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar #closeControl {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar #menuControls {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 60%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar #menuControls #controlControl {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar #menuControls #eventsControl {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar #menuControls #settingsControl {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBar #menuControls #scaleControl {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#imageFeed{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorStatus {
|
||||||
|
margin: 4px auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorStatus #enableDisableAlarms {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorStatus #forceCancelAlarm {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#monitorStatus #monitorState {
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls {
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls input {
|
||||||
|
height: 20px;
|
||||||
|
width: 28px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
margin: 0 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls input[disabled] {
|
||||||
|
color: #aaaaaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls input.active {
|
||||||
|
border: 1px solid blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls input.inactive {
|
||||||
|
border: 1px solid green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dvrControls input.unavail {
|
||||||
|
border: 1px solid red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#replayStatus {
|
||||||
|
margin: 3px 0 2px;
|
||||||
|
text-align: center;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
#replayStatus > span {
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#events {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventList {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventList thead td {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventList th, #eventList td {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
display: inline;
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.alarm {
|
||||||
|
color: #DC143C;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.alert {
|
||||||
|
color: #FF8C00;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventList tr.recent {
|
||||||
|
background-color: #B0E0E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventList tr.highlight {
|
||||||
|
background-color: #DCDCDC;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
#settingsPanel {
|
||||||
|
float: left;
|
||||||
|
margin: 0 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zoneSettings {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zoneSettings th, #zoneSettings td {
|
||||||
|
border: 1px solid #7f7fb2;
|
||||||
|
padding: 3px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zoneSettings th[scope=row] {
|
||||||
|
padding: 4px 3px 3px;
|
||||||
|
vertical-align: top;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
#definitionPanel {
|
||||||
|
float: left;
|
||||||
|
margin: 0 2px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#definitionPanel input[type=submit], #definitionPanel input[type=submit] {
|
||||||
|
margin: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#imagePanel {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NB: The size of the imageFrame determines the area within which the markers
|
||||||
|
* may be moved. When adjusting the padding and margins of the imageFrame and
|
||||||
|
* the DIVs within it, test that the markers behave sensibly when dragged to
|
||||||
|
* the extreme edges of the imageFrame. */
|
||||||
|
#imageFrame {
|
||||||
|
position: relative;
|
||||||
|
padding: 0 3px 3px 0; /* Compensate for negative margins in the markers just below. */
|
||||||
|
}
|
||||||
|
|
||||||
|
#imageFrame div {
|
||||||
|
position: absolute;
|
||||||
|
width: 7px;
|
||||||
|
height: 7px;
|
||||||
|
margin-left: -3px;
|
||||||
|
margin-top: -3px;
|
||||||
|
z-index: 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
#imageFrame div {
|
||||||
|
background-image: url(../../../graphics/point-g.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
#imageFrame div.highlight {
|
||||||
|
background-image: url(../../../graphics/point-o.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
#imageFrame div.active {
|
||||||
|
background-image: url(../../../graphics/point-r.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
#zonePoints {
|
||||||
|
margin: 8px 0;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zonePoints td {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zonePoints table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zonePoints table tr.highlight {
|
||||||
|
background-color: #f0e68c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zonePoints table tr.active {
|
||||||
|
background-color: #ffa07a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zonePoints table th, #zonePoints table td {
|
||||||
|
border: 1px solid #7f7fb2;
|
||||||
|
padding: 3px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zonePoints table a {
|
||||||
|
margin: 0 2px;
|
||||||
|
}
|
|
@ -5,5 +5,6 @@ webdir = @WEB_PREFIX@/skins/classic/js
|
||||||
dist_web_DATA = \
|
dist_web_DATA = \
|
||||||
skin.js \
|
skin.js \
|
||||||
classic.js \
|
classic.js \
|
||||||
|
dark.js \
|
||||||
flat.js \
|
flat.js \
|
||||||
skin.js.php
|
skin.js.php
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
//
|
||||||
|
// ZoneMinder base static javascript 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.
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// This file should only contain static JavaScript and no php.
|
||||||
|
// Use skin.js.php for JavaScript that need pre-processing
|
||||||
|
//
|
||||||
|
|
||||||
|
// Javascript window sizes
|
||||||
|
var popupSizes = {
|
||||||
|
'bandwidth': { 'width': 300, 'height': 120 },
|
||||||
|
'console': { 'width': 750, 'height': 312 },
|
||||||
|
'control': { 'width': 380, 'height': 480 },
|
||||||
|
'controlcaps': { 'width': 780, 'height': 320 },
|
||||||
|
'controlcap': { 'width': 400, 'height': 400 },
|
||||||
|
'cycle': { 'addWidth': 32, 'minWidth': 384, 'addHeight': 62 },
|
||||||
|
'device': { 'width': 260, 'height': 150 },
|
||||||
|
'devices': { 'width': 400, 'height': 240 },
|
||||||
|
'donate': { 'width': 500, 'height': 280 },
|
||||||
|
'event': { 'addWidth': 108, 'minWidth': 496, 'addHeight': 230, minHeight: 540 },
|
||||||
|
'eventdetail': { 'width': 600, 'height': 220 },
|
||||||
|
'events': { 'width': 960, 'height': 780 },
|
||||||
|
'export': { 'width': 400, 'height': 340 },
|
||||||
|
'filter': { 'width': 720, 'height': 360 },
|
||||||
|
'filtersave': { 'width': 610, 'height': 120 },
|
||||||
|
'frame': { 'addWidth': 32, 'minWidth': 384, 'addHeight': 100 },
|
||||||
|
'frames': { 'width': 500, 'height': 600 },
|
||||||
|
'function': { 'width': 300, 'height': 92 },
|
||||||
|
'group': { 'width': 360, 'height': 180 },
|
||||||
|
'groups': { 'width': 440, 'height': 220 },
|
||||||
|
'image': { 'addWidth': 48, 'addHeight': 80 },
|
||||||
|
'log': { 'width': 1080, 'height': 720 },
|
||||||
|
'login': { 'width': 720, 'height': 480 },
|
||||||
|
'logout': { 'width': 260, 'height': 100 },
|
||||||
|
'monitor': { 'width': 450, 'height': 440 },
|
||||||
|
'monitorpreset':{ 'width': 440, 'height': 200 },
|
||||||
|
'monitorprobe': { 'width': 500, 'height': 240 },
|
||||||
|
'monitorselect':{ 'width': 160, 'height': 200 },
|
||||||
|
'montage': { 'width': -1, 'height': -1 },
|
||||||
|
'onvifprobe': { 'width': 500, 'height': 300 },
|
||||||
|
'optionhelp': { 'width': 400, 'height': 320 },
|
||||||
|
'options': { 'width': 1000, 'height': 660 },
|
||||||
|
'preset': { 'width': 300, 'height': 120 },
|
||||||
|
'settings': { 'width': 220, 'height': 225 },
|
||||||
|
'state': { 'width': 370, 'height': 134 },
|
||||||
|
'stats': { 'width': 840, 'height': 200 },
|
||||||
|
'timeline': { 'width': 760, 'height': 540 },
|
||||||
|
'user': { 'width': 360, 'height': 420 },
|
||||||
|
'version': { 'width': 360, 'height': 140 },
|
||||||
|
'video': { 'width': 420, 'height': 360 },
|
||||||
|
'videoview': { 'addWidth': 48, 'addHeight': 80 },
|
||||||
|
'watch': { 'addWidth': 96, 'minWidth': 420, 'addHeight': 384 },
|
||||||
|
'zone': { 'addWidth': 450, 'addHeight': 200, 'minHeight': 450 },
|
||||||
|
'zones': { 'addWidth': 72, 'addHeight': 232 }
|
||||||
|
};
|
|
@ -70,8 +70,7 @@ $eventCounts = array(
|
||||||
|
|
||||||
$running = daemonCheck();
|
$running = daemonCheck();
|
||||||
$status = $running?translate('Running'):translate('Stopped');
|
$status = $running?translate('Running'):translate('Stopped');
|
||||||
$run_state_array = dbFetchOne('select Name from States where IsActive = 1');
|
$run_state = dbFetchOne('select Name from States where IsActive = 1', 'Name' );
|
||||||
$run_state = implode($run_state_array);
|
|
||||||
|
|
||||||
$group = NULL;
|
$group = NULL;
|
||||||
if ( ! empty($_COOKIE['zmGroup']) ) {
|
if ( ! empty($_COOKIE['zmGroup']) ) {
|
||||||
|
@ -311,9 +310,7 @@ foreach( $displayMonitors as $monitor )
|
||||||
<td class="colSource"><?php echo makePopupLink( '?view=monitor&mid='.$monitor['Id'], 'zmMonitor'.$monitor['Id'], 'monitor', '<span class="'.$dclass.'">'.preg_replace( '/^.*@/', '', $monitor['Host'] ).'</span>', canEdit( 'Monitors' ) ) ?></td>
|
<td class="colSource"><?php echo makePopupLink( '?view=monitor&mid='.$monitor['Id'], 'zmMonitor'.$monitor['Id'], 'monitor', '<span class="'.$dclass.'">'.preg_replace( '/^.*@/', '', $monitor['Host'] ).'</span>', canEdit( 'Monitors' ) ) ?></td>
|
||||||
<?php } elseif ( $monitor['Type'] == "File" ) { ?>
|
<?php } elseif ( $monitor['Type'] == "File" ) { ?>
|
||||||
<td class="colSource"><?php echo makePopupLink( '?view=monitor&mid='.$monitor['Id'], 'zmMonitor'.$monitor['Id'], 'monitor', '<span class="'.$dclass.'">'.preg_replace( '/^.*\//', '', $monitor['Path'] ).'</span>', canEdit( 'Monitors' ) ) ?></td>
|
<td class="colSource"><?php echo makePopupLink( '?view=monitor&mid='.$monitor['Id'], 'zmMonitor'.$monitor['Id'], 'monitor', '<span class="'.$dclass.'">'.preg_replace( '/^.*\//', '', $monitor['Path'] ).'</span>', canEdit( 'Monitors' ) ) ?></td>
|
||||||
<?php } elseif ( $monitor['Type'] == "Ffmpeg" ) { ?>
|
<?php } elseif ( $monitor['Type'] == "Ffmpeg" || $monitor['Type'] == "Libvlc" ) {
|
||||||
<td class="colSource"><?php echo makePopupLink( '?view=monitor&mid='.$monitor['Id'], 'zmMonitor'.$monitor['Id'], 'monitor', '<span class="'.$dclass.'">'.preg_replace( '/^.*\//', '', $monitor['Path'] ).'</span>', canEdit( 'Monitors' ) ) ?></td>
|
|
||||||
<?php } elseif ( $monitor['Type'] == "Libvlc" ) {
|
|
||||||
$domain = parse_url( $monitor['Path'], PHP_URL_HOST );
|
$domain = parse_url( $monitor['Path'], PHP_URL_HOST );
|
||||||
$shortpath = $domain ? $domain : preg_replace( '/^.*\//', '', $monitor['Path'] );
|
$shortpath = $domain ? $domain : preg_replace( '/^.*\//', '', $monitor['Path'] );
|
||||||
if ( $shortpath == '' ) {
|
if ( $shortpath == '' ) {
|
||||||
|
|
|
@ -81,7 +81,10 @@ function logResponse( respObj )
|
||||||
row.tr.addClass( 'log-dbg' );
|
row.tr.addClass( 'log-dbg' );
|
||||||
if ( !firstLoad )
|
if ( !firstLoad )
|
||||||
{
|
{
|
||||||
new Fx.Tween( row.tr, { duration: 10000, transition: Fx.Transitions.Sine } ).start( 'color', '#6495ED', '#000000' );
|
var color = document.defaultView.getComputedStyle(row.tr,null).getPropertyValue('color');
|
||||||
|
var colorParts = color.match(/^rgb.*\((\d+),\s*(\d+),\s*(\d+)/);
|
||||||
|
rowOrigColor = '#' + parseInt(colorParts[1]).toString(16) + parseInt(colorParts[2]).toString(16) + parseInt(colorParts[3]).toString(16);
|
||||||
|
new Fx.Tween( row.tr, { duration: 10000, transition: Fx.Transitions.Sine } ).start( 'color', '#6495ED', rowOrigColor );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -40,10 +40,11 @@ if ( isset($_REQUEST['tab']) )
|
||||||
else
|
else
|
||||||
$tab = "general";
|
$tab = "general";
|
||||||
|
|
||||||
if ( defined( ZM_SERVER_ID ) ) {
|
if ( defined( 'ZM_SERVER_ID' ) ) {
|
||||||
$Server = dbFetchOne( 'SELECT * FROM Servers WHERE Id=?', NULL, array( ZM_SERVER_ID ) );
|
$Server = dbFetchOne( 'SELECT * FROM Servers WHERE Id=?', NULL, array( ZM_SERVER_ID ) );
|
||||||
} else {
|
}
|
||||||
$Server = array();
|
if ( ! $Server ) {
|
||||||
|
$Server = array( 'Id' => '' );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! empty($_REQUEST['mid']) ) {
|
if ( ! empty($_REQUEST['mid']) ) {
|
||||||
|
|
|
@ -18,6 +18,20 @@
|
||||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
// Calling sequence: ... /zm/index.php?view=image&path=/monid/path/image.jpg&scale=nnn&width=wwww&height=hhhhh
|
||||||
|
//
|
||||||
|
// Path is physical path to the image starting at the monitor id
|
||||||
|
//
|
||||||
|
// Scale is optional and between 1 and 400 (percent),
|
||||||
|
// Omitted or 100 = no scaling done, image passed through directly
|
||||||
|
// Scaling will increase response time slightly
|
||||||
|
//
|
||||||
|
// width and height are each optional, ideally supply both, but if only one is supplied the other is calculated
|
||||||
|
// These are in pixels
|
||||||
|
//
|
||||||
|
// If both scale and either width or height are specified, scale is ignored
|
||||||
|
//
|
||||||
|
|
||||||
if ( !canView( 'Events' ) )
|
if ( !canView( 'Events' ) )
|
||||||
{
|
{
|
||||||
$view = "error";
|
$view = "error";
|
||||||
|
@ -51,52 +65,67 @@ else
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( true )
|
$scale=0;
|
||||||
{
|
if( !empty($_REQUEST['scale']) )
|
||||||
// Simple version
|
if (is_numeric($_REQUEST['scale']))
|
||||||
if ( $errorText )
|
{
|
||||||
Error( $errorText );
|
$x = $_REQUEST['scale'];
|
||||||
else
|
if($x >= 1 and $x <= 400)
|
||||||
readfile( ZM_DIR_EVENTS.'/'.$path );
|
$scale=$x;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$width=0;
|
||||||
|
if( !empty($_REQUEST['width']) )
|
||||||
|
if (is_numeric($_REQUEST['width']))
|
||||||
|
{
|
||||||
|
$x = $_REQUEST['width'];
|
||||||
|
if($x >= 10 and $x <= 8000)
|
||||||
|
$width=$x;
|
||||||
|
}
|
||||||
|
$height=0;
|
||||||
|
if( !empty($_REQUEST['height']) )
|
||||||
|
if (is_numeric($_REQUEST['height']))
|
||||||
|
{
|
||||||
|
$x = $_REQUEST['height'];
|
||||||
|
if($x >= 10 and $x <= 8000)
|
||||||
|
$height=$x;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ( $errorText )
|
||||||
|
Error( $errorText );
|
||||||
else
|
else
|
||||||
{
|
if( ($scale==0 || $scale==100) && $width==0 && $height==0 )
|
||||||
// Not so simple version
|
readfile( ZM_DIR_EVENTS.'/'.$path );
|
||||||
if ( !function_exists( "imagecreatefromjpeg" ) )
|
else
|
||||||
Warning( "The imagecreatefromjpeg function is not present, php-gd not installed?" );
|
|
||||||
|
|
||||||
if ( !$errorText )
|
|
||||||
{
|
{
|
||||||
if ( !($image = imagecreatefromjpeg( ZM_DIR_EVENTS.'/'.$path )) )
|
$i = imagecreatefromjpeg ( ZM_DIR_EVENTS.'/'.$path );
|
||||||
|
$oldWidth=imagesx($i);
|
||||||
|
$oldHeight=imagesy($i);
|
||||||
|
if($width==0 && $height==0) // scale has to be set to get here with both zero
|
||||||
{
|
{
|
||||||
$errorText = "Can't load image";
|
$width = $oldWidth * $scale / 100.0;
|
||||||
$error = error_get_last();
|
$height= $oldHeight * $scale / 100.0;
|
||||||
Error( $error['message'] );
|
}
|
||||||
|
elseif ($width==0 && $height!=0)
|
||||||
|
{
|
||||||
|
$width = ($height * $oldWidth) / $oldHeight;
|
||||||
|
}
|
||||||
|
elseif ($width!=0 && $height==0)
|
||||||
|
{
|
||||||
|
$height = ($width * $oldHeight) / $oldWidth;
|
||||||
|
}
|
||||||
|
if($width==$oldWidth && $height==$oldHeight) // See if we really need to scale
|
||||||
|
{
|
||||||
|
imagejpg($i);
|
||||||
|
imagedestroy($i);
|
||||||
|
}
|
||||||
|
else // we do need to scale
|
||||||
|
{
|
||||||
|
$iScale = imagescale($i, $width, $height);
|
||||||
|
imagejpeg($iScale);
|
||||||
|
imagedestroy($i);
|
||||||
|
imagedestroy($iScale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $errorText )
|
|
||||||
{
|
|
||||||
if ( !($image = imagecreatetruecolor( 160, 120 )) )
|
|
||||||
{
|
|
||||||
$error = error_get_last();
|
|
||||||
Error( $error['message'] );
|
|
||||||
}
|
|
||||||
if ( !($textColor = imagecolorallocate( $image, 255, 0, 0 )) )
|
|
||||||
{
|
|
||||||
$error = error_get_last();
|
|
||||||
Error( $error['message'] );
|
|
||||||
}
|
|
||||||
if ( !imagestring( $image, 1, 20, 60, $errorText, $textColor ) )
|
|
||||||
{
|
|
||||||
$error = error_get_last();
|
|
||||||
Error( $error['message'] );
|
|
||||||
}
|
|
||||||
Fatal( $errorText." - ".$path );
|
|
||||||
}
|
|
||||||
|
|
||||||
imagejpeg( $image );
|
|
||||||
|
|
||||||
imagedestroy( $image );
|
|
||||||
}
|
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in New Issue