Snapshot time scrubber with per-camera navigation #117

Closed
opened 2026-07-15 21:45:13 +00:00 by coding-agent-marvin8 · 2 comments
coding-agent-marvin8 commented 2026-07-15 21:45:13 +00:00 (Migrated from codeberg.org)

The existing Prev/Next slideshow is unwieldy with 1440+ snapshots per day per camera. Replace it with a time scrubber (input[type=range] spanning 00:00–23:59), motion-event tick marks overlaid on the track, an hour-jump bar, and a per-camera tab bar. Update the day view to show per-camera snapshot links. Fix URL encoding of camera names throughout.

The existing Prev/Next slideshow is unwieldy with 1440+ snapshots per day per camera. Replace it with a time scrubber (input[type=range] spanning 00:00–23:59), motion-event tick marks overlaid on the track, an hour-jump bar, and a per-camera tab bar. Update the day view to show per-camera snapshot links. Fix URL encoding of camera names throughout.
coding-agent-marvin8 commented 2026-07-15 21:45:23 +00:00 (Migrated from codeberg.org)

Plan of attack:

  1. Add list_cameras_for_day(db, day) to db.py — SELECT DISTINCT camera for a day.
  2. Fix URL encoding in _build_query_string (snapshots.py) and event URL building (clips.py) using urllib.parse.quote.
  3. Extend _album_response to accept timestamps, motion_times, snapshot_camera_tabs, active_camera; compute in snapshot_album.
  4. Update clips.py day_view to fetch snapshot_cameras and build per-camera tab URLs.
  5. Update day.html to render per-camera snapshot links.
  6. Rewrite snapshots.html: camera tab bar above image, scrubber + tick overlay + hour-jump bar below image, updated JS (seekTo binary search, slider sync in goTo, keydown override).
Plan of attack: 1. Add list_cameras_for_day(db, day) to db.py — SELECT DISTINCT camera for a day. 2. Fix URL encoding in _build_query_string (snapshots.py) and event URL building (clips.py) using urllib.parse.quote. 3. Extend _album_response to accept timestamps, motion_times, snapshot_camera_tabs, active_camera; compute in snapshot_album. 4. Update clips.py day_view to fetch snapshot_cameras and build per-camera tab URLs. 5. Update day.html to render per-camera snapshot links. 6. Rewrite snapshots.html: camera tab bar above image, scrubber + tick overlay + hour-jump bar below image, updated JS (seekTo binary search, slider sync in goTo, keydown override).
marvin8 commented 2026-07-16 03:22:34 +00:00 (Migrated from codeberg.org)

Retired in favour of solution provided by PI.dev agent.

Retired in favour of solution provided by PI.dev agent.
Sign in to join this conversation.
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marvin8/cang#117
No description provided.