mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-06-19 18:56:48 +02:00
refactor: Clean up heartbeat range handling in status page
- Removed fallback to "auto" for heartbeat bar range in the StatusPage model. - Simplified heartbeat range logic in the status page router to ensure consistent date handling. - Updated socket handler to directly assign heartbeat bar range from config.
This commit is contained in:
parent
b441308545
commit
ebd47f1a45
3 changed files with 14 additions and 8 deletions
|
@ -409,7 +409,7 @@ class StatusPage extends BeanModel {
|
|||
showPoweredBy: !!this.show_powered_by,
|
||||
googleAnalyticsId: this.google_analytics_tag_id,
|
||||
showCertificateExpiry: !!this.show_certificate_expiry,
|
||||
heartbeatBarRange: this.heartbeat_bar_range || "auto",
|
||||
heartbeatBarRange: this.heartbeat_bar_range,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -86,24 +86,30 @@ router.get("/api/status-page/heartbeat/:slug", cache("1 minutes"), async (reques
|
|||
|
||||
// Get the status page to determine the heartbeat range
|
||||
let statusPage = await R.findOne("status_page", " id = ? ", [ statusPageID ]);
|
||||
let heartbeatRange = (statusPage && statusPage.heartbeat_bar_range) ? statusPage.heartbeat_bar_range : "auto";
|
||||
let heartbeatRange = statusPage ? statusPage.heartbeat_bar_range : "auto";
|
||||
|
||||
// Calculate the date range for heartbeats based on range setting
|
||||
let dateFrom = new Date();
|
||||
let dateFrom = null;
|
||||
if (heartbeatRange === "auto") {
|
||||
// Auto mode: limit to last 100 beats (original behavior)
|
||||
dateFrom = null;
|
||||
} else if (heartbeatRange.endsWith("h")) {
|
||||
// Hours
|
||||
let hours = parseInt(heartbeatRange);
|
||||
dateFrom.setHours(dateFrom.getHours() - hours);
|
||||
let date = new Date();
|
||||
date.setHours(date.getHours() - hours);
|
||||
dateFrom = date.toISOString().slice(0, 19).replace('T', ' ');
|
||||
} else if (heartbeatRange.endsWith("d")) {
|
||||
// Days
|
||||
let days = parseInt(heartbeatRange);
|
||||
dateFrom.setDate(dateFrom.getDate() - days);
|
||||
let date = new Date();
|
||||
date.setDate(date.getDate() - days);
|
||||
dateFrom = date.toISOString().slice(0, 19).replace('T', ' ');
|
||||
} else {
|
||||
// Fallback to 90 days
|
||||
dateFrom.setDate(dateFrom.getDate() - 90);
|
||||
let date = new Date();
|
||||
date.setDate(date.getDate() - 90);
|
||||
dateFrom = date.toISOString().slice(0, 19).replace('T', ' ');
|
||||
}
|
||||
|
||||
for (let monitorID of monitorIDList) {
|
||||
|
@ -126,7 +132,7 @@ router.get("/api/status-page/heartbeat/:slug", cache("1 minutes"), async (reques
|
|||
ORDER BY time DESC
|
||||
`, [
|
||||
monitorID,
|
||||
dateFrom.toISOString(),
|
||||
dateFrom,
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
@ -165,7 +165,7 @@ module.exports.statusPageSocketHandler = (socket) => {
|
|||
statusPage.custom_css = config.customCSS;
|
||||
statusPage.show_powered_by = config.showPoweredBy;
|
||||
statusPage.show_certificate_expiry = config.showCertificateExpiry;
|
||||
statusPage.heartbeat_bar_range = config.heartbeatBarRange || "auto";
|
||||
statusPage.heartbeat_bar_range = config.heartbeatBarRange;
|
||||
statusPage.modified_date = R.isoDateTime();
|
||||
statusPage.google_analytics_tag_id = config.googleAnalyticsId;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue