From 5207ba6d97a565edba35a6daa827815e28184825 Mon Sep 17 00:00:00 2001 From: Dorian Grasset Date: Mon, 3 Nov 2025 21:21:36 +0100 Subject: [PATCH] fix: child monitors disappear after group deletion (#6287) Co-authored-by: Louis Lam --- server/server.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/server/server.js b/server/server.js index 86a6d2b20..207710a98 100644 --- a/server/server.js +++ b/server/server.js @@ -1060,6 +1060,27 @@ let needSetup = false; const startTime = Date.now(); + // Check if this is a group monitor and unlink children before deletion + const monitor = await R.findOne("monitor", " id = ? AND user_id = ? ", [ + monitorID, + socket.userID, + ]); + + if (monitor && monitor.type === "group") { + // Get all children before unlinking them + const children = await Monitor.getChildren(monitorID); + + // Unlink all children from the group + await Monitor.unlinkAllChildren(monitorID); + + // Notify frontend to update each child monitor's parent to null + if (children && children.length > 0) { + for (const child of children) { + await server.sendUpdateMonitorIntoList(socket, child.id); + } + } + } + await R.exec("DELETE FROM monitor WHERE id = ? AND user_id = ? ", [ monitorID, socket.userID,