Commit Graph

85 Commits

Author SHA1 Message Date
Ben Dailey
fd5bd63808 feat: add status bar to thumbnail overlay with LIVE indicator and wall clock time
- Add status bar below video with LIVE indicator for live streams
- Show pulsing red dot animation for live streams
- Display wall clock time that updates as recorded video plays
- Add event start time data attribute to console and events pages
- Hide status bar when no content to display

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 21:09:57 -05:00
Ben Dailey
8d655af63f feat: replace in-place thumbnail zoom with centered overlay popout
Thumbnail hover now creates a separate overlay element centered
on-screen instead of transforming the original thumbnail in place.
The overlay shows the cached still image as a background for instant
display, with the stream or video layered on top.

When an event has an mp4 file (DefaultVideo), the overlay uses a
<video> tag at 5x playback speed for smooth hardware-decoded
playback. Falls back to MJPEG <img> stream with scale=32 when
no mp4 is available. On mouseout the stream/video connection is
explicitly stopped before the overlay is removed.

Removes the old .zoom/.zoom-console CSS classes and the console
overflow workarounds that were needed for the in-place approach.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 17:12:25 -05:00
Isaac Connor
1ac5e0ddc1 Add footer to the events table with sum of diskspace and duration in it. 2026-01-22 22:17:42 -05:00
Simpler1
3a0d8d7c8f Fix(tags): "No Tag" filter now works properly. 2025-12-08 15:09:01 -05:00
Isaac Connor
7f9cde76b5 More gracefully handle NaN so that hopefully the real error won't get lost in the noise 2025-06-19 17:03:38 -04:00
Isaac Connor
d42040d7c3 Add grouping by Monitor. Apparently mysql is complaining about not having it now. 2024-11-27 13:54:24 -05:00
Isaac Connor
0f722c11fc Notes can be null and should not be passed to htmlspecialchars 2024-09-06 15:00:46 -04:00
Simpler1
b166fdb840 fix(): Comment debug statement 2024-04-10 15:21:59 -04:00
Simpler1
ebf1e8b1cc Fix(filter): Set tags operator to = instead of LIKE 2024-04-10 15:14:36 -04:00
Isaac Connor
ef926f4437 Return an array of string error messages instead of an array of arrays of arrays in deleting events. 2024-01-18 13:15:25 -05:00
Isaac Connor
ea3d91b46f Actually fix problem by not putting () on an integer has-post_sql_conditions 2023-12-14 09:32:32 -05:00
Isaac Connor
d910585ed9 Be a little more specific about what we are int'ing. https://forums.zoneminder.com/viewtopic.php?t=32942 has a weird error report that this might address 2023-12-13 19:39:11 -05:00
Isaac Connor
8e0793f5e7 Do not format StartDateTime and EndDateTime in ajax events results. Do the formatting in js. 2023-11-16 10:34:43 -05:00
Isaac Connor
f4d69d524a Undo the extreme splitting up of the SQL so that it is a little less multiple-liney. Hopefully may fix the lack of white space issue reported in forums. 2023-10-25 09:40:14 -04:00
Isaac Connor
48b5960fac Can't copy by ref, the limit will affect unfiltered as well 2023-10-17 14:57:57 -04:00
Isaac Connor
c06f32fd67 Only load event OBject and test post_sql_conditions if the filter has any. Save a little processing. Copy unfiltered rows by reference. 2023-10-16 12:04:14 -04:00
Isaac Connor
51500d494f Add group by when doing advnaced search 2023-09-26 15:15:47 -04:00
Isaac Connor
1fdf7f2b31 Remove debug 2023-09-25 16:32:01 -04:00
Isaac Connor
f8c89a0405 Merge branch 'master' into tags 2023-09-14 16:42:06 -04:00
Isaac Connor
e353523073 Fix int()=>(int) causing events to not load 2023-09-12 09:07:46 -04:00
Isaac Connor
a13c9c06f2 Handle when filter limit is '0' 2023-09-09 12:38:47 -04:00
Simpler1
18d74ed7ac (feat): Tags
fix(tag): Create tags on mobile

chore(tags): Change TagName to Name

chore(tags): eslint

chore(tags): dbFetchAll to dbQuery for removetag

chore(events): eslint (attempt 2)

feat(tags): Better handling of keyboard

fix(tags): Enter key for creating new tag

fix(tags): Don't allow space as a tag name

feat(tags): Delete tag if last assignment removed

fix(tags): Increase height of dropdown

in progress

fix(Tags): Use T.Id on the events page dropdown

fix(Tags): Remove $availableTags from events.php

chore(sql): Formatting sql statements

feat(Tags): Working OR on filters and events pages

fix(filter): Populate availableTags

chore(Tags): code formatting

fix(tag): Add tag on create tag

Fix(tags): Remove tag from available if last

feat(tags): Add zm_update.sql

fix(chosen): Undo css width

fix(chosen): tags dropdown width

fix(tags): dropdown over timeline

fix(tags): Full width input

fix(events): Refresh table on page show

chore(filter): Clean up availableTags

chore(event): Clean up available & selected Tags

fix(event): Update available tags on remove

