From 3d6bdeb3dfc0c0ef36bdfe502373695c2e6dc7cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 19 May 2021 10:01:33 -0400 Subject: [PATCH] feat: add req.query to flags.list/getCount --- src/controllers/mods.js | 1 + src/flags.js | 8 +++++--- src/middleware/header.js | 4 +++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/controllers/mods.js b/src/controllers/mods.js index 936fd70107..7bbe91cdff 100644 --- a/src/controllers/mods.js +++ b/src/controllers/mods.js @@ -83,6 +83,7 @@ modsController.flags.list = async function (req, res, next) { filters: filters, sort: sort, uid: req.uid, + query: req.query, }), analytics.getDailyStatsForSet('analytics:flags', Date.now(), 30), helpers.getSelectedCategory(filters.cid), diff --git a/src/flags.js b/src/flags.js index a25f3e1c7b..e119a00e97 100644 --- a/src/flags.js +++ b/src/flags.js @@ -121,13 +121,13 @@ Flags.get = async function (flagId) { return data.flag; }; -Flags.getCount = async function ({ uid, filters }) { +Flags.getCount = async function ({ uid, filters, query }) { filters = filters || {}; - const flagIds = await Flags.getFlagIdsWithFilters({ filters, uid }); + const flagIds = await Flags.getFlagIdsWithFilters({ filters, uid, query }); return flagIds.length; }; -Flags.getFlagIdsWithFilters = async function ({ filters, uid }) { +Flags.getFlagIdsWithFilters = async function ({ filters, uid, query }) { let sets = []; const orSets = []; @@ -170,6 +170,7 @@ Flags.getFlagIdsWithFilters = async function ({ filters, uid }) { const result = await plugins.hooks.fire('filter:flags.getFlagIdsWithFilters', { filters, uid, + query, flagIds, }); return result.flagIds; @@ -180,6 +181,7 @@ Flags.list = async function (data) { let flagIds = await Flags.getFlagIdsWithFilters({ filters, uid: data.uid, + query: data.query, }); flagIds = await Flags.sort(flagIds, data.sort); diff --git a/src/middleware/header.js b/src/middleware/header.js index 9bd0acaed7..4f5aaad734 100644 --- a/src/middleware/header.js +++ b/src/middleware/header.js @@ -109,6 +109,7 @@ middleware.renderHeader = async function renderHeader(req, res, data) { unreadCount: templateValues.unreadCount, } = await appendUnreadCounts({ uid: req.uid, + query: req.query, navigation: results.navigation, unreadData, })); @@ -152,7 +153,7 @@ middleware.renderHeader = async function renderHeader(req, res, data) { return await req.app.renderAsync('header', hookReturn.templateValues); }; -async function appendUnreadCounts({ uid, navigation, unreadData }) { +async function appendUnreadCounts({ uid, navigation, unreadData, query }) { const originalRoutes = navigation.map(nav => nav.originalRoute); const calls = { unreadData: topics.getUnreadData({ uid: uid }), @@ -162,6 +163,7 @@ async function appendUnreadCounts({ uid, navigation, unreadData }) { if (originalRoutes.includes('/flags') && await user.isPrivileged(uid)) { return flags.getCount({ uid, + query, filters: { quick: 'unresolved', cid: (await user.isAdminOrGlobalMod(uid)) ? [] : (await user.getModeratedCids(uid)),