zoneminder/web
Isaac Connor 29d371313a fix: store zone thresholds as percentages and convert to pixels at runtime
Zone threshold fields (MinAlarmPixels, MaxAlarmPixels, MinFilterPixels,
MaxFilterPixels, MinBlobPixels, MaxBlobPixels) were being corrupted on
every save because the PHP conversion used monitor pixel area instead of
zone pixel area. This caused values to inflate progressively, breaking
motion detection.

The fix changes the storage model: thresholds are now stored as
percentages of zone area (DECIMAL(7,2) columns) matching the percentage
coordinate system from zm_update-1.39.2. The C++ Zone::Load() converts
percentages to pixel counts at runtime using polygon.Area(). Legacy
pixel-coordinate zones pass through unchanged.

JS changes:
- submitForm() converts to percentages when in Pixels display mode
- Init skips applyZoneUnits() since DB values are already percentages
- limitRange() only updates field.value when constrained value differs,
  preventing oninput from stripping decimal points mid-keystroke

fixes #4690

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:16:56 -04:00
..
ajax fix: harden web interface against injection and SSRF vulnerabilities 2026-03-08 23:30:49 -04:00
api fix: harden web interface against injection and SSRF vulnerabilities 2026-03-08 23:30:49 -04:00
css
fonts
graphics
includes fix: store zone thresholds as percentages and convert to pixels at runtime 2026-03-09 17:16:56 -04:00
js fix: sync analysis button state with zms-reported analysis image status 2026-03-08 16:46:25 -04:00
lang Merge pull request #4689 from Simpler1/clear_logs 2026-03-07 17:17:02 -05:00
skins/classic fix: store zone thresholds as percentages and convert to pixels at runtime 2026-03-09 17:16:56 -04:00
sounds feat(): Custom snapp.ogg sound for ZoneMinder 2024-03-02 10:15:44 -05:00
vendor
views fix: harden web interface against injection and SSRF vulnerabilities 2026-03-08 23:30:49 -04:00
.editorconfig
.gitignore
.travis.yml
CMakeLists.txt Install the web/sounds directory 2025-03-03 13:49:14 -05:00
README.md
composer.json build(deps): bump firebase/php-jwt from 6.0.0 to 7.0.0 in /web 2026-02-23 18:16:55 -05:00
composer.lock build(deps): bump firebase/php-jwt from 6.0.0 to 7.0.0 in /web 2026-02-23 18:16:55 -05:00
index.php Correction as recommended by "copilot" (index.php) 2026-03-04 18:11:11 +03:00
robots.txt

README.md

Modern ZoneMinder Skin

This web frontend to ZoneMinder is a complete rewrite of the classic frontend, based on CakePHP.