Settings UI tweaks (#22547)

* fix genai settings ui

- add roles widget to select roles for genai providers
- add dropdown in semantic search to allow selection of embeddings genai provider

* tweak grouping to prioritize fieldOrder before groups

previously, groups were always rendered first. now fieldOrder is respected, and any fields in a group will cause the group and all the fields in that group to be rendered in order. this allows moving the enabled switches to the top of the section

* mobile tweaks

stack buttons, add more space on profiles pane, and move the overridden badge beneath the description

* language consistency

* prevent camera config sections from being regenerated for profiles

* conditionally import axengine module

to match other detectors

* i18n

* update vscode launch.json for new integrated browser

* formatting
This commit is contained in:
Josh Hawkins
2026-03-20 07:24:34 -06:00
committed by GitHub
parent cedcbdba07
commit 68de18f10d
26 changed files with 552 additions and 138 deletions
+7 -3
View File
@@ -79,8 +79,8 @@
"label": "Object Detection",
"description": "Settings for the detection/detect role used to run object detection and initialize trackers.",
"enabled": {
"label": "Detection enabled",
"description": "Enable or disable object detection for this camera. Detection must be enabled for object tracking to run."
"label": "Enable object detection",
"description": "Enable or disable object detection for this camera."
},
"height": {
"label": "Detect height",
@@ -628,7 +628,7 @@
"label": "Snapshots",
"description": "Settings for saved JPEG snapshots of tracked objects for this camera.",
"enabled": {
"label": "Snapshots enabled",
"label": "Enable snapshots",
"description": "Enable or disable saving snapshots for this camera."
},
"clean_copy": {
@@ -860,6 +860,10 @@
"label": "Camera URL",
"description": "URL to visit the camera directly from system page"
},
"profiles": {
"label": "Profiles",
"description": "Named config profiles with partial overrides that can be activated at runtime."
},
"zones": {
"label": "Zones",
"description": "Zones allow you to define a specific area of the frame so you can determine whether or not an object is within a particular area.",
+16 -4
View File
@@ -1174,7 +1174,7 @@
}
},
"genai": {
"label": "Generative AI configuration (named providers).",
"label": "Generative AI configuration",
"description": "Settings for integrated generative AI providers used to generate object descriptions and review summaries.",
"api_key": {
"label": "API key",
@@ -1293,8 +1293,8 @@
"label": "Object Detection",
"description": "Settings for the detection/detect role used to run object detection and initialize trackers.",
"enabled": {
"label": "Detection enabled",
"description": "Enable or disable object detection for all cameras; can be overridden per-camera. Detection must be enabled for object tracking to run."
"label": "Enable object detection",
"description": "Enable or disable object detection for all cameras; can be overridden per-camera."
},
"height": {
"label": "Detect height",
@@ -1778,7 +1778,7 @@
"label": "Snapshots",
"description": "Settings for saved JPEG snapshots of tracked objects for all cameras; can be overridden per-camera.",
"enabled": {
"label": "Snapshots enabled",
"label": "Enable snapshots",
"description": "Enable or disable saving snapshots for all cameras; can be overridden per-camera."
},
"clean_copy": {
@@ -2128,6 +2128,18 @@
"description": "Numeric order used to sort camera groups in the UI; larger numbers appear later."
}
},
"profiles": {
"label": "Profiles",
"description": "Named profile definitions with friendly names. Camera profiles must reference names defined here.",
"friendly_name": {
"label": "Friendly name",
"description": "Display name for this profile shown in the UI."
}
},
"active_profile": {
"label": "Active profile",
"description": "Currently active profile name. Runtime-only, not persisted in YAML."
},
"camera_mqtt": {
"label": "MQTT",
"description": "MQTT image publishing settings.",
+12
View File
@@ -1402,6 +1402,18 @@
"audio": "Audio"
}
},
"genaiRoles": {
"options": {
"embeddings": "Embedding",
"vision": "Vision",
"tools": "Tools"
}
},
"semanticSearchModel": {
"placeholder": "Select model…",
"builtIn": "Built-in Models",
"genaiProviders": "GenAI Providers"
},
"review": {
"title": "Review Settings"
},