Commit Graph

461 Commits

Author SHA1 Message Date
Isaac Connor
d89f2e59db refactor: rename Janus_Use_RTSP_Restream to Restream
Rename Janus-specific restream fields to be more generic since they are
now used by Go2RTC and RTSP2Web as well:
- Janus_Use_RTSP_Restream → Restream
- Janus_RTSP_User → RTSP_User

Update visibility logic so the Restream checkbox appears when RTSPServer
is enabled AND any streaming service (Janus, Go2RTC, or RTSP2Web) is
selected, rather than only when Janus is enabled.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 18:47:37 -05:00
Isaac Connor
9502c79d91 feat: add motion analysis frame toggle to watch view
Add ability to view motion analysis frames on the watch view, similar
to the existing functionality in the zone edit view. Includes a toggle
button that switches between raw and analysis frames using the existing
MonitorStream.show_analyse_frames() method.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:17:32 -05:00
Isaac Connor
4e60cb96a7 feat: add User Roles feature for reusable permission templates
Add a User Roles system where roles define reusable permission templates.
When a user has a role assigned, the role provides fallback permissions
(user's direct permissions take precedence; role is used when user has 'None').

Database changes:
- Add User_Roles table with same permission fields as Users
- Add Role_Groups_Permissions table for per-role group overrides
- Add Role_Monitors_Permissions table for per-role monitor overrides
- Add RoleId foreign key to Users table

Permission resolution order:
1. User's direct Monitor/Group permissions (if not 'Inherit')
2. Role's Monitor/Group permissions (if user has role)
3. Role's base permission (if user's is 'None')
4. User's base permission (fallback)

Includes:
- PHP models: User_Role, Role_Group_Permission, Role_Monitor_Permission
- Role management UI in Options > Roles tab
- Role selector in user edit form
- REST API endpoints for roles CRUD
- Translation strings for en_gb

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:34:27 -05:00
Ben Dailey
a51b63d072 feat: add PreviewRate translations to all language files
Add 'PreviewRate' translation to 24 language files for the new
Preview Rate dropdown feature on the events page.

Note: Translations were generated via AI and may need review by
native speakers for accuracy.

Languages updated:
- Bosnian, Chinese (Simplified/Traditional/Big5), Czech, Danish
- Dutch, Estonian, French, German, Hebrew, Hungarian, Italian
- Japanese, Norwegian, Polish, Portuguese (BR), Romanian, Russian
- Spanish (ES/LA/AR), Swedish, Turkish

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 17:19:32 -05:00
Ben Dailey
65373ed8d3 feat: add Preview Rate dropdown to events page filter bar
Add a Preview Rate dropdown control that allows users to adjust the
playback speed of thumbnail hover preview videos on the events page.

- Add previewRateHtml() helper method to Filter class
- Add Preview Rate to simple_widget() filter bar with matching term styling
- Add getPreviewRate() and changePreviewRate() JS functions in skin.js
- Add helper functions in _monitor_filters.php for rate options
- Store selected rate in zmPreviewRate cookie (values: 100-1600 for 1x-16x)
- Add PreviewRate translation to en_gb.php
- Add CSS styling for preview rate control

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 16:06:03 -05:00
Isaac Connor
d43de8f3b8 feat: add zmNg mobile app QR code onboarding to user view
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>
2026-01-23 20:15:43 -05:00
Isaac Connor
8864d5759d Merge pull request #4510 from SteveGilvarry/videojs_update
Videojs update
2026-01-10 10:21:50 -05:00
copilot-swe-agent[bot]
b44aafb0ca Add "Any Tag" filter option for events
- Added "Any Tag" entry with value -1 to availableTags in Filter.php (widget and simple_widget methods)
- Added "Any Tag" entry to filter.php view
- Added translation for "Any Tag" in en_gb.php language file
- Implemented SQL logic in FilterTerm.php to handle "Any Tag" (value -1) using EXISTS query
- Implemented SQL logic in Filter.pm (Perl) to handle "Any Tag" (value -1) using EXISTS query

Co-authored-by: connortechnology <925519+connortechnology@users.noreply.github.com>
2026-01-10 14:13:37 +00:00
Claude
aa33332abc Add missing ONVIF field translations to en_gb.php
Add human-readable translations for ONVIF configuration page labels that
were displaying raw field names with underscores instead of proper labels.

