* Add capability to link directly to an event ID in the web UI
* Move event ID to searchParams, add View All button
* Use searchParams inside eventsFetcher
* Refactor event label and sub-label score display in Events.jsx to include the event label and sub-label percentage
* Revert "Refactor event label and sub-label score display in Events.jsx to include the event label and sub-label percentage"
This reverts commit 87c23adf1e.
* Refactor event label and sub label score display in Events component
* Show overlay when hovering on timeline box
* Make it work with mobile too
* Fix lint
* Fix ratio
* Update web/src/components/TimelineEventOverlay.jsx
Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
* Show overlay when hovering on timeline box
* Make it work with mobile too
* Fix lint
* Fix ratio
* Remove label and make overlay respect selected theme
---------
Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
* Load labels dynamically to include custom events and audio, do not include attribute labels
* Formatting
* Fix sorting
* Also filter tracked object list on camera page
* isort
* Don't fail before load
* added timepicker as children to calendar
* new timepicker component
* Add timepicker
* new timePicker component
* timepicker as calendar child
* hover:border and rounded
* adjusted width
* complete rework
* more code comments
* memorization
* preselect hover, transition
* numberOfDaysSelected has minimum of 1
* prefill hours when component mounts
* persist hours when component mount
* accommodate for the new timePicker
* add reset state
* scroll into view
* reuse before, after
* fix LastDayInRange when a time is selected
* do not add hours if before is zero
* use hours instead of days
* useeffect to reset hour. check timerange before scroll
* scroll to last element, not first
* Move to events package
* Improve handling of external events
* Handle external events in the event queue
* Pass in event processor
* Check event json
* Fix json parsing and change defaults
* Fix snapshot saving
* Hide % score when not available
* Correct docs and add json example
* Save event png db
* Adjust image
* Formatting
* Add catch for failure ending event
* Add init to modules
* Fix naming
* Formatting
* Fix http creation
* fix test
* Change to PUT and include response in docs
* Add ability to set bounding box locations in snapshot
* Support multiple box annotations
* Cleanup docs example response
Co-authored-by: Blake Blackshear <blake@frigate.video>
* Cleanup docs wording
Co-authored-by: Blake Blackshear <blake@frigate.video>
* Store full frame for thumbnail
* Formatting
* Set thumbnail height to 175
* Formatting
---------
Co-authored-by: Blake Blackshear <blake@frigate.video>
* Organize event table to be more generalized
* Add appropriate fields to data
* Move tracked object logic to own function
* Add source type to event queue
* rename enum
* Fix types that are used in webUI
* remove redundant
* Formatting
* fix typing
* Rename enum
* Create timeline table
* Fix indexes
* Add other fields
* Adjust schema to be less descriptive
* Handle timeline queue from tracked object data
* Setup timeline queue in events
* Add source id for index
* Add other fields
* Fixes
* Formatting
* Store better data
* Add api with filtering
* Setup basic UI for timeline in events
* Cleanups
* Add recordings snapshot url
* Start working on timeline ui
* Add tooltip with info
* Improve icons
* Fix start time with clip
* Move player logic back to clips
* Make box in timeline relative coordinates
* Make region relative
* Get box overlay working
* Remove overlay when playing again
* Add disclaimer when selecting overlay points
* Add docs for new apis
* Fix mobile
* Fix docs
* Change color of bottom center box
* Fix vscode formatting
* Add config fields
* Clean up camera default values
* Set recordings timezone with config if available
* Adjust for timezone config
* Cleanup setting of the timezone
* Don't fail on MSE check iPad
* Fix MSE check for birdseye
* Add docs
* Fix test
* [API] filter for favorite events
* Added /api/events filter for favorite (retain_indefinitely) events
* New Star button to filter for favorite events on the Events page
* fix python formatting
* keep Events favorite button to right side
* Show All and Solo selection buttons for MultiSelect.
Similar to previous behavior of viewing events for single camera with 1 click, or All.
* Fix visual bug with MultiSelect when selecting similar named options.
eg. options like frontdoor, frontside, backdoor, etc
* fix key prop for lint
* Change MultiSelect onSolo to onSelectSingle
* cosmetic changes on MultiSelect
* Different look for SelectSingle buttons
* Show All button is aligned with the items below it, no matter the popup size
* MultiSelect ShowAll unfocused by default
* Adding clip length in s to Events View
* added function returning human readable length
* switched to date-fns functions for formatting
* fixed switched start/end time, changed length to duration
* Add tabs to show snapshot or thumbnail as part of event details,
even if event has a clip available.
* Add ability for TextTab to render as disabled.
* Use default names so filters are more clear
* Add endpoint to get list of sub labels inside DB
* Fix crash on no internet
* Cleanups for sub_label http
* Add sub label selector to events UI
* Add event filtering for sub label
* Formatting files
* Reduce size of filters to fit on one line
* Add handler for tests
* Remove unused imports
* Only show the sub labels filter when there are sub labels in the DB
* Fix tests
* Use distinct instead of group_by
* Formatting
* Cleanup event logic
* Add sub label to model and set / delete funs
* Add migrations for sub label
* Tweaks to API and model
* Show sublabel if available
* Cleanups
* Update docs
* Show person in UI title
* Fix typo and don't fail on no json
* Transfer sub labels for in progress events
* Remove sublabel reset
* Remove person only check
* Make default null
* Update docs and formatting
* Make default null
* Make nullable in migration
* Undo null
* Update model to accept null
* Update migration to accept null
* Don't set to default values
* Remove redundant defaults and update http logic
* Only need a single route
* Enforce 20 character limit in http
* Update docs to mention 20 character limit
* Cleanup
* Separate insert and update to make sure updated values are retained when event ends
* Use insert instead of replace
* Remove redundant if and have should_update_db include clip or snapshot requirement.
* rearrange event route and splitted into several components
* useIntersectionObserver
* re-arrange
* searchstring improvement
* added xs tailwind breakpoint
* useOuterClick hook
* cleaned up
* removed some video controls for mobile devices
* lint
* moved hooks to global folder
* moved buttons for small devices
* added button groups
Co-authored-by: Bernt Christian Egeland <cbegelan@gmail.com>
* fixed position for Dialog
* added eventId to deleted item
* removed page route redirect + New Close Button
* event component added to events list. New delete reducer
* removed event route
* moved delete reducer to event page
* removed redundant event details
* keep aspect ratio
* keep aspect ratio
* removed old buttons - repositioned to top
* removed console.log
* event view function
* removed clip header
* top position
* centered image if no clips avail
* comments
* linting
* lint
* added scrollIntoView when event has been mounted
* added Clip header
* added scrollIntoView to test
* lint
* useRef to scroll event into view
* removed unused functions
* reverted changes to event.test
* scroll into view
* moved delete reducer
* removed commented code
* styling
* moved close button to right side
* Added new close svg icon
Co-authored-by: Bernt Christian Egeland <cbegelan@gmail.com>