From 17ee7a3b2db772b25283b72d1baf4e087bed9051 Mon Sep 17 00:00:00 2001 From: Kibi Kelburton Date: Fri, 19 Jun 2026 14:47:08 +0200 Subject: [PATCH] add counter how many items are hidden from public --- src/inc/routes/nsfp.mjs | 12 +++++++++++- views/admin/nsfp.html | 11 ++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/inc/routes/nsfp.mjs b/src/inc/routes/nsfp.mjs index 4f178b3..3804b18 100644 --- a/src/inc/routes/nsfp.mjs +++ b/src/inc/routes/nsfp.mjs @@ -30,7 +30,17 @@ export default (router, tpl) => { : []; const tagMap = Object.fromEntries(tagRows.map(r => [r.id, r])); const enriched = ids.map(id => tagMap[id] || { id, tag: '(unknown)', normalized: null }); - return res.json({ success: true, nsfp: enriched, raw_ids: ids }); + + const blockedCount = ids.length > 0 + ? Number((await db` + SELECT COUNT(DISTINCT item_id) AS cnt + FROM tags_assign + WHERE tag_id IN ${db(ids)} + AND item_id IN (SELECT id FROM items WHERE active = true) + `)[0].cnt) + : 0; + + return res.json({ success: true, nsfp: enriched, raw_ids: ids, blocked_count: blockedCount }); } catch (err) { return res.json({ success: false, msg: err.message }, 500); } diff --git a/views/admin/nsfp.html b/views/admin/nsfp.html index 8671390..1ccfb58 100644 --- a/views/admin/nsfp.html +++ b/views/admin/nsfp.html @@ -13,7 +13,10 @@
-

Current NSFP Tags

+
+

Current NSFP Tags

+ +
Loading…
@@ -129,6 +132,12 @@ emptyEl.textContent = 'No NSFP tags configured \u2014 all content is public.'; chipsEl.appendChild(emptyEl); } + var statEl = document.getElementById('nsfp-blocked-stat'); + if (statEl) { + var n = data.blocked_count || 0; + statEl.textContent = n.toLocaleString() + ' item' + (n !== 1 ? 's' : '') + ' hidden from guests'; + statEl.style.color = n > 0 ? 'var(--accent)' : '#888'; + } }) .catch(function (e) { chipsEl.innerHTML = 'Failed to load: ' + escapeHtml(e.message) + '';