From 6d0d72e8d877b2026503fb70a2fd398249955aeb Mon Sep 17 00:00:00 2001 From: Clayton Date: Mon, 19 Jan 2026 05:43:14 -0600 Subject: [PATCH] fix: Create parent group as active when cloning active monitor (#6448) --- server/server.js | 16 ++++++++++++++++ src/pages/EditMonitor.vue | 9 ++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/server/server.js b/server/server.js index 885e88340..5369d7123 100644 --- a/server/server.js +++ b/server/server.js @@ -1057,6 +1057,14 @@ let needSetup = false; await startMonitor(socket.userID, monitorID); await server.sendUpdateMonitorIntoList(socket, monitorID); + const monitor = await R.findOne("monitor", " id = ? ", [monitorID]); + if (monitor && monitor.type === "group") { + const childrenIDs = await Monitor.getAllChildrenIDs(monitorID); + for (const childID of childrenIDs) { + await server.sendUpdateMonitorIntoList(socket, childID); + } + } + callback({ ok: true, msg: "successResumed", @@ -1076,6 +1084,14 @@ let needSetup = false; await pauseMonitor(socket.userID, monitorID); await server.sendUpdateMonitorIntoList(socket, monitorID); + const monitor = await R.findOne("monitor", " id = ? ", [monitorID]); + if (monitor && monitor.type === "group") { + const childrenIDs = await Monitor.getAllChildrenIDs(monitorID); + for (const childID of childrenIDs) { + await server.sendUpdateMonitorIntoList(socket, childID); + } + } + callback({ ok: true, msg: "successPaused", diff --git a/src/pages/EditMonitor.vue b/src/pages/EditMonitor.vue index 3e7ac832e..d38fa414d 100644 --- a/src/pages/EditMonitor.vue +++ b/src/pages/EditMonitor.vue @@ -3171,9 +3171,12 @@ message HealthCheckResponse { } let createdNewParent = false; + let parentCreatedAsActive = false; if (this.draftGroupName && this.monitor.parent === -1) { // Create Monitor with name of draft group + const parentActive = this.isClone ? (this.monitor.active !== false) : false; + parentCreatedAsActive = parentActive; const res = await new Promise((resolve) => { this.$root.add( { @@ -3181,7 +3184,7 @@ message HealthCheckResponse { type: "group", name: this.draftGroupName, interval: this.monitor.interval, - active: false, + active: parentActive, }, resolve ); @@ -3203,7 +3206,7 @@ message HealthCheckResponse { await this.$refs.tagsManager.submit(res.monitorID); // Start the new parent monitor after edit is done - if (createdNewParent) { + if (createdNewParent && !parentCreatedAsActive) { await this.startParentGroupMonitor(); } this.processing = false; @@ -3223,7 +3226,7 @@ message HealthCheckResponse { this.init(); // Start the new parent monitor after edit is done - if (createdNewParent) { + if (createdNewParent && !parentCreatedAsActive) { this.startParentGroupMonitor(); } });