fix(event): Remove hack for selected tags

feat(tags): Blur input after adding tag

doc(tags): Initial tags documentation

fix(tags): Dark theme dropdown

fix(tags): Dark theme for tags on input

fix(tags): Dark theme for highlight in dropdown

fix(tags): Populate filter tags droplist

chore(): Bump zm_update to 1.37.42

chore(tags): Move mobile check to skin.js

chore(tags): Comment debug statements

fix(tags): Enter key to create tag on mobile Chome

chore(tags): Space in 'All Tags' for translation

Temporary commit to handle cookie expiration times

chore(tags): Remove unnecessary Tag(s) from en_gb

chore(): Cleanup unnecessary Error and Debug

chore(): Resolve merge conflicts

chore(): Address merge conflicts with master
2023-08-31 15:50:08 -04:00
Isaac Connor
3436999665 Populate EndTime when NULL. Deal with case insensitive LIKE searching 2023-05-12 15:13:48 -04:00
Isaac Connor
0f847f87f8 put event thumbnail in a div with fixed height to fix zoomed image going absolute 2023-04-27 13:46:41 -04:00
Isaac Connor
e7f44f2776 fix logic to use count on unviewableMonitorIds 2023-04-23 13:26:03 -04:00
Isaac Connor
969baa3891 Convert user from an array to a User object 2023-04-23 12:57:29 -04:00
Isaac Connor
d1543f7dd9 Fix missing ) 2023-04-22 09:37:53 -04:00
Isaac Connor
6a2d28d92f If Monitor is deleted, don't show event 2023-04-19 18:56:19 -04:00
Isaac Connor
b7d5b53d67 Add handling of StartDateTime,EndDateTime,MonitorId as specific filters 2022-12-07 12:36:05 -05:00
Isaac Connor
d583c10fa6 Return events when limit is > the # of events returned 2022-11-03 17:48:39 -04:00
Isaac Connor
e1581b6be6 db limits should not be affected by pre-conditions, so include the limit regardless of pre-sql-conditions. 2022-07-29 13:59:01 -04:00
Isaac Connor
baebdb277e Only return error messages, not a bunch of empty arrays 2022-06-06 13:09:41 -04:00
Isaac Connor
d3b1ede73a Use dateTimeFOrmatter to format the date/time on events 2022-06-01 15:46:18 -04:00
Isaac Connor
da0483f3e7 Use global dateFormatter to format time in ajax events response. Don't format Length as it loses precision. Let javascript side do it. Turn off error_reporting in the output as it breaks the json 2022-06-01 13:32:32 -04:00
Isaac Connor
01ab1c2535 Fix errors when sorting by EndDateTime. 2022-04-13 17:18:59 -04:00
Ben Dailey
ce267c7e3c Most programmatic images are lazy. 2022-02-22 08:31:02 -05:00
Isaac Connor
31eff49a46 Implement filter limits. Which go before pagination/advanced search limits 2022-02-02 10:49:05 -05:00
Isaac Connor
6511dc8a4f Allow empty sort field. 2021-12-13 15:00:35 -05:00
Isaac Connor
9036728bdc Report error if sql fails. Add check for access to specific event. 2021-11-12 15:11:48 -05:00
Isaac Connor
3208059040 Fix event listing when not paginated. 2021-11-02 17:24:05 -04:00
SzymekCRX
2bcad7bf5e Critical bug in events.php
Two extra brackets causes fatal error in Ajax request causing 500 HTTP error and problems with listing / deleting events
2021-10-28 07:43:44 +02:00
Isaac Connor
8afed25d18 Use filter->sort_asc and sort_field which will use either the value specified in query, or defaults set in system. url params order and sort will override. 2021-10-25 12:34:28 -04:00
Isaac Connor
29fb2d3885 Add special handling of sorting by EndTime because it can be NULL. Fixes #3298 2021-06-15 10:34:33 -04:00
Isaac Connor
50af7f25b8 Use less memory in event querying. More work to do here 2021-01-16 13:17:46 -05:00
Isaac Connor
84c7a117f5 Use width and height attrs instead of css for rendering speed. Also alt doesn't need validHtmlStr because Event.Id will have no weird characters 2020-12-08 11:26:43 -05:00
Isaac Connor
c156731f0b Allow users with canView Events to view event list. Don't allow unarchive or delete if they don't have canEdit 2020-12-08 10:33:25 -05:00
Andrew Bauer
f88d721ae3 fix issue with events view and ALL pagination 2020-11-14 10:27:33 -06:00
Andrew Bauer
c0225a35aa use different variable assignment for clarity 2020-11-13 07:24:17 -06:00
Isaac Connor
7b8ee6af9f Rework code to use Filter methods to generate advanced search functionality. Reduces sql queries to 1 or 2, using count() to populate [total] and [totalNotFiltered]. Does pagination using array_splice instead of SQL queries. Will use more ram, but reduces db load. 2020-11-05 12:20:49 -05:00
Isaac Connor
b17fa8f9c1 Rename StartTime, EndTime in Events to StartDateTime and EndDateTime 2020-11-04 13:58:03 -05:00