Bug 222 - Added zone presets.

git-svn-id: http://svn.zoneminder.com/svn/zm/trunk@1658 e3e1d417-86f3-4887-817a-d78f3d33393f
pull/27/merge
stan 2005-12-05 15:11:08 +00:00
parent af370d91fe
commit 588e308531
3 changed files with 118 additions and 4 deletions

View File

@ -234,7 +234,7 @@ function truncText( $text, $length, $deslash=1 )
return( preg_replace( "/^(.{".$length.",}?)\b.*$/", "\\1…", ($deslash?stripslashes($text):$text) ) );
}
function buildSelect( $name, $contents, $onchange="" )
function buildSelect( $name, $contents, $behaviours=false )
{
if ( preg_match( "/^(\w+)\s*\[\s*['\"]?(\w+)[\"']?\s*]$/", $name, $matches ) )
{
@ -249,8 +249,23 @@ function buildSelect( $name, $contents, $onchange="" )
$value = $$name;
}
ob_start();
$behaviour_text = "";
if ( isset($behaviours) )
{
if ( is_array($behaviours) )
{
foreach ( $behaviours as $event=>$action )
{
$behaviour_text .= ' '.$event.'="'.$action.'"';
}
}
else
{
$behaviour_text = ' onChange="'.$behaviours.'"';
}
}
?>
<select name="<?= $name ?>" class="form"<?php if ( $onchange ) { echo " onChange=\"$onchange\""; } ?>>
<select name="<?= $name ?>" class="form"<?= $behaviour_text ?>>
<?php
foreach ( $contents as $content_value => $content_text )
{

View File

@ -38,6 +38,16 @@ $marker = array(
"height"=>7,
);
$presets = array(
0=>$zmSlangZonePresetChoose,
1=>$zmSlangZonePresetFastLow,
2=>$zmSlangZonePresetFastMed,
3=>$zmSlangZonePresetFastHigh,
11=>$zmSlangZonePresetBestLow,
12=>$zmSlangZonePresetBestMed,
13=>$zmSlangZonePresetBestHigh,
);
$result = mysql_query( "select * from Monitors where Id = '$mid'" );
if ( !$result )
die( mysql_error() );
@ -245,6 +255,7 @@ function applyZoneType()
var form = document.zone_form;
if ( form.elements['new_zone[Type]'].value == 'Inactive' )
{
form.presetSelector.disabled = true;
form.new_alarm_rgb_r.disabled = true;
form.new_alarm_rgb_g.disabled = true;
form.new_alarm_rgb_b.disabled = true;
@ -264,6 +275,7 @@ function applyZoneType()
}
else if ( form.elements['new_zone[Type]'].value == 'Preclusive' )
{
form.presetSelector.disabled = false;
form.new_alarm_rgb_r.disabled = true;
form.new_alarm_rgb_g.disabled = true;
form.new_alarm_rgb_b.disabled = true;
@ -276,6 +288,7 @@ function applyZoneType()
}
else
{
form.presetSelector.disabled = false;
form.new_alarm_rgb_r.disabled = false;
form.new_alarm_rgb_g.disabled = false;
form.new_alarm_rgb_b.disabled = false;
@ -326,6 +339,83 @@ function applyCheckMethod()
}
}
function applyPreset()
{
var form = document.zone_form;
var preset = form.elements['presetSelector'].options[form.elements['presetSelector'].selectedIndex].value;
if ( preset >= 1 && preset <= 3 )
{
form.elements['new_zone[Units]'].selectedIndex = 1;
form.elements['new_zone[CheckMethod]'].selectedIndex = 0;
form.elements['new_zone[MaxPixelThreshold]'].value = ''
form.elements['new_zone[FilterX]'].value = '';
form.elements['new_zone[FilterY]'].value = '';
form.elements['new_zone[MaxAlarmPixels]'].value = '';
form.elements['new_zone[MinFilterPixels]'].value = '';
form.elements['new_zone[MaxFilterPixels]'].value = '';
form.elements['new_zone[MinBlobPixels]'].value = '';
form.elements['new_zone[MaxBlobPixels]'].value = '';
form.elements['new_zone[MinBlobs]'].value = '';
form.elements['new_zone[MaxBlobs]'].value = '';
if ( preset == 1 )
{
form.elements['new_zone[MinPixelThreshold]'].value = 25;
form.elements['new_zone[MinAlarmPixels]'].value = 20;
}
else if ( preset == 2 )
{
form.elements['new_zone[MinPixelThreshold]'].value = 15;
form.elements['new_zone[MinAlarmPixels]'].value = 10;
}
else if ( preset == 3 )
{
form.elements['new_zone[MinPixelThreshold]'].value = 10;
form.elements['new_zone[MinAlarmPixels]'].value = 5;
}
}
else if ( preset >= 11 && preset <= 13 )
{
form.elements['new_zone[Units]'].selectedIndex = 1;
form.elements['new_zone[CheckMethod]'].selectedIndex = 2;
form.elements['new_zone[MaxPixelThreshold]'].value = ''
form.elements['new_zone[MaxAlarmPixels]'].value = '';
form.elements['new_zone[MaxFilterPixels]'].value = '';
form.elements['new_zone[MaxBlobPixels]'].value = '';
form.elements['new_zone[MinBlobs]'].value = 1;
form.elements['new_zone[MaxBlobs]'].value = '';
if ( preset == 11 )
{
form.elements['new_zone[MinPixelThreshold]'].value = 25;
form.elements['new_zone[FilterX]'].value = 7;
form.elements['new_zone[FilterY]'].value = 7;
form.elements['new_zone[MinAlarmPixels]'].value = 36;
form.elements['new_zone[MinFilterPixels]'].value = 24;
form.elements['new_zone[MinBlobPixels]'].value = 20;
}
else if ( preset == 12 )
{
form.elements['new_zone[MinPixelThreshold]'].value = 15;
form.elements['new_zone[FilterX]'].value = 5;
form.elements['new_zone[FilterY]'].value = 5;
form.elements['new_zone[MinAlarmPixels]'].value = 16;
form.elements['new_zone[MinFilterPixels]'].value = 12;
form.elements['new_zone[MinBlobPixels]'].value = 10;
}
else if ( preset == 13 )
{
form.elements['new_zone[MinPixelThreshold]'].value = 10;
form.elements['new_zone[FilterX]'].value = 3;
form.elements['new_zone[FilterY]'].value = 3;
form.elements['new_zone[MinAlarmPixels]'].value = 8;
form.elements['new_zone[MinFilterPixels]'].value = 6;
form.elements['new_zone[MinBlobPixels]'].value = 5;
}
}
applyCheckMethod();
form.elements['new_zone[TempArea]'].value = 100;
}
function toPixels( field, maxValue )
{
if ( field.value != '' )
@ -338,7 +428,7 @@ function toPercent( field, maxValue )
field.value = Math.round((100*100*field.value)/maxValue)/100;
}
function applyZoneUnits( initial )
function applyZoneUnits()
{
var max_width = <?= $monitor['Width']-1 ?>;
var max_height = <?= $monitor['Height']-1 ?>;
@ -599,7 +689,9 @@ foreach ( getEnumValues( 'Zones', 'Type' ) as $opt_type )
}
?>
</select></td></tr>
<tr><td align="left" class="text"><?= $zmSlangUnits ?></td><td colspan="2" align="left" class="text"><select name="new_zone[Units]" class="form" onchange="applyZoneUnits( false )">
<tr><td align="left" class="text"><?= $zmSlangPreset ?></td><td colspan="2" align="left" class="text"><?= buildSelect( "presetSelector", $presets, array( "onChange"=>"applyPreset()", "onBlur"=>"this.selectedIndex=0" ) ) ?></td></tr>
<tr><td colspan="3"><img src="graphics/spacer.gif" width="1" height="5"></td></tr>
<tr><td align="left" class="text"><?= $zmSlangUnits ?></td><td colspan="2" align="left" class="text"><select name="new_zone[Units]" class="form" onchange="applyZoneUnits()">
<?php
foreach ( getEnumValues( 'Zones', 'Units' ) as $opt_units )
{

View File

@ -604,6 +604,13 @@ $zmSlangZoneMinMaxBlobArea = 'Min/Max Blob Area';
$zmSlangZoneMinMaxBlobs = 'Min/Max Blobs';
$zmSlangZoneMinMaxFiltArea = 'Min/Max Filtered Area';
$zmSlangZoneMinMaxPixelThres = 'Min/Max Pixel Threshold (0-255)';
$zmSlangZonePresetChoose = 'Choose Preset';
$zmSlangZonePresetFastLow = 'Fast, low sensitivity';
$zmSlangZonePresetFastMed = 'Fast, medium sensitivity';
$zmSlangZonePresetFastHigh = 'Fast, high sensitivity';
$zmSlangZonePresetBestLow = 'Best, low sensitivity';
$zmSlangZonePresetBestMed = 'Best, medium sensitivity';
$zmSlangZonePresetBestHigh = 'Best, high sensitivity';
$zmSlangZones = 'Zones';
$zmSlangZone = 'Zone';
$zmSlangZoomIn = 'Zoom In';