diff --git a/src/const.ts b/src/const.ts
index e61138ac..f38a81ac 100644
--- a/src/const.ts
+++ b/src/const.ts
@@ -33,6 +33,10 @@ export const CONF_VIEW_UPDATE_CYCLE_CAMERA = `${CONF_VIEW}.update_cycle_camera`
export const CONF_VIEW_UPDATE_FORCE = `${CONF_VIEW}.update_force` as const;
export const CONF_VIEW_UPDATE_ENTITIES = `${CONF_VIEW}.update_entities` as const;
export const CONF_VIEW_UPDATE_SECONDS = `${CONF_VIEW}.update_seconds` as const;
+export const CONF_VIEW_SCAN = `${CONF_VIEW}.scan` as const;
+export const CONF_VIEW_SCAN_ENABLED = `${CONF_VIEW_SCAN}.enabled` as const;
+export const CONF_VIEW_SCAN_TRIGGER_MIN_SECONDS = `${CONF_VIEW_SCAN}.trigger_min_seconds` as const;
+export const CONF_VIEW_SCAN_TRIGGER_SHOW_BORDER = `${CONF_VIEW_SCAN}.trigger_show_border` as const;
export const CONF_EVENT_GALLERY = 'event_gallery' as const;
export const CONF_EVENT_GALLERY_CONTROLS_THUMBNAILS_SHOW_DETAILS =
diff --git a/src/editor.ts b/src/editor.ts
index df36a05b..edb2812c 100644
--- a/src/editor.ts
+++ b/src/editor.ts
@@ -81,6 +81,10 @@ import {
CONF_VIEW_CAMERA_SELECT,
CONF_VIEW_DARK_MODE,
CONF_VIEW_DEFAULT,
+ CONF_VIEW_SCAN,
+ CONF_VIEW_SCAN_ENABLED,
+ CONF_VIEW_SCAN_TRIGGER_MIN_SECONDS,
+ CONF_VIEW_SCAN_TRIGGER_SHOW_BORDER,
CONF_VIEW_TIMEOUT_SECONDS,
CONF_VIEW_UPDATE_CYCLE_CAMERA,
CONF_VIEW_UPDATE_FORCE,
@@ -104,6 +108,7 @@ import { sideLoadHomeAssistantElements } from './utils/ha';
const MENU_BUTTONS = 'buttons';
const MENU_CAMERAS = 'cameras';
const MENU_OPTIONS = 'options';
+const MENU_VIEW_SCAN = 'scan';
interface EditorOptionsSet {
icon: string;
@@ -601,6 +606,44 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor
);
}
+ protected _renderViewScanMenu(): TemplateResult {
+ return html`
+
+ ${this._expandedMenus[MENU_VIEW_SCAN]
+ ? html`
+ ${this._renderSwitch(
+ CONF_VIEW_SCAN_ENABLED,
+ frigateCardConfigDefaults.view.scan.enabled ?? true,
+ {
+ label: localize('config.view.scan.enabled'),
+ },
+ )}
+ ${this._renderSwitch(
+ CONF_VIEW_SCAN_TRIGGER_SHOW_BORDER,
+ frigateCardConfigDefaults.view.scan.trigger_show_border ?? true,
+ {
+ label: localize('config.view.scan.trigger_show_border'),
+ },
+ )}
+ ${this._renderNumberInput(CONF_VIEW_SCAN_TRIGGER_MIN_SECONDS, {
+ default: frigateCardConfigDefaults.view.scan.trigger_min_seconds,
+ label: localize('config.view.scan.trigger_min_seconds'),
+ })}
+
`
+ : ''}
+ `;
+ }
+
/**
* Render an editor menu for the card menu buttons.
* @param button The name of the button.
@@ -985,6 +1028,7 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor
CONF_VIEW_UPDATE_CYCLE_CAMERA,
defaults.view.update_cycle_camera,
)}
+ ${this._renderViewScanMenu()}
`
: ''}
diff --git a/src/localize/languages/en.json b/src/localize/languages/en.json
index 20d1b7bd..3ef558c6 100644
--- a/src/localize/languages/en.json
+++ b/src/localize/languages/en.json
@@ -65,7 +65,13 @@
"timeout_seconds": "Reset to default view X seconds after user action (0=never)",
"update_cycle_camera": "Cycle through cameras when default view updates",
"update_force": "Force card updates (ignore user interaction)",
- "update_seconds": "Refresh default view every X seconds (0=never)"
+ "update_seconds": "Refresh default view every X seconds (0=never)",
+ "scan": {
+ "scan_mode": "Scan mode",
+ "enabled": "Scan mode enabled",
+ "trigger_min_seconds": "Minimum seconds to trigger for",
+ "trigger_show_border": "Show pulsing border when triggered"
+ }
},
"event_gallery": {
"controls": {
diff --git a/src/scss/editor.scss b/src/scss/editor.scss
index c965f9a9..5ddfa307 100644
--- a/src/scss/editor.scss
+++ b/src/scss/editor.scss
@@ -42,7 +42,7 @@ div.upgrade span {
.submenu-header {
display: flex;
- margin-top: 4px;
+ margin-top: 10px;
cursor: pointer;
}