From d7a351a803bb6332659ed99d90d884dfda1dbfab Mon Sep 17 00:00:00 2001 From: Louis King Date: Sat, 14 Feb 2026 01:30:38 +0000 Subject: [PATCH 1/2] Respect FEATURE_MEMBERS flag in nodes list - Only fetch members data when feature is enabled - Hide member filter when feature is disabled - Hide member column when feature is disabled - Adjust table colspan dynamically based on feature Co-Authored-By: Claude Sonnet 4.5 --- .../web/static/js/spa/pages/nodes.js | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/meshcore_hub/web/static/js/spa/pages/nodes.js b/src/meshcore_hub/web/static/js/spa/pages/nodes.js index d21bc2c..dad02b0 100644 --- a/src/meshcore_hub/web/static/js/spa/pages/nodes.js +++ b/src/meshcore_hub/web/static/js/spa/pages/nodes.js @@ -17,6 +17,8 @@ export async function render(container, params, router) { const offset = (page - 1) * limit; const config = getConfig(); + const features = config.features || {}; + const showMembers = features.members !== false; const tz = config.timezone || ''; const tzBadge = tz && tz !== 'UTC' ? html`${tz}` : nothing; const navigate = (url) => router.navigate(url); @@ -37,17 +39,23 @@ ${content}`, container); renderPage(nothing); try { - const [data, membersData] = await Promise.all([ + const requests = [ apiGet('/api/v1/nodes', { limit, offset, search, adv_type, member_id }), - apiGet('/api/v1/members', { limit: 100 }), - ]); + ]; + if (showMembers) { + requests.push(apiGet('/api/v1/members', { limit: 100 })); + } + + const results = await Promise.all(requests); + const data = results[0]; + const membersData = showMembers ? results[1] : null; const nodes = data.items || []; const total = data.total || 0; const totalPages = Math.ceil(total / limit); - const members = membersData.items || []; + const members = membersData?.items || []; - const membersFilter = members.length > 0 + const membersFilter = (showMembers && members.length > 0) ? html`
` : nothing; - const membersFilter = members.length > 0 + const membersFilter = (showMembers && members.length > 0) ? html`