mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-23 23:04:04 +00:00
fix: display children as paused when pausing parent
This commit is contained in:
parent
b02b21299b
commit
d336d09d78
3 changed files with 22 additions and 14 deletions
|
@ -727,7 +727,7 @@ let needSetup = false;
|
|||
|
||||
await updateMonitorNotification(bean.id, notificationIDList);
|
||||
|
||||
await server.sendUpdateMonitorIntoList(socket, bean.id);
|
||||
await server.sendUpdateMonitorsIntoList(socket, bean.id);
|
||||
|
||||
if (monitor.active !== false) {
|
||||
await startMonitor(socket.userID, bean.id);
|
||||
|
@ -884,7 +884,7 @@ let needSetup = false;
|
|||
await restartMonitor(socket.userID, bean.id);
|
||||
}
|
||||
|
||||
await server.sendUpdateMonitorIntoList(socket, bean.id);
|
||||
await server.sendUpdateMonitorsIntoList(socket, bean.id);
|
||||
|
||||
callback({
|
||||
ok: true,
|
||||
|
@ -985,7 +985,9 @@ let needSetup = false;
|
|||
try {
|
||||
checkLogin(socket);
|
||||
await startMonitor(socket.userID, monitorID);
|
||||
await server.sendUpdateMonitorIntoList(socket, monitorID);
|
||||
|
||||
const childrenIDs = await Monitor.getAllChildrenIDs(monitorID);
|
||||
await server.sendUpdateMonitorsIntoList(socket, [ monitorID, ...childrenIDs ]);
|
||||
|
||||
callback({
|
||||
ok: true,
|
||||
|
@ -1005,7 +1007,9 @@ let needSetup = false;
|
|||
try {
|
||||
checkLogin(socket);
|
||||
await pauseMonitor(socket.userID, monitorID);
|
||||
await server.sendUpdateMonitorIntoList(socket, monitorID);
|
||||
|
||||
const childrenIDs = await Monitor.getAllChildrenIDs(monitorID);
|
||||
await server.sendUpdateMonitorsIntoList(socket, [ monitorID, ...childrenIDs ]);
|
||||
|
||||
callback({
|
||||
ok: true,
|
||||
|
|
|
@ -208,12 +208,16 @@ class UptimeKumaServer {
|
|||
/**
|
||||
* Update Monitor into list
|
||||
* @param {Socket} socket Socket to send list on
|
||||
* @param {number} monitorID update or deleted monitor id
|
||||
* @param {number | number[]} monitorIDs update or deleted monitor ids
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async sendUpdateMonitorIntoList(socket, monitorID) {
|
||||
let list = await this.getMonitorJSONList(socket.userID, monitorID);
|
||||
this.io.to(socket.userID).emit("updateMonitorIntoList", list);
|
||||
async sendUpdateMonitorsIntoList(socket, monitorIDs) {
|
||||
if (!Array.isArray(monitorIDs)) {
|
||||
monitorIDs = [ monitorIDs ];
|
||||
}
|
||||
|
||||
let list = await this.getMonitorJSONList(socket.userID, monitorIDs);
|
||||
this.io.to(socket.userID).emit("updateMonitorsIntoList", list);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -229,19 +233,19 @@ class UptimeKumaServer {
|
|||
/**
|
||||
* Get a list of monitors for the given user.
|
||||
* @param {string} userID - The ID of the user to get monitors for.
|
||||
* @param {number} monitorID - The ID of monitor for.
|
||||
* @param {number[]} monitorIDs - The IDs of monitors for.
|
||||
* @returns {Promise<object>} A promise that resolves to an object with monitor IDs as keys and monitor objects as values.
|
||||
*
|
||||
* Generated by Trelent
|
||||
*/
|
||||
async getMonitorJSONList(userID, monitorID = null) {
|
||||
async getMonitorJSONList(userID, monitorIDs = null) {
|
||||
|
||||
let query = " user_id = ? ";
|
||||
let queryParams = [ userID ];
|
||||
|
||||
if (monitorID) {
|
||||
query += "AND id = ? ";
|
||||
queryParams.push(monitorID);
|
||||
if (monitorIDs) {
|
||||
query += `AND id IN (${monitorIDs.map((_) => "?").join(",")}) `;
|
||||
queryParams.push(...monitorIDs);
|
||||
}
|
||||
|
||||
let monitorList = await R.find("monitor", query + "ORDER BY weight DESC, name", queryParams);
|
||||
|
|
|
@ -145,7 +145,7 @@ export default {
|
|||
this.monitorList = data;
|
||||
});
|
||||
|
||||
socket.on("updateMonitorIntoList", (data) => {
|
||||
socket.on("updateMonitorsIntoList", (data) => {
|
||||
this.assignMonitorUrlParser(data);
|
||||
Object.entries(data).forEach(([ monitorID, updatedMonitor ]) => {
|
||||
this.monitorList[monitorID] = updatedMonitor;
|
||||
|
|
Loading…
Reference in a new issue