diff --git a/web/skins/classic/views/zone.php b/web/skins/classic/views/zone.php index b0dd88508..ba0cb7328 100644 --- a/web/skins/classic/views/zone.php +++ b/web/skins/classic/views/zone.php @@ -18,9 +18,8 @@ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. // -if ( !canView( 'Monitors' ) ) -{ - $view = "error"; +if ( !canView( 'Monitors' ) ) { + $view = 'error'; return; } @@ -34,29 +33,25 @@ $hicolor = '0x00ff00'; // Green $presets = array(); $presetNames = array(); $presetNames[0] = translate('ChoosePreset'); -$sql = "select *, Units-1 as UnitsIndex, CheckMethod-1 as CheckMethodIndex from ZonePresets order by Id asc"; -foreach( dbFetchAll( $sql ) as $preset ) -{ - $presetNames[$preset['Id']] = $preset['Name']; - $presets[] = $preset; +$sql = 'SELECT *, Units-1 AS UnitsIndex, CheckMethod-1 AS CheckMethodIndex FROM ZonePresets ORDER BY Id ASC'; +foreach( dbFetchAll( $sql ) as $preset ) { + $presetNames[$preset['Id']] = $preset['Name']; + $presets[] = $preset; } $optTypes = array(); -foreach ( getEnumValues( 'Zones', 'Type' ) as $optType ) -{ - $optTypes[$optType] = $optType; +foreach ( getEnumValues( 'Zones', 'Type' ) as $optType ) { + $optTypes[$optType] = $optType; } $optUnits = array(); -foreach ( getEnumValues( 'Zones', 'Units' ) as $optUnit ) -{ - $optUnits[$optUnit] = $optUnit; +foreach ( getEnumValues( 'Zones', 'Units' ) as $optUnit ) { + $optUnits[$optUnit] = $optUnit; } $optCheckMethods = array(); -foreach ( getEnumValues( 'Zones', 'CheckMethod' ) as $optCheckMethod ) -{ - $optCheckMethods[$optCheckMethod] = $optCheckMethod; +foreach ( getEnumValues( 'Zones', 'CheckMethod' ) as $optCheckMethod ) { + $optCheckMethods[$optCheckMethod] = $optCheckMethod; } $monitor = new Monitor( $mid ); @@ -66,14 +61,10 @@ $maxX = $monitor->Width()-1; $minY = 0; $maxY = $monitor->Height()-1; -if ( !isset($newZone) ) -{ - if ( $zid > 0 ) - { +if ( !isset($newZone) ) { + if ( $zid > 0 ) { $zone = dbFetchOne( 'SELECT * FROM Zones WHERE MonitorId = ? AND Id=?', NULL, array( $monitor->Id(), $zid ) ); - } - else - { + } else { $zone = array( 'Id' => 0, 'Name' => translate('New'), @@ -104,17 +95,16 @@ if ( !isset($newZone) ) $zone['AreaCoords'] = preg_replace( '/\s+/', ',', $zone['Coords'] ); $newZone = $zone; -} +} # end if new Zone -//if ( !$points ) -//{ - //$points = $zone['Points']; -//} +# Ensure Zone fits within the limits of the Monitor +limitPoints( $newZone['Points'], $minX, $minY, $maxX, $maxY ); ksort( $newZone['Points'], SORT_NUMERIC ); $newZone['Coords'] = pointsToCoords( $newZone['Points'] ); $newZone['Area'] = getPolyArea( $newZone['Points'] ); +$newZone['AreaCoords'] = preg_replace( '/\s+/', ',', $newZone['Coords'] ); $selfIntersecting = isSelfIntersecting( $newZone['Points'] ); $focusWindow = true; @@ -122,7 +112,7 @@ $connkey = generateConnKey(); $streamSrc = ''; $streamMode = ''; # Have to do this here, because the .js.php references somethings figured out when generating the streamHTML -$StreamHTML = getStreamHTML( $monitor, $scale ); +$StreamHTML = getStreamHTML( $monitor, array('scale'=>$scale) ); xhtmlHeaders(__FILE__, translate('Zone') ); ?> @@ -162,7 +152,13 @@ xhtmlHeaders(__FILE__, translate('Zone') ); -  /  /  + + + / + + / + + diff --git a/web/skins/classic/views/zones.php b/web/skins/classic/views/zones.php index ee767acf1..c153d69c2 100644 --- a/web/skins/classic/views/zones.php +++ b/web/skins/classic/views/zones.php @@ -18,23 +18,27 @@ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. // -if ( !canView( 'Monitors' ) ) -{ - $view = "error"; - return; +if ( !canView( 'Monitors' ) ) { + $view = 'error'; + return; } $mid = validInt($_REQUEST['mid']); $monitor = new Monitor( $mid ); +# Width() and Height() are already rotated + $minX = 0; + $maxX = $monitor->Width()-1; + $minY = 0; + $maxY = $monitor->Height()-1; $zones = array(); -foreach( dbFetchAll( 'select * from Zones where MonitorId = ? order by Area desc', NULL, array($mid) ) as $row ) -{ - if ( $row['Points'] = coordsToPoints( $row['Coords'] ) ) - { - $row['AreaCoords'] = preg_replace( '/\s+/', ',', $row['Coords'] ); - $zones[] = $row; - } +foreach( dbFetchAll( 'SELECT * FROM Zones WHERE MonitorId=? ORDER BY Area DESC', NULL, array($mid) ) as $row ) { + $row['Points'] = coordsToPoints( $row['Coords'] ); + + limitPoints( $row['Points'], $minX, $minY, $maxX, $maxY ); + $row['Coords'] = pointsToCoords( $row['Points'] ); + $row['AreaCoords'] = preg_replace( '/\s+/', ',', $row['Coords'] ); + $zones[] = $row; } $connkey = generateConnKey(); @@ -48,21 +52,14 @@ xhtmlHeaders(__FILE__, translate('Zones') );

- - - - - - Sorry, your browser does not support inline SVG -
+
+ disabled="disabled"/> + +
@@ -88,9 +85,18 @@ foreach( $zones as $zone ) ?>
-
- disabled="disabled"/> - +
+ + + + + + Sorry, your browser does not support inline SVG +