mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-03-15 13:54:45 +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 updateMonitorNotification(bean.id, notificationIDList);
|
||||||
|
|
||||||
await server.sendUpdateMonitorIntoList(socket, bean.id);
|
await server.sendUpdateMonitorsIntoList(socket, bean.id);
|
||||||
|
|
||||||
if (monitor.active !== false) {
|
if (monitor.active !== false) {
|
||||||
await startMonitor(socket.userID, bean.id);
|
await startMonitor(socket.userID, bean.id);
|
||||||
|
@ -884,7 +884,7 @@ let needSetup = false;
|
||||||
await restartMonitor(socket.userID, bean.id);
|
await restartMonitor(socket.userID, bean.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
await server.sendUpdateMonitorIntoList(socket, bean.id);
|
await server.sendUpdateMonitorsIntoList(socket, bean.id);
|
||||||
|
|
||||||
callback({
|
callback({
|
||||||
ok: true,
|
ok: true,
|
||||||
|
@ -985,7 +985,9 @@ let needSetup = false;
|
||||||
try {
|
try {
|
||||||
checkLogin(socket);
|
checkLogin(socket);
|
||||||
await startMonitor(socket.userID, monitorID);
|
await startMonitor(socket.userID, monitorID);
|
||||||
await server.sendUpdateMonitorIntoList(socket, monitorID);
|
|
||||||
|
const childrenIDs = await Monitor.getAllChildrenIDs(monitorID);
|
||||||
|
await server.sendUpdateMonitorsIntoList(socket, [ monitorID, ...childrenIDs ]);
|
||||||
|
|
||||||
callback({
|
callback({
|
||||||
ok: true,
|
ok: true,
|
||||||
|
@ -1005,7 +1007,9 @@ let needSetup = false;
|
||||||
try {
|
try {
|
||||||
checkLogin(socket);
|
checkLogin(socket);
|
||||||
await pauseMonitor(socket.userID, monitorID);
|
await pauseMonitor(socket.userID, monitorID);
|
||||||
await server.sendUpdateMonitorIntoList(socket, monitorID);
|
|
||||||
|
const childrenIDs = await Monitor.getAllChildrenIDs(monitorID);
|
||||||
|
await server.sendUpdateMonitorsIntoList(socket, [ monitorID, ...childrenIDs ]);
|
||||||
|
|
||||||
callback({
|
callback({
|
||||||
ok: true,
|
ok: true,
|
||||||
|
|
|
@ -208,12 +208,16 @@ class UptimeKumaServer {
|
||||||
/**
|
/**
|
||||||
* Update Monitor into list
|
* Update Monitor into list
|
||||||
* @param {Socket} socket Socket to send list on
|
* @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>}
|
* @returns {Promise<void>}
|
||||||
*/
|
*/
|
||||||
async sendUpdateMonitorIntoList(socket, monitorID) {
|
async sendUpdateMonitorsIntoList(socket, monitorIDs) {
|
||||||
let list = await this.getMonitorJSONList(socket.userID, monitorID);
|
if (!Array.isArray(monitorIDs)) {
|
||||||
this.io.to(socket.userID).emit("updateMonitorIntoList", list);
|
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.
|
* Get a list of monitors for the given user.
|
||||||
* @param {string} userID - The ID of the user to get monitors for.
|
* @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.
|
* @returns {Promise<object>} A promise that resolves to an object with monitor IDs as keys and monitor objects as values.
|
||||||
*
|
*
|
||||||
* Generated by Trelent
|
* Generated by Trelent
|
||||||
*/
|
*/
|
||||||
async getMonitorJSONList(userID, monitorID = null) {
|
async getMonitorJSONList(userID, monitorIDs = null) {
|
||||||
|
|
||||||
let query = " user_id = ? ";
|
let query = " user_id = ? ";
|
||||||
let queryParams = [ userID ];
|
let queryParams = [ userID ];
|
||||||
|
|
||||||
if (monitorID) {
|
if (monitorIDs) {
|
||||||
query += "AND id = ? ";
|
query += `AND id IN (${monitorIDs.map((_) => "?").join(",")}) `;
|
||||||
queryParams.push(monitorID);
|
queryParams.push(...monitorIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
let monitorList = await R.find("monitor", query + "ORDER BY weight DESC, name", queryParams);
|
let monitorList = await R.find("monitor", query + "ORDER BY weight DESC, name", queryParams);
|
||||||
|
|
|
@ -145,7 +145,7 @@ export default {
|
||||||
this.monitorList = data;
|
this.monitorList = data;
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("updateMonitorIntoList", (data) => {
|
socket.on("updateMonitorsIntoList", (data) => {
|
||||||
this.assignMonitorUrlParser(data);
|
this.assignMonitorUrlParser(data);
|
||||||
Object.entries(data).forEach(([ monitorID, updatedMonitor ]) => {
|
Object.entries(data).forEach(([ monitorID, updatedMonitor ]) => {
|
||||||
this.monitorList[monitorID] = updatedMonitor;
|
this.monitorList[monitorID] = updatedMonitor;
|
||||||
|
|
Loading…
Add table
Reference in a new issue