From e45452d1a25ffb6f975ff34bc03e5d3674c84659 Mon Sep 17 00:00:00 2001 From: Aaron Chong Date: Tue, 28 May 2024 17:12:04 +0800 Subject: [PATCH] Only display and list alerts that have display true Signed-off-by: Aaron Chong --- packages/api-server/api_server/gateway.py | 4 ---- .../api-server/api_server/routes/internal.py | 3 --- .../api-server/api_server/routes/tasks/tasks.py | 4 +--- .../dashboard/src/components/alert-store.tsx | 17 ++++++++++++++--- packages/dashboard/src/components/appbar.tsx | 9 ++++++--- 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/packages/api-server/api_server/gateway.py b/packages/api-server/api_server/gateway.py index 9f8e48a25..c3de4c8ff 100644 --- a/packages/api-server/api_server/gateway.py +++ b/packages/api-server/api_server/gateway.py @@ -292,10 +292,6 @@ def convert_fleet_alert(fleet_alert: RmfFleetAlert): def handle_fleet_alert(fleet_alert: AlertRequest): logging.info("Received fleet alert:") logging.info(fleet_alert) - - # we can do the destination reached tagging here instead of in the - # route - alert_events.alert_requests.on_next(fleet_alert) fleet_alert_sub = ros_node().create_subscription( diff --git a/packages/api-server/api_server/routes/internal.py b/packages/api-server/api_server/routes/internal.py index 31035d4ff..edf1f01de 100644 --- a/packages/api-server/api_server/routes/internal.py +++ b/packages/api-server/api_server/routes/internal.py @@ -88,14 +88,11 @@ async def process_msg( ) await create_new_alert(alert_request) elif task_state.status == mdl.Status.failed: - print("FAILED TASK") errorMessage = "" - print(task_state.dispatch) if ( task_state.dispatch is not None and task_state.dispatch.status == mdl.Status1.failed_to_assign ): - print("FAILED TO ASSIGN") errorMessage += "Failed to assign\n" if task_state.dispatch.errors is not None: for error in task_state.dispatch.errors: diff --git a/packages/api-server/api_server/routes/tasks/tasks.py b/packages/api-server/api_server/routes/tasks/tasks.py index a264efb61..ccb5e2e2f 100644 --- a/packages/api-server/api_server/routes/tasks/tasks.py +++ b/packages/api-server/api_server/routes/tasks/tasks.py @@ -15,9 +15,7 @@ ) from api_server.fast_io import FastIORouter, SubscriptionRequest from api_server.logging import LoggerAdapter, get_logger -from api_server.models.tortoise_models import ( - TaskState as DbTaskState, # TaskLocationCheckIn as DbTaskLocationCheckIn -) +from api_server.models.tortoise_models import TaskState as DbTaskState from api_server.repositories import RmfRepository, TaskRepository from api_server.response import RawJSONResponse from api_server.rmf_io import task_events, tasks_service diff --git a/packages/dashboard/src/components/alert-store.tsx b/packages/dashboard/src/components/alert-store.tsx index 818746289..994e68e64 100644 --- a/packages/dashboard/src/components/alert-store.tsx +++ b/packages/dashboard/src/components/alert-store.tsx @@ -265,10 +265,21 @@ export const AlertStore = React.memo(() => { return; } - const pushAlertIfUnresponded = async (alertRequest: AlertRequest) => { + const pushAlertsToBeDisplayed = async (alertRequest: AlertRequest) => { if (!rmf) { + console.error('Alerts API not available'); return; } + if (!alertRequest.display) { + setOpenAlerts((prev) => { + const filteredAlerts = Object.fromEntries( + Object.entries(prev).filter(([key]) => key !== alertRequest.id), + ); + return filteredAlerts; + }); + return; + } + try { const resp = ( await rmf.alertsApi.getAlertResponseAlertsRequestAlertIdResponseGet(alertRequest.id) @@ -295,7 +306,7 @@ export const AlertStore = React.memo(() => { subs.push( rmf.alertRequestsObsStore.subscribe( - async (alertRequest) => await pushAlertIfUnresponded(alertRequest), + async (alertRequest) => await pushAlertsToBeDisplayed(alertRequest), ), ); @@ -304,7 +315,7 @@ export const AlertStore = React.memo(() => { if (!alertRequest) { return; } - await pushAlertIfUnresponded(alertRequest); + await pushAlertsToBeDisplayed(alertRequest); }), ); diff --git a/packages/dashboard/src/components/appbar.tsx b/packages/dashboard/src/components/appbar.tsx index 79dcb2696..99b8f19ed 100644 --- a/packages/dashboard/src/components/appbar.tsx +++ b/packages/dashboard/src/components/appbar.tsx @@ -209,7 +209,8 @@ export const AppBar = React.memo(({ extraToolbarItems }: AppBarProps): React.Rea (async () => { const resp = await rmf.alertsApi.getUnrespondedAlertsAlertsUnrespondedRequestsGet(); const alerts = resp.data as AlertRequest[]; - setUnacknowledgedAlertsNum(alerts.length); + const alertsToBeDisplayed = alerts.filter((alert) => alert.display); + setUnacknowledgedAlertsNum(alertsToBeDisplayed.length); })(); }, }), @@ -219,7 +220,8 @@ export const AppBar = React.memo(({ extraToolbarItems }: AppBarProps): React.Rea (async () => { const resp = await rmf.alertsApi.getUnrespondedAlertsAlertsUnrespondedRequestsGet(); const alerts = resp.data as AlertRequest[]; - setUnacknowledgedAlertsNum(alerts.length); + const alertsToBeDisplayed = alerts.filter((alert) => alert.display); + setUnacknowledgedAlertsNum(alertsToBeDisplayed.length); })(); return () => subs.forEach((s) => s.unsubscribe()); }, [rmf]); @@ -338,7 +340,8 @@ export const AppBar = React.memo(({ extraToolbarItems }: AppBarProps): React.Rea (async () => { const { data: alerts } = await rmf.alertsApi.getUnrespondedAlertsAlertsUnrespondedRequestsGet(); - setUnacknowledgedAlertList(alerts.reverse()); + const alertsToBeDisplayed = alerts.filter((alert) => alert.display); + setUnacknowledgedAlertList(alertsToBeDisplayed.reverse()); })(); setAlertListAnchor(event.currentTarget); };