- Fix undefined $saddr variable in ZMServer package by using
sockaddr_un(main::SOCK_FILE) directly
- Fix hash in scalar context that returned bucket ratio instead of
count, use scalar(keys %terminating_processes)
- Replace die calls with Fatal() for consistent error handling
- Change confusing keepalive=>!undef idiom to keepalive=>1
- Remove unused $win and $ein variables
- Fix typo in comment: processess -> processes
- Add explicit $main:: package qualifier for daemon_patt variable
- Add 30-second timeout when reading server response to prevent
client from hanging indefinitely
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Allow comma-separated Event IDs when querying tags, e.g.:
/api/tags/index/Events.Id:123,456,789.json
This converts the comma-separated string to an integer array,
enabling a SQL IN clause for efficient multi-event tag retrieval.
Fixes#4567
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Center-align QR code as focal point
- Add subtle box shadow and border radius to QR container
- Use compact inline form for optional password field
- Auto-generate QR code on page load, regenerate on password input
- Remove collapsed section, always show QR code
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add QR code generation feature to the user edit page that allows
administrators to quickly set up users in the zmNg mobile app.
- Add qrcode.min.js library for client-side QR code generation
- Add collapsible QR code section to user.php view
- Generate QR codes with zmNg-compatible JSON format containing
profile name, portal URL, username, and password
- Profile name uses ZM_WEB_TITLE or ZM_HOME_URL if customized,
otherwise defaults to 'ZoneMinder'
- Only visible when API is enabled and user has API access
- Add translation strings for new UI elements
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>