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> |
||
|---|---|---|
| .. | ||
| ajax | ||
| api | ||
| css | ||
| fonts | ||
| graphics | ||
| includes | ||
| js | ||
| lang | ||
| skins/classic | ||
| sounds | ||
| vendor | ||
| views | ||
| .editorconfig | ||
| .gitignore | ||
| .travis.yml | ||
| CMakeLists.txt | ||
| README.md | ||
| composer.json | ||
| composer.lock | ||
| index.php | ||
| robots.txt | ||
README.md
Modern ZoneMinder Skin
This web frontend to ZoneMinder is a complete rewrite of the classic frontend, based on CakePHP.