From 40fbe4a8229cc0c286a3418d7d5e2eec9efada91 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Wed, 8 Jan 2025 14:17:29 -0800 Subject: [PATCH] move filtering to the monitors facet --- Client/src/Pages/Uptime/Home/index.jsx | 4 ++-- Server/db/mongo/modules/monitorModule.js | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Client/src/Pages/Uptime/Home/index.jsx b/Client/src/Pages/Uptime/Home/index.jsx index 4ccacd81e..449c7dee3 100644 --- a/Client/src/Pages/Uptime/Home/index.jsx +++ b/Client/src/Pages/Uptime/Home/index.jsx @@ -137,8 +137,8 @@ const UptimeMonitors = () => { const triggerUpdate = () => { setMonitorUpdateTrigger((prev) => !prev); }; - const totalMonitors = monitorsSummary.totalMonitors; - const hasMonitors = totalMonitors > 0; + const totalMonitors = monitorsSummary?.totalMonitors ?? 0; + const hasMonitors = monitorsSummary?.totalMonitors ?? 0; const canAddMonitor = isAdmin && hasMonitors; return ( diff --git a/Server/db/mongo/modules/monitorModule.js b/Server/db/mongo/modules/monitorModule.js index 77c290c52..7b554ff32 100644 --- a/Server/db/mongo/modules/monitorModule.js +++ b/Server/db/mongo/modules/monitorModule.js @@ -523,13 +523,6 @@ const getMonitorsByTeamId = async (req) => { const sort = { [field]: order === "asc" ? 1 : -1 }; - if (filter !== undefined) { - matchStage.$or = [ - { name: { $regex: filter, $options: "i" } }, - { url: { $regex: filter, $options: "i" } }, - ]; - } - const results = await Monitor.aggregate([ { $match: matchStage }, { @@ -563,6 +556,18 @@ const getMonitorsByTeamId = async (req) => { }, ], monitors: [ + ...(filter !== undefined + ? [ + { + $match: { + $or: [ + { name: { $regex: filter, $options: "i" } }, + { url: { $regex: filter, $options: "i" } }, + ], + }, + }, + ] + : []), { $sort: sort }, { $skip: skip }, ...(rowsPerPage ? [{ $limit: rowsPerPage }] : []),