From 1d8f1bd7ae7b7c379ccf4a2566cc22ad7ba081db Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Mon, 24 Feb 2025 08:02:36 -0600 Subject: [PATCH] Ensure sub label is null when submitting an empty string (#16779) * null sub_label when submitting an empty string * prevent cancel from submitting form * fix test --- frigate/api/event.py | 24 ++++++++++--------- frigate/test/test_http.py | 2 +- .../overlay/dialog/TextEntryDialog.tsx | 4 +++- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/frigate/api/event.py b/frigate/api/event.py index 2df32471e..bb1bf7395 100644 --- a/frigate/api/event.py +++ b/frigate/api/event.py @@ -991,6 +991,10 @@ def set_sub_label( new_sub_label = body.subLabel new_score = body.subLabelScore + if new_sub_label == "": + new_sub_label = None + new_score = None + if tracked_obj: tracked_obj.obj_data["sub_label"] = (new_sub_label, new_score) @@ -1001,21 +1005,19 @@ def set_sub_label( if event: event.sub_label = new_sub_label - - if new_score: - data = event.data + data = event.data + if new_sub_label is None: + data["sub_label_score"] = None + elif new_score is not None: data["sub_label_score"] = new_score - event.data = data - + event.data = data event.save() return JSONResponse( - content=( - { - "success": True, - "message": "Event " + event_id + " sub label set to " + new_sub_label, - } - ), + content={ + "success": True, + "message": f"Event {event_id} sub label set to {new_sub_label if new_sub_label is not None else 'None'}", + }, status_code=200, ) diff --git a/frigate/test/test_http.py b/frigate/test/test_http.py index 8c89e0433..46de1307f 100644 --- a/frigate/test/test_http.py +++ b/frigate/test/test_http.py @@ -275,7 +275,7 @@ class TestHttp(unittest.TestCase): event = client.get(f"/events/{id}").json() assert event assert event["id"] == id - assert event["sub_label"] == "" + assert event["sub_label"] == None def test_sub_label_list(self): app = create_fastapi_app( diff --git a/web/src/components/overlay/dialog/TextEntryDialog.tsx b/web/src/components/overlay/dialog/TextEntryDialog.tsx index d7b90aabb..c11a84ae7 100644 --- a/web/src/components/overlay/dialog/TextEntryDialog.tsx +++ b/web/src/components/overlay/dialog/TextEntryDialog.tsx @@ -86,7 +86,9 @@ export default function TextEntryDialog({ )} /> - +