Fix: handle monitor names with slashes (#4472)

Co-authored-by: Frank Elsinga <frank@elsinga.de>
This commit is contained in:
Andi Pätzold 2024-03-03 10:59:38 +01:00 committed by GitHub
parent 8fd713d642
commit a0c62d8ab0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 10 deletions

View File

@ -96,11 +96,15 @@ class Monitor extends BeanModel {
screenshot = "/screenshots/" + jwt.sign(this.id, UptimeKumaServer.getInstance().jwtSecret) + ".png"; screenshot = "/screenshots/" + jwt.sign(this.id, UptimeKumaServer.getInstance().jwtSecret) + ".png";
} }
const path = await this.getPath();
const pathName = path.join(" / ");
let data = { let data = {
id: this.id, id: this.id,
name: this.name, name: this.name,
description: this.description, description: this.description,
pathName: await this.getPathName(), path,
pathName,
parent: this.parent, parent: this.parent,
childrenIDs: await Monitor.getAllChildrenIDs(this.id), childrenIDs: await Monitor.getAllChildrenIDs(this.id),
url: this.url, url: this.url,
@ -1527,11 +1531,11 @@ class Monitor extends BeanModel {
} }
/** /**
* Gets Full Path-Name (Groups and Name) * Gets the full path
* @returns {Promise<string>} Full path name of this monitor * @returns {Promise<string[]>} Full path (includes groups and the name) of the monitor
*/ */
async getPathName() { async getPath() {
let path = this.name; const path = [ this.name ];
if (this.parent === null) { if (this.parent === null) {
return path; return path;
@ -1539,7 +1543,7 @@ class Monitor extends BeanModel {
let parent = await Monitor.getParent(this.id); let parent = await Monitor.getParent(this.id);
while (parent !== null) { while (parent !== null) {
path = `${parent.name} / ${path}`; path.unshift(parent.name);
parent = await Monitor.getParent(parent.id); parent = await Monitor.getParent(parent.id);
} }

View File

@ -390,10 +390,7 @@ export default {
}, },
group() { group() {
if (!this.monitor.pathName.includes("/")) { return this.monitor.path.slice(0, -1).join(" / ");
return "";
}
return this.monitor.pathName.substr(0, this.monitor.pathName.lastIndexOf("/"));
}, },
pushURL() { pushURL() {

View File

@ -1395,6 +1395,7 @@ message HealthCheckResponse {
// group monitor fields // group monitor fields
this.monitor.childrenIDs = undefined; this.monitor.childrenIDs = undefined;
this.monitor.forceInactive = undefined; this.monitor.forceInactive = undefined;
this.monitor.path = undefined;
this.monitor.pathName = undefined; this.monitor.pathName = undefined;
this.monitor.screenshot = undefined; this.monitor.screenshot = undefined;