diff --git a/frigate/record/export.py b/frigate/record/export.py index f5861d4f7..2a5b46fa3 100644 --- a/frigate/record/export.py +++ b/frigate/record/export.py @@ -61,7 +61,7 @@ class RecordingExporter(threading.Thread): ) file_name = ( self.user_provided_name - or f"{self.camera}@{self.get_datetime_from_timestamp(self.start_time)}__{self.get_datetime_from_timestamp(self.end_time)}" + or f"{self.camera}_{self.get_datetime_from_timestamp(self.start_time)}__{self.get_datetime_from_timestamp(self.end_time)}" ) file_path = f"{EXPORT_DIR}/in_progress.{file_name}.mp4" final_file_path = f"{EXPORT_DIR}/{file_name}.mp4" diff --git a/web/src/components/card/ExportCard.tsx b/web/src/components/card/ExportCard.tsx index 4574d87cc..7431781ea 100644 --- a/web/src/components/card/ExportCard.tsx +++ b/web/src/components/card/ExportCard.tsx @@ -9,6 +9,7 @@ import Chip from "../indicators/Chip"; import { Skeleton } from "../ui/skeleton"; import { Dialog, DialogContent, DialogFooter, DialogTitle } from "../ui/dialog"; import { Input } from "../ui/input"; +import useKeyboardListener from "@/hooks/use-keyboard-listener"; type ExportProps = { file: { @@ -35,6 +36,16 @@ export default function ExportCard({ file, onRename, onDelete }: ExportProps) { update: string; }>(); + useKeyboardListener( + editName != undefined ? ["Enter"] : [], + (_, down, repeat) => { + if (down && !repeat && editName && editName.update.length > 0) { + onRename(editName.original, editName.update.replaceAll(" ", "_")); + setEditName(undefined); + } + }, + ); + return ( <> setHovered(!hovered) } > - {!playing && hovered && ( + {hovered && ( <> -
+ {!playing && ( +
+ )}
- + {!playing && ( + + )} )} {inProgress ? (