diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 000000000..6c14bb166 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,2 @@ +Never write strings in the frontend directly, always write to and reference the relevant translations file. +Always conform new and refactored code to the existing coding style in the project. diff --git a/docs/docs/configuration/genai/review_summaries.md b/docs/docs/configuration/genai/review_summaries.md index e83578490..8a492f4b8 100644 --- a/docs/docs/configuration/genai/review_summaries.md +++ b/docs/docs/configuration/genai/review_summaries.md @@ -116,4 +116,4 @@ Along with individual review item summaries, Generative AI provides the ability Review reports can be requested via the [API](/integrations/api#review-summarization) by sending a POST request to `/api/review/summarize/start/{start_ts}/end/{end_ts}` with Unix timestamps. -For Home Assistant users, there is a built-in service (`frigate.generate_review_summary`) that makes it easy to request review reports as part of automations or scripts. This allows you to automatically generate daily summaries, vacation reports, or custom time period reports based on your specific needs. +For Home Assistant users, there is a built-in service (`frigate.review_summarize`) that makes it easy to request review reports as part of automations or scripts. This allows you to automatically generate daily summaries, vacation reports, or custom time period reports based on your specific needs. diff --git a/docs/docs/configuration/masks.md b/docs/docs/configuration/masks.md index 4b57be964..4a4722586 100644 --- a/docs/docs/configuration/masks.md +++ b/docs/docs/configuration/masks.md @@ -28,7 +28,6 @@ To create a poly mask: 5. Click the plus icon under the type of mask or zone you would like to create 6. Click on the camera's latest image to create the points for a masked area. Click the first point again to close the polygon. 7. When you've finished creating your mask, press Save. -8. Restart Frigate to apply your changes. Your config file will be updated with the relative coordinates of the mask/zone: diff --git a/docs/docs/configuration/reference.md b/docs/docs/configuration/reference.md index a375086cb..6dde92fbe 100644 --- a/docs/docs/configuration/reference.md +++ b/docs/docs/configuration/reference.md @@ -1002,10 +1002,6 @@ ui: # full: 8:15:22 PM Mountain Standard Time # (default: shown below). time_style: medium - # Optional: Ability to manually override the date / time styling to use strftime format - # https://www.gnu.org/software/libc/manual/html_node/Formatting-Calendar-Time.html - # possible values are shown above (default: not set) - strftime_fmt: "%Y/%m/%d %H:%M" # Optional: Set the unit system to either "imperial" or "metric" (default: metric) # Used in the UI and in MQTT topics unit_system: metric diff --git a/frigate/config/ui.py b/frigate/config/ui.py index 2f66aeed3..8e0d4d77d 100644 --- a/frigate/config/ui.py +++ b/frigate/config/ui.py @@ -37,9 +37,6 @@ class UIConfig(FrigateBaseModel): time_style: DateTimeStyleEnum = Field( default=DateTimeStyleEnum.medium, title="Override UI timeStyle." ) - strftime_fmt: Optional[str] = Field( - default=None, title="Override date and time format using strftime syntax." - ) unit_system: UnitSystemEnum = Field( default=UnitSystemEnum.metric, title="The unit system to use for measurements." ) diff --git a/web/public/locales/en/config/ui.json b/web/public/locales/en/config/ui.json index fec0a9528..cdd91cb53 100644 --- a/web/public/locales/en/config/ui.json +++ b/web/public/locales/en/config/ui.json @@ -13,11 +13,8 @@ "time_style": { "label": "Override UI timeStyle." }, - "strftime_fmt": { - "label": "Override date and time format using strftime syntax." - }, "unit_system": { "label": "The unit system to use for measurements." } } -} \ No newline at end of file +} diff --git a/web/public/locales/en/views/classificationModel.json b/web/public/locales/en/views/classificationModel.json index 1b1ec811a..aecf3ca89 100644 --- a/web/public/locales/en/views/classificationModel.json +++ b/web/public/locales/en/views/classificationModel.json @@ -1,5 +1,5 @@ { - "documentTitle": "Classification Models", + "documentTitle": "Classification Models - Frigate", "details": { "scoreInfo": "Score represents the average classification confidence across all detections of this object." }, diff --git a/web/public/locales/en/views/explore.json b/web/public/locales/en/views/explore.json index 3f057c38d..6c938c109 100644 --- a/web/public/locales/en/views/explore.json +++ b/web/public/locales/en/views/explore.json @@ -77,7 +77,7 @@ "millisecondsToOffset": "Milliseconds to offset detect annotations by. Default: 0", "tips": "Lower the value if the video playback is ahead of the boxes and path points, and increase the value if the video playback is behind them. This value can be negative.", "toast": { - "success": "Annotation offset for {{camera}} has been saved to the config file. Restart Frigate to apply your changes." + "success": "Annotation offset for {{camera}} has been saved to the config file." } } }, diff --git a/web/public/locales/en/views/settings.json b/web/public/locales/en/views/settings.json index 22dae29de..7ffd29007 100644 --- a/web/public/locales/en/views/settings.json +++ b/web/public/locales/en/views/settings.json @@ -534,7 +534,7 @@ } }, "toast": { - "success": "Zone ({{zoneName}}) has been saved. Restart Frigate to apply changes." + "success": "Zone ({{zoneName}}) has been saved." } }, "motionMasks": { @@ -558,8 +558,8 @@ }, "toast": { "success": { - "title": "{{polygonName}} has been saved. Restart Frigate to apply changes.", - "noName": "Motion Mask has been saved. Restart Frigate to apply changes." + "title": "{{polygonName}} has been saved.", + "noName": "Motion Mask has been saved." } } }, @@ -583,8 +583,8 @@ }, "toast": { "success": { - "title": "{{polygonName}} has been saved. Restart Frigate to apply changes.", - "noName": "Object Mask has been saved. Restart Frigate to apply changes." + "title": "{{polygonName}} has been saved.", + "noName": "Object Mask has been saved." } } } diff --git a/web/src/types/frigateConfig.ts b/web/src/types/frigateConfig.ts index 985fe3457..94c9ba6e9 100644 --- a/web/src/types/frigateConfig.ts +++ b/web/src/types/frigateConfig.ts @@ -6,7 +6,6 @@ export interface UiConfig { time_format?: "browser" | "12hour" | "24hour"; date_style?: "full" | "long" | "medium" | "short"; time_style?: "full" | "long" | "medium" | "short"; - strftime_fmt?: string; dashboard: boolean; order: number; unit_system?: "metric" | "imperial"; diff --git a/web/src/views/classification/ModelTrainingView.tsx b/web/src/views/classification/ModelTrainingView.tsx index d6d03c6cc..f9c1044ef 100644 --- a/web/src/views/classification/ModelTrainingView.tsx +++ b/web/src/views/classification/ModelTrainingView.tsx @@ -84,6 +84,12 @@ export default function ModelTrainingView({ model }: ModelTrainingViewProps) { const [page, setPage] = useState("train"); const [pageToggle, setPageToggle] = useOptimisticState(page, setPage, 100); + // title + + useEffect(() => { + document.title = `${model.name} - ${t("documentTitle")}`; + }, [model.name, t]); + // model state const [wasTraining, setWasTraining] = useState(false);