Added translations for:
- ONVIF (tab name)
- ONVIF_URL, ONVIF_EVENTS_PATH, ONVIF_Options
- ONVIF_Alarm_Text, ONVIF_Event_Listener
- Username, Password (generic fields used in ONVIF section)
- SOAP WSA COMPLIANCE
2026-01-08 23:19:04 +00:00
Steve Gilvarry
12450b390f Removing object tags as plugins are dead. I think this page still has reasons to exist but none of this code works in modern browsers. Well that is my opinion. 2025-12-31 19:33:54 +11:00
Isaac Connor
9932c1f690 Add missing EncoderHWAccel fields 2025-10-27 09:40:06 -04:00
IgorA100
0bd0e16dca Removed extra line break (ru_ru.php) 2025-09-07 00:11:46 +03:00
IgorA100
f1c2dbb894 Added Russian translation for Help for audio recording to streamline label (ru_ru.php) 2025-09-07 00:09:43 +03:00
Isaac Connor
1dfc577dd7 Add Help for audio recording to streamline label 2025-09-06 11:41:12 -04:00
Isaac Connor
6e280106f2 Add translation for option:router 2025-07-30 11:16:09 -05:00
IgorA100
042496e9f2 The tooltip about player unavailability in <select> on Watch page now uses translation
'PlayerDisabledInMonitorSettings'  => 'The player is disabled in the monitor settings.',
2025-07-25 15:29:25 +03:00
IgorA100
23e287062c Замены:
HighBW => Highband
LowBW => Lowband
MediumBW => Medband
2025-07-15 10:39:39 +03:00
IgorA100
0517d83b05 Update en_gb.php 2025-07-15 00:44:56 +03:00
IgorA100
52e243ecc5 Update ru_ru.php 2025-07-15 00:03:57 +03:00
IgorA100
a77b0cbf3a Update en_gb.php 2025-07-14 23:28:41 +03:00
IgorA100
480c49aee0 Added Russian translation of "Gateway" (ru_ru.php) 2025-05-21 13:06:39 +03:00
Isaac Connor
78785861a7 Use '' instead of 0 for No Tag value. 2025-04-11 11:31:53 -04:00
Isaac Connor
c184e9853d Merge branch 'no_tag_filter' of github.com:Simpler1/ZoneMinder into Simpler1-no_tag_filter 2025-04-11 10:48:17 -04:00
IgorA100
95c4ee1d0f Added translation (ru_ru.php) 2025-03-15 18:31:34 +03:00
IgorA100
01001d2041 Added translation (en_gb.php) 2025-03-15 18:29:35 +03:00
Simpler1
aca3655442 feat(tags): Filter option for No Tag 2025-03-06 12:23:01 -05:00
Aleksanderk123
313442707e Translated language list 2024-12-04 23:35:59 +01:00
Aleksanderk123
5586cae348 Update en_gb.php
Added norwegian language to the list of languages
2024-12-04 23:30:34 +01:00
Aleksanderk123
4c0e037b2f Norwegian Translation 2024-12-04 00:21:35 +01:00
Aleksanderk123
8afdec1cdc Uploaded Partially Norwegian language 2024-12-03 21:55:35 +01:00
Isaac Connor
8a7c7f20f6 Add Turkishtr 2024-10-24 10:00:32 -04:00
Isaac Connor
045756c3fc Remove obsolete ZM_WEB_RESIZE_CONSOLE 2024-10-01 16:29:22 -04:00
DesigNET
19882b0625 Added Japanese translation of placeholders. 2024-09-09 02:10:30 +00:00
DesigNET
2ebdc06405 Update Japanese translation file. 2024-08-30 01:21:04 +00:00
IgorA100
8767bd326a Update ru_ru.php 2024-07-20 13:49:18 +03:00
IgorA100
644b923c87 Update ru_ru.php 2024-07-16 18:57:58 +03:00
IgorA100
0f4e837842 Update ru_ru.php 2024-07-16 18:33:45 +03:00
IgorA100
262d0469b2 Added 'EventsLoading' (en_gb.php) 2024-07-16 18:19:12 +03:00
IgorA100
08dcdb54b4 Added "TooManyEventsForTimeline" (en_gb.php) 2024-07-16 18:14:32 +03:00
IgorA100
8e07e016a1 Update ru_ru.php 2024-07-16 18:09:32 +03:00
IgorA100
d8fbce378a Update ru_ru.php 2024-07-16 18:06:01 +03:00
IgorA100
c6d8267420 Update ru_ru.php 2024-07-16 17:42:44 +03:00
Shobu UMEMURA
2525ef7641 Update charset header in ja_jp.php from Shift_JIS to UTF-8
Given that most Japanese servers now use UTF-8, it makes sense to set UTF-8 as the default charset.
2024-06-28 18:09:55 +09:00
IgorA100
761291cc13 Added translation "ConfirmDeleteLayout" (fr_fr.php) 2024-05-19 20:08:58 +03:00
IgorA100
eba27834e4 Added translation 'ConfirmDeleteLayout' (ru_ru.php)
'ConfirmDeleteLayout'  => 'Вы действительно хотите удалить текущий шаблон?',
2024-05-19 20:06:00 +03:00
IgorA100
7b8ef3e1d2 Added translation "ConfirmDeleteLayout" (en_gb.php)
'ConfirmDeleteLayout'   => 'Are you sure you wish to delete current layout?',
2024-05-19 19:59:54 +03:00
IgorA100
af0aa91774 Added translation for "BadPreEventCountMaxImageBufferCount" (ru_ru.php) 2024-05-14 17:31:28 +03:00
Isaac Connor
007f0e29b4 When editing buffer settings, ensure that MaxImageBuffers > PreEventCount. 2024-05-14 10:03:20 -04:00
IgorA100
9095c9d3af Added translation "ConfirmUnarchiveEvents" (ru_ru.php) 2024-05-12 00:51:15 +03:00
Isaac Connor
a64115fe21 Add popup with confirm and chunked unarchiving. 2024-05-10 13:03:08 -04:00