diff --git a/README.md b/README.md index d09506af..7459dc98 100644 --- a/README.md +++ b/README.md @@ -956,6 +956,24 @@ View events in the timeline. Event Timeline +### Single Camera Recordings + +View recordings for a camera across time: + +Recording for single camera + +### Multiple Camera Recordings + +View recordings for multiple cameras at a given time: + +Recording for multiple cameras + +### Dark Mode + +Dim the card when not used. + +Card dark mode + ### Card Casting diff --git a/images/dark-mode.gif b/images/dark-mode.gif new file mode 100644 index 00000000..cf21c4f8 Binary files /dev/null and b/images/dark-mode.gif differ diff --git a/images/recording-seek-all-cameras.gif b/images/recording-seek-all-cameras.gif new file mode 100644 index 00000000..4878c5a8 Binary files /dev/null and b/images/recording-seek-all-cameras.gif differ diff --git a/images/recording-seek.gif b/images/recording-seek.gif new file mode 100644 index 00000000..26573faf Binary files /dev/null and b/images/recording-seek.gif differ diff --git a/src/components/timeline.ts b/src/components/timeline.ts index 7b222d20..f0b4359e 100644 --- a/src/components/timeline.ts +++ b/src/components/timeline.ts @@ -583,9 +583,11 @@ export class FrigateCardTimelineCore extends LitElement { const children: FrigateBrowseMediaSource[] = []; const processedCameras: Set = new Set(); - for (const [camera, recording] of results.entries()) { + // Get results in the order the cameras are specified in the configuration. + for (const camera of (this.cameras?.keys() || [])) { + const recording = results.get(camera); const config = this.cameras?.get(camera); - if (!config?.camera_name) { + if (!recording || !config?.camera_name) { continue; }