implement profile friendly names and improve profile UI

- Add ProfileDefinitionConfig type and profiles field to FrigateConfig
- Use ProfilesApiResponse type with friendly_name support throughout
- Replace Record<string, unknown> with proper JsonObject/JsonValue types
- Add profile creation form matching zone pattern (Zod + NameAndIdFields)
- Add pencil icon for renaming profile friendly names in ProfilesView
- Move Profiles menu item to first under Camera Configuration
- Add activity indicators on save/rename/delete buttons
- Display friendly names in CameraManagementView profile selector
- Fix duplicate colored dots in management profile dropdown
- Fix i18n namespace for overridden base config tooltips
- Move profile override deletion from dropdown trash icon to footer
  button with confirmation dialog, matching Reset to Global pattern
- Remove Add Profile from section header dropdown to prevent saving
  camera overrides before top-level profile definition exists
- Clean up newProfiles state after API profile deletion
- Refresh profiles SWR cache after saving profile definitions
This commit is contained in:
Josh Hawkins
2026-03-11 20:55:56 -05:00
parent 0b3c6ed22e
commit 39500b20a0
11 changed files with 519 additions and 418 deletions
+12 -1
View File
@@ -1464,12 +1464,23 @@
"baseConfig": "Base Config",
"addProfile": "Add Profile",
"newProfile": "New Profile",
"profileNamePlaceholder": "e.g., armed, away, night",
"profileNamePlaceholder": "e.g., Armed, Away, Night Mode",
"friendlyNameLabel": "Profile Name",
"profileIdLabel": "Profile ID",
"profileIdDescription": "Internal identifier used in config and automations",
"nameInvalid": "Only lowercase letters, numbers, and underscores allowed",
"nameDuplicate": "A profile with this name already exists",
"error": {
"mustBeAtLeastTwoCharacters": "Must be at least 2 characters",
"mustNotContainPeriod": "Must not contain periods",
"alreadyExists": "A profile with this ID already exists"
},
"renameProfile": "Rename Profile",
"renameSuccess": "Profile renamed to '{{profile}}'",
"deleteProfile": "Delete Profile",
"deleteProfileConfirm": "Delete profile \"{{profile}}\" from all cameras? This cannot be undone.",
"deleteSuccess": "Profile '{{profile}}' deleted",
"removeOverride": "Remove Profile Override",
"deleteSection": "Delete Section Overrides",
"deleteSectionConfirm": "Remove the {{section}} overrides for profile {{profile}} on {{camera}}?",
"deleteSectionSuccess": "Removed {{section}} overrides for {{profile}}",