* add prev/next buttons on desktop
* buttons should work with summary and grid view
* i18n
* small tweaks
* don't change dialog size
* remove heading and count
* remove icons
* spacing
* two column detail view
* add actions to dots menu
* move actions menu to its own component
* set modal to false on face library dropdown to guard against improper closures
https://github.com/shadcn-ui/ui/discussions/6908
* frigate plus layout
* remove face training
* clean up unused
* refactor to remove duplication between mobile and desktop
* turn annotation settings into a popover
* fix popover
* improve annotation offset popver
* change icon and popover text in detail stream for annotation settings
* clean up
* use drawer on mobile
* fix setter function
* use dialog ref for popover portal
* don't portal popover
* tweaks
* add button type
* lower xl max width
* fixes
* justify
* add blurred icon button component
* apply component to explore, face, and classification views
* apply to exports and fix bug where play button was unclickable
* match face wizard with camera and classification wizards
* remove review detail dialog and link chip to detail stream in history
* remove footer on explore images and move to overlay
* use consistent overlay button styles
* spacing tweak
* ensure selected ring stays on top of gradients
* fix z-index
* match object lifecycle with details
* Add cutoff for object classification
* Add selector for classifiction model type
* Improve model selection view
* Clean up design of classification card
* Tweaks
* Adjust button colors
* Improvements to gradients and making face library consistent
* Add basic classification model wizard
* Use relative coordinates
* Properly get resolution
* Clean up exports
* Cleanup
* Cleanup
* Update to use pre-defined component for image shadow
* Refactor image grouping
* Clean up mobile
* Clean up decision logic
* Remove max check on classification objects
* Increase default number of faces shown
* Cleanup
* Improve mobile layout
* Clenaup
* Update vocabulary
* Fix layout
* Fix page
* Cleanup
* Choose last item for unknown objects
* Move explore button
* Cleanup grid
* Cleanup classification
* Cleanup grid
* Cleanup
* Set transparency
* Set unknown
* Don't filter all configs
* Check length
* Refactor face card into generic classification card
* Update classification data card to use classification card
* Refactor state training grid to use classification card
* Refactor grouped face card into generic component
* Combine classification objects by event
* Fixup
* Cleanup
* Cleanup
* Do not fail if a single event is not found
* Save original frame
* Cleanup
* Undo
* Make keyboard shortcuts consistent
* Cleanup
* Refactor prevent default to not require separate input
* Fix
* Implement escape for reviews
* Implement escape for explore
* Send content ref to get page changes for free
Because the "a" key is used by the keyboard listener for select all, this would prevent it from being used in the tracked object details pane. This change mimics what is already done in Explore.
* semantic trigger test
* database and model
* config
* embeddings maintainer and trigger post-processor
* api to create, edit, delete triggers
* frontend and i18n keys
* use thumbnail and description for trigger types
* image picker tweaks
* initial sync
* thumbnail file management
* clean up logs and use saved thumbnail on frontend
* publish mqtt messages
* webpush changes to enable trigger notifications
* add enabled switch
* add triggers from explore
* renaming and deletion fixes
* fix typing
* UI updates and add last triggering event time and link
* log exception instead of return in endpoint
* highlight entry in UI when triggered
* save and delete thumbnails directly
* remove alert action for now and add descriptions
* tweaks
* clean up
* fix types
* docs
* docs tweaks
* docs
* reuse enum
* improve spacing of face selection in mobile drawer
* fix spacing
* sort face names alphabetically
* Improve face selection dialog
* Use a state to track when face image loads
The naturalWidth and naturalHeight will always be 0 until the image loads. So we use onLoad and a state to track loading and then calculate the area after it has loaded
* Verify that a camera only tracks objects that are possible to track
* Fix test
* genai docs tweak
* Disable openvino model cache
* Clenaup
* Sanitize floats for estimated speed and angle
Users can configure speed zones in such a way that velocity estimates from Norfair cause a value of inf to be stored as an estimated speed. FastAPI doesn't serialize inf as a float, so trying to return this value would result in an API error. Sanitizing the value before storing should correct this.
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Add Thai (still need to merge weblate)
* Apply attribute logic to all label types
* Fix area check
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Add option to not trim clip
* Improve API
* Update snapshot for new best objects
* Fix missing strings
* Convert to separate key
* Always include bounding box on snapshots
* improve autotracking relative zooming time calculation
* update proxy docs to note the need for comma separated header roles
* Add count translation
* tracked object lifecycle i18n fix
* update speed estimation docs
* clarity
* Re-initialize onvif information when toggling camera on live view
* Move time ago to card info and add face area
* Clarify face recognition docs
* Increase minimum face recognition area
* use clipFrom to in vod module endpoint to start at the correct time
* Cleanup media api
* Don't change duration
* Use search detail dialog for face library
* Move to segment based
* Cleanup
* Add back duration modification
* clean up docs
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Catch error and show toast when failing to delete review items
* i18n keys
* add link to speed estimation docs in zone edit pane
* Implement reset of tracked object update for each camera
* Cleanup
* register mqtt callbacks for toggling alerts and detections
* clarify snapshots docs
* clarify semantic search reindexing
* add ukrainian
* adjust date granularity for last recording time
The api endpoint only returns granularity down to the day
* Add amd hardware
* fix crash in face library on initial start after enabling
* Fix recordings view for mobile landscape
The events view incorrectly was displaying two columns on landscape view and it only took up 20% of the screen width. Additionally, in landscape view the timeline was too wide (especially on iPads of various screen sizes) and would overlap the main video
* face rec overfitting instructions
* Clarify
* face docs
* clarify
* clarify
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* face library i18n fixes
* face library i18n fixes
* add ability to use ctrl/cmd S to save in the config editor
* Use datetime as ID
* Update metrics inference speed to start with 0 ms
* fix android formatted thumbnail
* ensure role is comma separated and stripped correctly
* improve face library deletion
- add a confirmation dialog
- add ability to select all / delete faces in collections
* Implement lazy loading for video previews
* Force GPU for large embedding model
* GPU is required
* settings i18n fixes
* Don't delete train tab
* webpush debugging logs
* Fix incorrectly copying zones
* copy path data
* Ensure that cache dir exists for Frigate+
* face docs update
* Add description to upload image step to clarify the image
* Clean up
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* fix onvif reinitialization
* api docs: clarify usage of clip.mp4 endpoint
* Always show train tab
* Add description to API
* catch lpr model inference exceptions
* always apply motion mask when using yolov9 plate detection
* lpr faq
* fix incorrect focus when reopening search detail dialog on video tab
* only use keyboard listener in face library when train tab is active
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Add ability to select attributes for object masks
This feature already works correctly on the backend. This just adds the ability to select attributes through the UI.
* Add clarity to LPR docs about timestamps
* fix sub label score and add info popover
* ensure portrait cams are contained in dialog
* always show rename and delete buttons on mobile and tablet
without a group-hover state, a double-tap was required to select a face from the dropdown
* install date-fns-tz
* add date locale hook
* refactor formatUnixTimestampToDateTime
Use date-fns style instead of using strftime. This requires changing the i18n keys to the way date-fns represents dates (eg: "MMM d, h:mm:ss aaa" instead of "%b %-d, %H:%M"
* refactor calendar to use new hook
* fix useFormattedTimestamp to use new formatUnixTimestampToDateTime date_format
* change i18n keys to new format
* fix timeline
* fix review
* fix explore
* fix metrics
* fix notifications
* fix face library
* clean up
* Use mobile drawer for face selection
* Convert face selection to separate component
* Cleanup dialogs
* Add FAQ for record resolution
* Update image name
* Remove unused
* Cleanup
* Section faces by event id
* Make score keeping more robust
* layout improvements
* Cleanup dialog
* Fix clicking behavior
* Add view in explore option
* math.round
* Don't require events
* Cleanup
* Remove selection
* Don't require
* Change dialog size with snapshot
* Use filename as key
* fix key
* Rework layout for mobile
* Handle mobile landscape
* Fix train issue
* Match logic
* Move deletion logic
* Fix reprocessing
* Support creating a new face
* Translations
* Do sorting in frontend
* Adjust unknown
* Cleanup
* Set max limit to faces to recognize
* Fix sorting
* Fix
* Increase frequency of updates when internal face detection is used
* Adjust number of required faces based on detection type
* Adjust min_score config to unknown_score
* Only for person
* Improve typing
* Update face rec docs
* Cleanup ui colors
* Cleanup
* Ensure doesn't fail due to missing dir
* Remove redundant settings from tabs
* Adjust selection method for mobile
* Fix button descendent error
* Ensure train is option on mobile
* Cleanup face images
* Cleanup
* Set maximum number of face images to be kept
* Fix vertical camera scaling
* adjust wording
* Add attributes to search data
* Add button to train face from event
* Handle event id saving in API
* Fix login page
* Increase face image size and add time ago
* Add component for indicating steps in a wizard
* Split out form inputs from dialog
* Add wizard for adding new face to library
* Simplify dialog
* Translations
* Fix scaling bug
* Fix key missing
* Improve multi select
* Adjust wording and spacing
* Add tip for face training
* Fix padding
* Remove text for buttons on mobile
* db migration
* db model
* assign admin role on password reset
* add role to jwt and api responses
* don't restrict api access for admins yet
* use json response
* frontend auth context
* update auth form for profile endpoint
* add access denied page
* add protected routes
* auth hook
* dialogs
* user settings view
* restrict viewer access to settings
* restrict camera functions for viewer role
* add password dialog to account menu
* spacing tweak
* migrator default to admin
* escape quotes in migrator
* ui tweaks
* tweaks
* colors
* colors
* fix merge conflict
* fix icons
* add api layer enforcement
* ui tweaks
* fix error message
* debug
* clean up
* remove print
* guard apis for admin only
* fix tests
* fix review tests
* use correct error responses from api in toasts
* add role to account menu
* Get stats for embeddings inferences
* cleanup embeddings inferences
* Enable UI for feature metrics
* Change threshold
* Fix check
* Update python for actions
* Set python version
* Ignore type for now
* Support downloading face models
* Handle download and loading correctly
* Add face dir creation
* Fix error
* Fix
* Formatting
* Move upload to button
* Show number of faces in library for each name
* Add text color for score
* Cleanup