${this._renderDropdown(CONF_VIEW_DEFAULT, viewModes)}
+ ${this._renderDropdown(CONF_VIEW_CAMERA_SELECT, cameraSelectViewModes)}
${this._renderStringInput(CONF_VIEW_TIMEOUT_SECONDS, 'number')}
${this._renderStringInput(CONF_VIEW_UPDATE_SECONDS, 'number')}
${this._renderSwitch(CONF_VIEW_UPDATE_FORCE, defaults.view.update_force)}
- ${this._renderSwitch(CONF_VIEW_UPDATE_CYCLE_CAMERA, defaults.view.update_cycle_camera)}
+ ${this._renderSwitch(
+ CONF_VIEW_UPDATE_CYCLE_CAMERA,
+ defaults.view.update_cycle_camera,
+ )}
`
: ''}
@@ -721,18 +734,9 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor
? html`
${this._renderSwitch(CONF_LIVE_PRELOAD, defaults.live.preload)}
- ${this._renderSwitch(
- CONF_LIVE_DRAGGABLE,
- defaults.live.draggable,
- )}
- ${this._renderSwitch(
- CONF_LIVE_LAZY_LOAD,
- defaults.live.lazy_load,
- )}
- ${this._renderSwitch(
- CONF_LIVE_LAZY_UNLOAD,
- defaults.live.lazy_unload,
- )}
+ ${this._renderSwitch(CONF_LIVE_DRAGGABLE, defaults.live.draggable)}
+ ${this._renderSwitch(CONF_LIVE_LAZY_LOAD, defaults.live.lazy_load)}
+ ${this._renderSwitch(CONF_LIVE_LAZY_UNLOAD, defaults.live.lazy_unload)}
${this._renderDropdown(
CONF_LIVE_CONTROLS_NEXT_PREVIOUS_STYLE,
liveNextPreviousControlStyles,
@@ -756,7 +760,7 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor
${this._renderSlider(
CONF_EVENT_GALLERY_MIN_COLUMNS,
defaults.event_gallery.min_columns,
- "mdi:view-column",
+ 'mdi:view-column',
1,
10,
)}
diff --git a/src/localize/languages/en.json b/src/localize/languages/en.json
index b06dbf39..38d1e377 100644
--- a/src/localize/languages/en.json
+++ b/src/localize/languages/en.json
@@ -32,6 +32,7 @@
"zone": "Frigate zone"
},
"view": {
+ "camera_select": "View for newly selected cameras",
"default": "Default view",
"views": {
"live": "Live view",
@@ -39,7 +40,8 @@
"clips": "Clips gallery",
"snapshot": "Most recent snapshot",
"snapshots": "Snapshots gallery",
- "image": "Static image"
+ "image": "Static image",
+ "current": "Current view"
},
"timeout_seconds": "Reset to default view X seconds after user action (0=never)",
"update_cycle_camera": "Cycle through cameras when default view updates",
diff --git a/src/types.ts b/src/types.ts
index 7c6d7aa0..48f49bc2 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -377,7 +377,8 @@ export type PictureElements = z.infer;
*/
const viewConfigDefault = {
default: 'live' as const,
- timeout_seconds: 300,
+ camera_select: 'current' as const,
+ timeout_seconds: 300,
update_seconds: 0,
update_force: false,
update_cycle_camera: false,
@@ -386,8 +387,10 @@ const viewConfigSchema = z
.object({
default: z
.enum(FRIGATE_CARD_VIEWS_USER_SPECIFIED)
- .optional()
.default(viewConfigDefault.default),
+ camera_select: z
+ .enum([...FRIGATE_CARD_VIEWS_USER_SPECIFIED, 'current'])
+ .default(viewConfigDefault.camera_select),
timeout_seconds: z.number().default(viewConfigDefault.timeout_seconds),
update_seconds: z.number().default(viewConfigDefault.update_seconds),
update_force: z.boolean().default(viewConfigDefault.update_force),
@@ -407,7 +410,7 @@ const imageConfigDefault = {
const imageConfigSchema = z
.object({
src: z.string().optional(),
- refresh_seconds: z.number().min(0).default(imageConfigDefault.refresh_seconds)
+ refresh_seconds: z.number().min(0).default(imageConfigDefault.refresh_seconds),
})
.merge(actionsSchema)
.default(imageConfigDefault);