Commit Graph

378 Commits

Author SHA1 Message Date
Nicolas Mowen
581c2591ae
Use library to handle copying to clipboard (#4989)
* Use library to handle copying

* Typo
2023-01-10 06:23:04 -06:00
Nicolas Mowen
ebef38e408
Fix href for cameras direct link (#4875) 2023-01-03 19:32:56 -06:00
Nicolas Mowen
b6592c67d1
Add None option to zones & sub labels (#4886)
* Add None option to zones

* Catch blank sub labels too
2023-01-03 19:29:25 -06:00
Nicolas Mowen
760d65b214
Don't fail to load when cameras stats are not available (#4877) 2023-01-03 19:23:56 -06:00
spacebares
f4991b46f8
[API] filter for favorite events (#4737)
* [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
2022-12-31 08:56:30 -06:00
Nicolas Mowen
ff56262c6e
Add ability to restream birdseye (#4761)
* Try using RTSP for restream

* Add ability to get snapshot of birdseye when birdseye restream is enabled

* Write to pipe instead of encoding mpeg1

* Write to cache instead

* Use const for location

* Formatting

* Add hardware encoding for birdseye based on ffmpeg preset

* Provide framerate

* Adjust args

* Fix order

* Delete pipe file if it exists

* Cleanup spacing

* Fix spacing
2022-12-31 08:54:10 -06:00
Nicolas Mowen
e3ec292528
Fix config missing (#4825) 2022-12-30 09:52:10 -06:00
Jonathan Zhang
ffd637cc0c
fix: handle multi-word timezones (#4816) 2022-12-30 08:34:01 -06:00
Nicolas Mowen
6e519e0071
Fix error when saving the config unsuccessfully (#4780) 2022-12-29 10:37:04 -06:00
Nicolas Mowen
f3e0ced1cd
Frontend Player Fixes (#4778)
* Fix Firefox WebRTC support

* Set max size for birdseye
2022-12-29 10:36:13 -06:00
Nicolas Mowen
c85df9c691
Fix MSE Issues (#4725)
* Don't close mse when pausing video

* Add message about MSE on iOS
2022-12-17 17:56:26 -06:00
Nicolas Mowen
7953d131ae
Fix monaco editor issues (#4724)
* Add sub filter for monaco editor

* Don't include files for unused languages

* Move necessary files and cleanup build

* Update sub filter for new location

* Still need to include default editor worker

* Fix error when model already exists
2022-12-17 17:55:41 -06:00
spacebares
c6f0abf732
Show All and Solo selection buttons for MultiSelect. (#4723)
* 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
2022-12-17 17:54:54 -06:00
Nicolas Mowen
369299315f
Optimize nginx & recordings (#4688)
* Add segment duration metadata

* Use faststart only for kept segments

* Add more options for performance

* Build nginx locally

* Build nginx in dockerfile and enable threaded vod handling

* Use DASH instead of hls

* Allow player to continue on error

* Undo DASH change

* Fix typo

* Correct log

* Fix bad comments

* Fix indentation

* Preload stream

* remove unused

* Fix spacing

* Fix tabs / sspaces

* Retab

* More cleanup
2022-12-17 17:53:34 -06:00
Nicolas Mowen
43c2761308
System page improvements (#4707)
* Catch case where camera is disabled

* Add ffprobe timeout and catch case where camera is disabled
2022-12-14 17:20:47 -06:00
Nicolas Mowen
b1ec56de29
Add multiselect filtering to events view (#3367) 2022-12-12 06:30:34 -06:00
Nicolas Mowen
45c43d7cf5
UI Cleanup & Optimization (#4673)
* Use prewrap so vainfo output appears normalized

* Move copy button to top so user doesn't need to scroll to copy logs

* Show calculating if no value for stream bandwidth
2022-12-12 06:28:44 -06:00
Nicolas Mowen
037f3761e7
Use UTC for recordings (#4656)
* Write files in UTC and update folder structure to not conflict

* Add timezone arg for events summary

* Fixes for timezone in calls

* Use timezone for recording and recordings summary endpoints

* Fix sqlite parsing

* Fix sqlite parsing

* Fix recordings summary with timezone

* Fix

* Formatting

* Add pytz

* Fix default timezone

* Add note about times being displayed in localtime

* Improve timezone wording and show actual timezone

* Add alternate endpoint to cover existing usecase to avoid breaking change

* Formatting
2022-12-11 07:45:32 -06:00
Nicolas Mowen
964bcc0733
Logs in UI (#4562)
* Log all services to RAM

* Gracefully handle shutdown

* Add logs route

* Remove tail

* Return logs for services

* Display log chooser with copy button

* show logs for specific services

* Clean up settings logs

* Add copy functionality to logs

* Add copy functionality to logs

* Fix merge

* Set archive count to 0

Co-authored-by: Felipe Santos <felipecassiors@gmail.com>
2022-12-08 20:15:00 -06:00
Nicolas Mowen
4f79ca1bf0
Fix ffprobe with special characters (#4646)
* Clean path from scpecial characters before running ffprobe

* Fix camera paths
2022-12-08 19:02:11 -06:00
Nicolas Mowen
6abc0ce921
Cleanup names in webUI (#4607)
* Fix _ in labels

* Capitalize camera names in system

* Update storage to link to cameras and share name styling with rest of ui
2022-12-07 07:37:45 -06:00
Nicolas Mowen
7888059c9f
Add config editor to webUI (#4608)
* Add raw config endpoint

* Add config editor

* Add code editor

* Add error

* Add ability to copy config

* Only show the save button when code has been edited

* Update errors

* Remove debug config from system page

* Break out config saving steps to pinpoint where error occurred.

* Show correct config errors

* Switch to monaco editor

* Adjust UI colors and behavior

* Get yaml validation working

* Set success color
2022-12-07 07:36:56 -06:00
Nicolas Mowen
2651bc18cd
Set max height so vainfo doesn't overflow (#4598) 2022-12-06 22:13:48 -06:00
Nicolas Mowen
5ad391977e
FEAT: Storage API & Frontend (#3409)
* Get storage output stats for each camera

* Add storage route

* Add storage route

* Add storage page

* Cleanup

* Add stats and show more storage

* Add tests for mb abbrev util fun

* Rewrite storage logic to use storage maintainer and segment sizes

* Include storage maintainer for http

* Use correct format

* Remove utils

* Fix tests

* Remove total from equation

* Multiply by 100 to get percent

* Add basic storage info

* Fix storage stats

* Fix endpoint and ui

* Fix formatting
2022-11-29 19:59:56 -06:00
Nicolas Mowen
aaedd24f37
Add GPU stats to the /stats API and debug screen (#3931)
* Add ffprobe endpoint

* Get ffprobe for multiple inputs

* Copy ffprobe in output

* Fix bad if statement

* Return full output of ffprobe process

* Return full output of ffprobe process

* Make ffprobe button show dialog with output and option to copy

* Add driver names to consts

* Add driver env var name

* Setup general tracking for GPU stats

* Catch RPi args as well

* Add util to get radeontop results

* Add real amd GPU stats

* Fix missed arg

* pass config

* Use only the values

* Fix vram

* Add nvidia gpu stats

* Use nvidia stats

* Add chart for gpu stats

* Format AMD with space between percent

* Get correct nvidia %

* Start to add support for intel GPU stats

* Block out RPi as util is not currently available

* Formatting

* Fix mypy

* Strip for float conversion

* Strip for float conversion

* Fix percent formatting

* Remove name from gpu map

* Add tests and fix AMD formatting

* Add nvidia gpu stats test

* Formatting

* Add intel_gpu_top for testing

* Formatting

* Handle case where hwaccel is not setup

* Formatting

* Check to remove none

* Don't use set

* Cleanup and fix types

* Handle case where args is list

* Fix mypy

* Cast to str

* Fix type checking

* Return none instead of empty

* Fix organization

* Make keys consistent

* Make gpu match style

* Get support for vainfo

* Add vainfo endpoint

* Set vainfo output in error correctly

* Remove duplicate function

* Fix errors

* Do cpu & gpu work asynchonously

* Fix async

* Fix event loop

* Fix crash

* Fix naming

* Send empty data for gpu if error occurs

* Show error if gpu stats could not be retrieved

* Fix mypy

* Fix test

* Don't use json for vainfo

* Fix cross references

* Strip unicode still

* await vainfo response

* Add gpu deps

* Formatting

* remove comments

* Use empty string

* Add vainfo back in
2022-11-28 19:24:20 -06:00
Nicolas Mowen
6c0978498d
Abstract MQTT from communication and make mqtt optional (#4462)
* Add option for mqtt config

* Setup communication layer

* Have a dispatcher which is responsible for handling and sending messages

* Move mqtt to communication

* Separate ws communications module

* Make ws client conform to communicator

* Cleanup imports

* Migrate to new dispatcher

* Clean up

* Need to set topic prefix

* Remove references to mqtt in dispatcher

* Don't start mqtt until dispatcher is subscribed

* Cleanup

* Shorten package

* Formatting

* Remove unused

* Cleanup

* Rename mqtt to ws on web

* Fix ws mypy

* Fix mypy

* Reformat

* Cleanup if/else chain

* Catch bad set commands
2022-11-23 20:03:20 -06:00
Blake Blackshear
82432a78b7
rename debug to system (#4447) 2022-11-20 08:56:48 -06:00
Nicolas Mowen
ad3f6fc551
Fix mixed params (#4432) 2022-11-19 07:14:54 -06:00
Blake Blackshear
cc27c94e03 Merge remote-tracking branch 'origin/master' into dev 2022-11-17 07:11:03 -06:00
Nicolas Mowen
a1b21a87a1
Catch case where recording is not enabled (#4069)
* Catch case where recording is not enabled

* Add test for Record to catch this

* Add test for Record to catch this
2022-11-13 12:50:25 -06:00
Nicolas Mowen
e718d09c79
Fix new lines for instructions (#4371)
* Fix new lines for instructions

* Use correct formatting for list

* Fix formatting
2022-11-13 12:49:08 -06:00
Nicolas Mowen
c97aac6c94
Revamped debug UI and add camera / process info, ffprobe copying (#4349)
* Move each camera to a separate card and show per process info

* Install top

* Add support for cpu usage stats

* Use cpu usage stats in debug

* Increase number of runs to ensure good results

* Add ffprobe endpoint

* Get ffprobe for multiple inputs

* Copy ffprobe in output

* Add fps to camera metrics

* Fix lint errors

* Update stats config

* Add ffmpeg pid

* Use grid display so more cameras can take less vertical space

* Fix hanging characters

* Only show the current detector

* Fix bad if statement

* Return full output of ffprobe process

* Return full output of ffprobe process

* Don't specify rtsp_transport

* Make ffprobe button show dialog with output and option to copy

* Adjust ffprobe api to take paths directly

* Add docs for ffprobe api
2022-11-13 12:48:14 -06:00
Blake Blackshear
9c9220979e
Update web deps (#4383)
* Bump jest from 27.5.1 to 29.3.1 in /web

Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 27.5.1 to 29.3.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.3.1/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump msw from 0.38.2 to 0.48.0 in /web

Bumps [msw](https://github.com/mswjs/msw) from 0.38.2 to 0.48.0.
- [Release notes](https://github.com/mswjs/msw/releases)
- [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mswjs/msw/compare/v0.38.2...v0.48.0)

---
updated-dependencies:
- dependency-name: msw
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump idb-keyval from 6.1.0 to 6.2.0 in /web

Bumps [idb-keyval](https://github.com/jakearchibald/idb-keyval) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/jakearchibald/idb-keyval/releases)
- [Changelog](https://github.com/jakearchibald/idb-keyval/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jakearchibald/idb-keyval/compare/v6.1.0...v6.2.0)

---
updated-dependencies:
- dependency-name: idb-keyval
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump @babel/preset-typescript from 7.16.7 to 7.18.6 in /web

Bumps [@babel/preset-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript) from 7.16.7 to 7.18.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.6/packages/babel-preset-typescript)

---
updated-dependencies:
- dependency-name: "@babel/preset-typescript"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump typescript from 4.6.2 to 4.8.4 in /web

Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.6.2 to 4.8.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.6.2...v4.8.4)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump @testing-library/user-event from 13.5.0 to 14.4.3 in /web

Bumps [@testing-library/user-event](https://github.com/testing-library/user-event) from 13.5.0 to 14.4.3.
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v13.5.0...v14.4.3)

---
updated-dependencies:
- dependency-name: "@testing-library/user-event"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump preact-router from 4.0.1 to 4.1.0 in /web

Bumps [preact-router](https://github.com/preactjs/preact-router) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/preactjs/preact-router/releases)
- [Commits](https://github.com/preactjs/preact-router/compare/4.0.1...4.1.0)

---
updated-dependencies:
- dependency-name: preact-router
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump axios from 0.26.0 to 1.1.3 in /web

Bumps [axios](https://github.com/axios/axios) from 0.26.0 to 1.1.3.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.26.0...v1.1.3)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump @preact/preset-vite from 2.1.7 to 2.4.0 in /web

Bumps [@preact/preset-vite](https://github.com/preactjs/preset-vite) from 2.1.7 to 2.4.0.
- [Release notes](https://github.com/preactjs/preset-vite/releases)
- [Commits](https://github.com/preactjs/preset-vite/compare/v2.1.7...v2.4.0)

---
updated-dependencies:
- dependency-name: "@preact/preset-vite"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump @testing-library/jest-dom from 5.16.2 to 5.16.5 in /web

Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.16.2 to 5.16.5.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v5.16.2...v5.16.5)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* revamp frontend

* disable broken tests

* disable a few more tests

* update typescript

* couple docs updates

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-13 10:31:36 -06:00
Nicolas Mowen
42bc372d6e
Update mask editor to have instructions (#4324) 2022-11-10 06:31:19 -06:00
Nicolas Mowen
47c1985c26
Go2rtc update and MSE improvements (#4309)
* Update go2rtc to rc2

* Update MSE player

* Update mse player

* Update mse player

* Close stream when pausing
2022-11-08 19:48:36 -06:00
banthungprong
552638d000
Adding clip duration to event details (#4133)
* 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
2022-11-02 06:45:32 -05:00
banthungprong
8163afce79
Allow cameras to be disabled in config (#4162)
* add option enabled for each camera in config

* Simplified If-block and removed wrong Optional

* Update Docs enabling/disabling camera in config

* correct format for option

* Disabling Camera for processes, no config changes

* Describe effects of disabled cam in documentation

* change if-logic, obsolete copy, info disabled cam

* changed color to white, added top padding in disabled camera info

* changed indentation
2022-11-02 06:41:44 -05:00
Nicolas Mowen
d8123d2497
Add go2rtc and add restream role / live source (#4082)
* Pull go2rtc dependency

* Add go2rtc to local services and add to s6

* Add relay controller for go2rtc

* Add restream role

* Add restream role

* Add restream to nginx

* Add camera live source config

* Disable RTMP by default and use restream

* Use go2rtc for camera config

* Fix go2rtc move

* Start restream on frigate start

* Send restream to camera level

* Fix restream

* Make sure jsmpeg works as expected

* Make view rspect live size config

* Tweak player options to fit live view

* Adjust VideoPlayer to accept live option which disables irrelevant controls

* Add multiple options from restream live view

* Add base for webrtc option

* Setup specific restream modules

* Make mp4 the default streaming for now

* Expose 8554 for rtsp relay from go2rtc

* Formatting

* Update docs to suggest new restream method.

* Update docs to reflect restream role

* Update docs to reflect restream role

* Add webrtc player

* Improvements to webRTC

* Support webrtc

* Cleanup

* Adjust rtmp test and add restream test

* Fix tests

* Add restream tests

* Add live view docs and show different options

* Small docs tweak

* Support all stream types

* Update to beta 9 of go2rtc

* Formatting

* Make jsmpeg the default

* Support wss if made from https

* Support wss if made from https

* Use onEffect

* Set url outside onEffect

* Fix passed deps

* Update docs about required host mode

* Try memo instead

* Close websocket on changing camera

* Formatting

* Close pc connection

* Set video source to null on cleanup

* Use full path since go2rtc can't see PATH var

* Adjust audio codec to enable browser audio by default

* Cleanup stream creation

* Add restream tests

* Format tests

* Mock requests

* Adjust paths

* Move stream configs to restream

* Remove live source

* Remove live config

* Use live persistence for which view to use on each camera

* Fix live sizes

* Only use jsmpeg sizes for jsmpeg live

* Set max live size

* Remove access of live config

* Add selector for live view source in web view

* Remove RTMP from default list of roles

* Update docs

* Fix tests

* Fix docs for live view modes

* make default undefined to avoid race condition

* Wait until camera source is loaded to avoid race condition

* Fix tests

* Add config to go2rtc

* Work with config

* Set full path for config

* Set to use stun

* Check for mounted file

* Look for frigate-go2rtc

* Update docs to reflect webRTC configuration.

* Add link to go2rtc config

* Update docs to be more clear

* Update docs to be more clear

* Update format

Co-authored-by: Felipe Santos <felipecassiors@gmail.com>

* Update live docs

* Improve bash startup script

* Add option to force audio compatibility

* Formatting

* Fix mapping

* Fix broken link

* Update go2rtc version

* Get go2rtc webui working

* Add support for mse

* Remove mp4 option

* Undo changes to video player

* Update docs for new live view options

* Make separate path for mse

* Remove unused

* Remove mp4 path

* Try to get go2rtc proxy working

* Try to get go2rtc proxy working

* Remove unused callback

* Allow websocket on restrea dashboard

* Make mse default stream option

* Fix mse sizing

* don't assume roles is defined

* Remove nginx mapping to go2rtc ui

Co-authored-by: Felipe Santos <felipecassiors@gmail.com>
Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2022-11-02 06:36:09 -05:00
Aksel Skauge Mellbye
faf583451f Recording: Fix z-index issue with recording playlist (#3762) 2022-09-20 06:05:43 -05:00
Aksel Skauge Mellbye
a6a0e4d1de Bring recording playlist in front of video.js modals
Ensure that the playlist doesn't get covered by video.js error messages,
preventing interaction.
2022-09-15 06:36:32 -05:00
Aksel
14faf0b2f6
Show snapshots on events page (#3763)
* 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.
2022-09-15 06:35:51 -05:00
uvjustin
8c45dab9b8
Handle spaces in labels (#3679)
* Unquote label in flask routes
Encode label in Camera.jsx

* Don't use preprocessor

* Update nginx location for cacheable images
2022-08-25 07:32:30 -05:00
Nicolas Mowen
0d6dd1ed0f
Cleanup names of cameras, zones, & labels in the UI (#3708)
* Cleanup names of cameras, zones, & labels in the UI

* Fix tests to include camera name
2022-08-25 06:44:34 -05:00
Justin Wong
7c57c8c2da Use master playlist for videojs 2022-08-24 07:21:39 -05:00
Nicolas Mowen
2d5d3bdaf4
Wait for recordingSummary and recordings to be valid before playing (#3558)
* Wait for recordingSummary and recordings to be valid before playing

* Wait for recordingSummary and recordings to be valid before playing
2022-08-13 06:46:08 -05:00
JohnMark Sill
a67a768e89 improvement: better play/pause 2022-07-19 07:04:33 -05:00
JohnMark Sill
43f05c18d6 chore: remove unused import 2022-07-19 07:04:33 -05:00
JohnMark Sill
3b076c28c2 chore: removed unused properties interface 2022-07-19 07:04:33 -05:00
JohnMark Sill
cbf12e3f90 fix: removed unused state 2022-07-19 07:04:33 -05:00
JohnMark Sill
17b745434c improvement: migrated to videojs 2022-07-19 07:04:33 -05:00
JohnMark Sill
37011c2fda improvement: use useCallback instead of setting ref auto-magically 2022-07-19 07:04:33 -05:00
JohnMark Sill
fa95a041dd fix: height of video is now constant in history viewer 2022-07-19 07:04:33 -05:00
JohnMark Sill
0879d7a2d1 fix: marker time image 2022-07-19 07:04:33 -05:00
Blake Blackshear
b80080ac52 don't refetch data on refocus 2022-07-07 07:05:05 -05:00
Nicolas Mowen
da637d3c8f
Limit size of player in events view (#3288)
* Set max width

* Set data-options so videojs accepts size changing

* Add comment to explain exmpty data-setup value

* Clarify comment
2022-06-02 07:06:39 -05:00
Nicolas Mowen
5f9d477863
Update event filters naming and add sub label filter (#3194)
* 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
2022-05-29 09:47:43 -05:00
Nicolas Mowen
ca693240b1
Favorite events delete button warning (#3225)
* Add dialog to shield deletion of favorite event

* Use state to keep track of event id

* Adjust named

* Set color of button
2022-05-26 10:06:02 -05:00
Blake Blackshear
3e7ed982d4 fix tests 2022-05-20 09:28:26 -05:00
Nicolas Mowen
d8d410802f
Set height and width of delete icon for firefox (#3226) 2022-05-19 07:41:31 -05:00
Blake Blackshear
ca7bad8909 get ingress to play nice with vite 2022-05-19 07:31:51 -05:00
Blake Blackshear
d2c3cdcf04 don't add 16x on every render 2022-05-16 07:00:33 -05:00
Carlos Gustavo Sarmiento
90bff605fa Only include 16x if browser is not Firefox 2022-05-14 07:31:52 -05:00
Carlos Gustavo Sarmiento
f512df44c1 Add 16x Playback rate to VideoPlayer.jsx 2022-05-14 07:31:52 -05:00
Blake Blackshear
4e8ce28948 center portrait thumbnails 2022-05-14 06:37:06 -05:00
Blake Blackshear
da36f25fd0 fix swr fetcher 2022-05-12 12:05:34 -05:00
Blake Blackshear
691ed6a4c7 revamp recordings 2022-05-12 06:29:43 -05:00
Blake Blackshear
bc0206de9d retain the set topic for switches 2022-04-25 07:13:22 -05:00
Nicolas Mowen
a5016afdd4
FEAT: Ability to reorder & ability to hide Cameras in UI (#2981)
* Add options for reordering and hiding cameras selectively

* Add newline at end of camera file

* Make each camera for birdseye togglable as well

* Update names to be less ambiguous

* Update defaults

* Include sidebar change

* Remove birdseye toggle (will be added in separate PR)

* Remove birdseye toggle (will be added in separate PR)

* Remove birdseye toggle (will be added in separate PR)

* Update sidebar to only sort cameras once

* Simplify sorting logic
2022-04-15 07:23:02 -05:00
Blake Blackshear
35bd1de5ba
limit send to plus where appropriate (#3080) 2022-04-11 06:56:53 -05:00
Nicolas Mowen
162e275ef3
Always show camera recordings in sidebar regardless of state (#2846) 2022-04-10 09:13:30 -05:00
Blake Blackshear
cef77fba01 add frontend for frigate+ submission 2022-04-10 09:11:16 -05:00
Dermot Duffy
c424c4b7ef
Fix tiny timing bug. (#2994) 2022-03-21 06:43:27 -05:00
Nicolas Mowen
b1cc64d4fa
FEAT: Ability to set sub labels for specific events (#2949)
* 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.
2022-03-17 07:18:43 -05:00
Nicolas Mowen
0abd0627df
FEAT: Replace best jpg endpoint (#2944)
* Added object thumbnail def and made camera tracked objects use it.

* Add object snapshot def

* Remove documentation for best.jpg

* Update docs for label thumbnail and snapshot defs
2022-03-11 07:56:39 -06:00
Blake Blackshear
dccfc3b84f fix camera list on debug page 2022-03-11 07:49:06 -06:00
Blake Blackshear
deb3536cb2 fix date picker 2022-03-11 07:49:06 -06:00
Blake Blackshear
95fe62e141 switch to vite 2022-03-11 07:49:06 -06:00
Blake Blackshear
1c9ba11e07 swr events refactor 2022-03-11 07:49:06 -06:00
JohnMark Sill
3e07d4eddb
feat: Timeline UI (#2830) 2022-02-27 08:04:12 -06:00
Nicolas Mowen
4004048add
Ability to retain specific clips / events indefinitely (#2831) 2022-02-21 22:03:01 -06:00
Nicolas Mowen
5627b66a6e Always show recording link even if recordings are currently disabled (#2787)
* Always show recording link even if recordings are currently disabled

* Fix test to consider all cameras to have recording link
2022-02-18 21:18:26 -06:00
Jason Hunter
8de15af7b4 Fix duration for long events and playback rate for top of the hour 2022-02-18 21:18:26 -06:00
Jason Hunter
28dd43f8ae Fix playback rate resetting to 1 on source change 2022-02-18 21:18:26 -06:00
Jason Hunter
e433bec17f Add in progress events to recordings view 2022-02-18 21:18:26 -06:00
Bernt Christian Egeland
a10970d7c9 Event Datepicker (#2428)
* new datepicker

* dev

* dev

* dev

* fix for version 0.10

* added rounded corners for date range

* lint

* Commented out some Select.test.

* improved date range selection

* improved functions with useCallback

* improved Select.test.jsx

* keyboard navigation

* keyboard navigation

* added dropdown menu icon

* Hide filters on xs, Button to show

* check if to far left before right

* Filter button text

* improved local timezone
2022-02-18 21:18:26 -06:00
Blake Blackshear
e0c0033852 use snapshot url to support in progress events 2022-02-18 21:18:26 -06:00
Blake Blackshear
87e2300855 set retain when setting switches from frontend 2022-02-18 21:18:26 -06:00
Blake Blackshear
2f2329ba44 only save recordings when an event is in progress 2022-02-18 21:18:26 -06:00
Blake Blackshear
7ab6961ee1 use live dimensions 2021-10-17 08:48:59 -05:00
Blake Blackshear
ae24cf3bb2 set max width/height for live view 2021-10-17 07:48:56 -05:00
Blake Blackshear
1daffd92fd docs updates 2021-10-01 07:37:47 -05:00
Blake Blackshear
1d25936f31 add region/bbox/area to event table 2021-09-23 07:31:48 -05:00
Bernt Christian Egeland
00ff76a0b9
Events performance (#1645)
* 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>
2021-09-03 07:11:23 -05:00
Bernt Christian Egeland
b8df419bad hide birdseye nav if not enabled 2021-09-03 07:07:45 -05:00
Blake Blackshear
d74021af47 reverse sort events within hour 2021-08-29 07:46:09 -05:00
Blake Blackshear
3d6dad7e7e reverse sort within a day for recordings 2021-08-27 07:26:11 -05:00
Bernt Christian Egeland
4efc584816
Move event-view to events table. (#1596)
* 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>
2021-08-26 06:54:36 -05:00
Bernt Christian Egeland
354a9240f0 reduced navbar padding / height 2021-08-23 07:47:39 -05:00
Bernt Christian Egeland
5ae4f47e96 removed comma. This was causing the main window to be pulled down behind the headerbar, hence the odd menu behavior 2021-08-23 07:44:17 -05:00
Blake Blackshear
f3a1c1de0a move width/height/fps under detect and make required
also resizes the output from ffmpeg to specified size
2021-08-14 14:18:35 -05:00
Bernt Christian Egeland
1f1a708388 set top postion to widow_padding 2021-08-14 07:37:56 -05:00
Jason Hunter
2fbfbf614b add download option on clips and snapshots 2021-08-07 15:51:16 -05:00
Jason Hunter
c527b1ca5d change MQTT to toggle recordings instead of clips 2021-08-07 15:51:16 -05:00
Jason Hunter
a476bc9885 initial commit 2021-08-07 15:51:16 -05:00
Blake Blackshear
a94b61ef91 increase jsmpeg buffer size 2021-07-21 08:11:16 -05:00
ElMoribond
16ef432228 add tabbed buttons component 2021-07-16 07:08:06 -05:00
ElMoribond
4449bc5292 add tabbed buttons component 2021-07-16 07:08:06 -05:00
Blake Blackshear
3876b00088 useCallback here too 2021-07-06 07:36:37 -05:00
Blake Blackshear
13c2c582ad remove default value changes 2021-07-06 07:36:37 -05:00
ElMoribond
bb3ba2d572 Add ability to restart 2021-07-06 07:36:37 -05:00
ElMoribond
9ee2e776fa Add ability to restart 2021-07-06 07:36:37 -05:00
ElMoribond
fd61ca20b0 Add ability to restart
disable warning
2021-07-06 07:36:37 -05:00
ElMoribond
f9add57ed4 Add ability to restart
I restored the original line as it can be misleading.
2021-07-06 07:36:37 -05:00
ElMoribond
e1b341788d Add ability to restart 2021-07-06 07:36:37 -05:00
ElMoribond
04c8b089a5 Add ability to restart 2021-07-06 07:36:37 -05:00
ElMoribond
9971482506 Add ability to restart 2021-07-06 07:36:37 -05:00
ElMoribond
955d9e6ec2 Add ability to restart 2021-07-06 07:36:37 -05:00
ElMoribond
436b10a87b Add ability to restart 2021-07-06 07:36:37 -05:00
ElMoribond
a2d5754e4b Add ability to restart 2021-07-06 07:36:37 -05:00
ElMoribond
3d28d8cee2 Add ability to restart 2021-07-06 07:36:37 -05:00
Bernt Christian Egeland
6e6ee93282 error handling and linting 2021-07-05 08:24:46 -05:00
Bernt Christian Egeland
85de881181 resolve #1143 2021-07-05 08:24:46 -05:00
Blake Blackshear
222dc2f7c9 remove console log 2021-06-23 08:15:15 -05:00
Blake Blackshear
f94a946418 add fullscreen to jsmpeg player 2021-06-23 08:15:15 -05:00
Jason Hunter
d83ffd8984 fix tests 2021-06-18 21:15:59 -05:00
Blake Blackshear
175c85d69a fix some test errors 2021-06-18 21:15:59 -05:00
Blake Blackshear
3aa7f753b3 lint fixes 2021-06-18 21:15:59 -05:00
Blake Blackshear
861ee0485d swith camera view to jsmpeg 2021-06-18 21:15:59 -05:00
Blake Blackshear
f2d1f7b00f disable audio 2021-06-13 12:35:39 -05:00
Blake Blackshear
89c2ae2208 functioning birdseye view 2021-06-13 12:35:39 -05:00
Jason Hunter
da8e54ed51 fix lint and tests 2021-06-11 06:53:34 -05:00
Jason Hunter
b70c11e7a7 Cleanup video player and use consistently across recordings and events. 2021-06-11 06:53:34 -05:00
Jason Hunter
eb3f50c9f0 add default to reducer 2021-06-10 07:04:28 -05:00
Jason Hunter
055bd22138 initial implementation of recordings table 2021-06-10 07:04:28 -05:00
Jason Hunter
de3a19c4f0 Update web/src/__tests__/Sidebar.test.jsx 2021-06-06 07:54:58 -05:00
Jason Hunter
2a33c05378 add sidebar test 2021-06-06 07:54:58 -05:00
Jason Hunter
bbb4d10718 add/fix tests 2021-06-06 07:54:58 -05:00
Jason Hunter
68dfaaf767 hide recordings page if record is not enabled, show error if no recordings available. 2021-06-06 07:54:58 -05:00
Jason Hunter
88ed7501a7 add mobile player and fullscreen support for iOS 2021-06-05 07:30:18 -05:00
Jason Hunter
c73aebadcb change seek back to 10 seconds 2021-06-05 07:30:18 -05:00
Jason Hunter
40c4ca305e add playback rate adjustment and seek buttons 2021-06-05 07:30:18 -05:00
Jason Hunter
7b3abe330e recordings is taken by nginx so refresh fails - change base to recording 2021-06-05 07:30:18 -05:00
Jason Hunter
62452b1d21 cleanup dead code 2021-06-05 07:30:18 -05:00
Jason Hunter
c5f005afef lint fix... again 2021-06-05 07:30:18 -05:00
Jason Hunter
4a45b6e76d do not show event end time 2021-06-05 07:30:18 -05:00
Jason Hunter
a3cfbb6722 remove now playing because I do not handle autoadvance properly yet 2021-06-05 07:30:18 -05:00
Jason Hunter
dc8ba5239d lint cleanup 2021-06-05 07:30:18 -05:00
Jason Hunter
b53a50cd54 restyle to match Material Design List specs 2021-06-05 07:30:18 -05:00
Jason Hunter
9822d614e2 fix videojs bug when switching cameras, support recording delay, fix navigation highlight 2021-06-05 07:30:18 -05:00
Jason Hunter
ca20c735f7 add event card to overlay 2021-06-05 07:30:18 -05:00
Jason Hunter
d3dc018260 video overlay 2021-06-05 07:30:18 -05:00
Jason Hunter
28a2a3816a lint fixes 2021-06-05 07:30:18 -05:00
Jason Hunter
5461308d30 Initial Recordings UI 2021-06-05 07:30:18 -05:00
Mitch Ross
ebb6d348a3
feat(web): Delete events from Event page and API (#991)
Co-authored-by: Scott Roach <scott@thinkpivot.io>
Co-authored-by: Paul Armstrong <paul@spaceyak.com>
2021-05-12 08:19:02 -07:00
Paul Armstrong
5043040530 fix(web): ensure tooltips and menus don't cause scrollbar reflow 2021-02-25 06:34:36 -06:00
Paul Armstrong
3c60aeeef9 fix(web): set events api limit to 25 2021-02-25 06:34:36 -06:00
Blake Blackshear
b2a2fe898c ensure base url works for websockets 2021-02-21 09:32:45 -06:00
Blake Blackshear
31d408a746 dynamic ws/wss selection 2021-02-20 08:20:17 -06:00
Paul Armstrong
b6ba6459fb feat(web): detect, clips, snapshots toggles 2021-02-20 08:20:17 -06:00
Paul Armstrong
e399790442 feat(web): mqtt for stats 2021-02-20 08:20:17 -06:00
Paul Armstrong
fe59d90c51 web(test): routes/Events 2021-02-20 08:20:17 -06:00
Paul Armstrong
f87813805a test(web): RelativeModal 2021-02-20 08:20:17 -06:00
Paul Armstrong
a7e5b9978f test(web): Select 2021-02-20 08:20:17 -06:00
Paul Armstrong
0a3959af86 test(web): TextField 2021-02-20 08:20:17 -06:00
Paul Armstrong
9ba6054140 test(web): Sidebar 2021-02-20 08:20:17 -06:00
Paul Armstrong
3348f04889 test(web): App 2021-02-20 08:20:17 -06:00
Paul Armstrong
c12aec7c8f test(web): routes/Event 2021-02-20 08:20:17 -06:00
Paul Armstrong
05f66b8f24 test(web): routes/Debug 2021-02-20 08:20:17 -06:00
Paul Armstrong
d8b80f0fe9 test(web): routes/Cameras 2021-02-20 08:20:17 -06:00
Paul Armstrong
7314572d97 feat(web): allow CameraImage to stretch 2021-02-20 08:20:17 -06:00
Paul Armstrong
52a29ed00a test(web): routes/Camera 2021-02-20 08:20:17 -06:00
Paul Armstrong
5eaf8a5448 test(web): Switch (and add label back in) 2021-02-20 08:20:17 -06:00
Paul Armstrong
f70fb12c3d test(web): NavigationDrawer 2021-02-20 08:20:17 -06:00
Paul Armstrong
ece6c1203c test(web): Menu, MenuItem 2021-02-20 08:20:17 -06:00
Paul Armstrong
9c7e3177a2 test(web): Link 2021-02-20 08:20:17 -06:00
Paul Armstrong
058c0affaf test(web): Heading 2021-02-20 08:20:17 -06:00
Paul Armstrong
5ee7146884 test(web): Card 2021-02-20 08:20:17 -06:00
Paul Armstrong
1aa9a7a093 test(web): CameraImage (basic)
Testing Image and Canvas calls requires a lot of heavy dependencies, so this skips that part of the tests
2021-02-20 08:20:17 -06:00
Paul Armstrong
a202c44a0f test(web): Button 2021-02-20 08:20:17 -06:00
Paul Armstrong
85776cc7d0 test(web): fix switch case indent lint 2021-02-20 08:20:17 -06:00
Paul Armstrong
6d133ef724 test(web): api/index.jsx 2021-02-20 08:20:17 -06:00
Paul Armstrong
53288d361c test(web): AutoUpdatingCameraImage 2021-02-20 08:20:17 -06:00
Paul Armstrong
e729bd52aa refactor(web): Split AppBar and add tests 2021-02-20 08:20:17 -06:00
Paul Armstrong
ddb6127519 test(web): add ActivityIndicator test 2021-02-20 08:20:17 -06:00
Paul Armstrong
a803ab8577 test(web): add unit test framework 2021-02-20 08:20:17 -06:00
Paul Armstrong
daa759cc55 test(web): add eslint and PR lint validation 2021-02-20 08:20:17 -06:00
Patrick Decat
07bd376649 fix(web): fix CameraMap.jsx import of api after move to routes/ 2021-02-20 08:20:17 -06:00
Paul Armstrong
7aee28d080 refactor(web): async routing 2021-02-20 08:20:17 -06:00
Paul Armstrong
24ec13e36d fix(web): svgs may need explicit height/width in rare cases on linux 2021-02-20 08:20:17 -06:00
Paul Armstrong
d2e7c360b9 fix(web): build fixes after rebase 2021-02-20 08:20:17 -06:00
Paul Armstrong
f00628f4e5 refactor(web): menu positioning 2021-02-20 08:20:17 -06:00
Paul Armstrong
19bd5ace7d perf(web): memoize icon components 2021-02-20 08:20:17 -06:00
Paul Armstrong
3e2506136c fix(web): debug tables scrollable on small width screens 2021-02-20 08:20:17 -06:00
Paul Armstrong
4e03acc944 fix(web): ensure drawer can slide in/out and not just appear 2021-02-20 08:20:17 -06:00
Paul Armstrong
188eb6b9ea fix(web): relative modal height, top position, and z-indexing 2021-02-20 08:20:17 -06:00
Paul Armstrong
c89e1a5735 fix(web): remove cards from event page 2021-02-20 08:20:17 -06:00
Paul Armstrong
e50cc59f0d refactor(web): datatables 2021-02-20 08:20:17 -06:00
Paul Armstrong
96f87caff0 refactor(web): camera view + bugfixes 2021-02-20 08:20:17 -06:00
Paul Armstrong
b422a83b57 fix(web): ensure relative modal respects scrollY 2021-02-20 08:20:17 -06:00
Paul Armstrong
15ae3bee55 refactor(web): update shadows for material specs 2021-02-20 08:20:17 -06:00