From b88f54d84119c06978a660ded5ccb34e46b424b1 Mon Sep 17 00:00:00 2001 From: CyberMind-FR Date: Fri, 9 Jan 2026 16:29:15 +0100 Subject: [PATCH] feat: Integrate Admin Control Panel and SecuBox Hub into portal navigation - Added 'Hub' link pointing to main SecuBox dashboard (luci-app-secubox) - Added 'Admin' link pointing to Admin Control Panel (luci-app-secubox-admin) - Updated section detection for proper active state highlighting - Organized sections: Portal, Hub, Admin, Security, Network, Monitoring, System - Improved path detection for all SecuBox apps and modules Co-Authored-By: Claude Opus 4.5 --- .../resources/secubox-portal/header.js | 39 ++++++++++++++----- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/package/secubox/luci-app-secubox-portal/htdocs/luci-static/resources/secubox-portal/header.js b/package/secubox/luci-app-secubox-portal/htdocs/luci-static/resources/secubox-portal/header.js index 2ddfab71..4ece9758 100644 --- a/package/secubox/luci-app-secubox-portal/htdocs/luci-static/resources/secubox-portal/header.js +++ b/package/secubox/luci-app-secubox-portal/htdocs/luci-static/resources/secubox-portal/header.js @@ -223,12 +223,13 @@ ul.tabs:has(~ .secubox-page-wrapper), `; var sections = [ - { id: 'dashboard', name: 'Dashboard', icon: '\ud83c\udfe0', path: 'admin/secubox/portal' }, + { id: 'portal', name: 'Portal', icon: '\ud83c\udfe0', path: 'admin/secubox/portal' }, + { id: 'hub', name: 'Hub', icon: '\ud83d\ude80', path: 'admin/secubox/dashboard' }, + { id: 'admin', name: 'Admin', icon: '\ud83c\udfdb\ufe0f', path: 'admin/secubox/admin/dashboard' }, { id: 'security', name: 'Security', icon: '\ud83d\udee1\ufe0f', path: 'admin/secubox/security' }, { id: 'network', name: 'Network', icon: '\ud83c\udf10', path: 'admin/secubox/network' }, { id: 'monitoring', name: 'Monitoring', icon: '\ud83d\udcca', path: 'admin/secubox/monitoring' }, - { id: 'system', name: 'System', icon: '\u2699\ufe0f', path: 'admin/secubox/system' }, - { id: 'apps', name: 'Apps', icon: '\ud83d\udce6', path: 'admin/secubox/apps' } + { id: 'system', name: 'System', icon: '\u2699\ufe0f', path: 'admin/secubox/system' } ]; function injectCSS() { @@ -276,18 +277,38 @@ function hideOpenWrtUI() { function detectActiveSection() { var path = window.location.pathname; + // Admin Control Panel + if (path.indexOf('/secubox/admin/') !== -1) return 'admin'; + // Security section if (path.indexOf('/secubox/security') !== -1) return 'security'; + if (path.indexOf('/secubox/crowdsec') !== -1) return 'security'; + if (path.indexOf('/secubox/auth-guardian') !== -1) return 'security'; + if (path.indexOf('/secubox/client-guardian') !== -1) return 'security'; + // Network section if (path.indexOf('/secubox/network') !== -1) return 'network'; + if (path.indexOf('/secubox/bandwidth') !== -1) return 'network'; + if (path.indexOf('/secubox/wireguard') !== -1) return 'network'; + if (path.indexOf('/secubox/traffic') !== -1) return 'network'; + // Monitoring section if (path.indexOf('/secubox/monitoring') !== -1) return 'monitoring'; if (path.indexOf('/secubox/ndpid') !== -1) return 'monitoring'; if (path.indexOf('/secubox/netifyd') !== -1) return 'monitoring'; + if (path.indexOf('/secubox/netdata') !== -1) return 'monitoring'; + if (path.indexOf('/secubox/mediaflow') !== -1) return 'monitoring'; + // System section if (path.indexOf('/secubox/system') !== -1) return 'system'; - if (path.indexOf('/secubox/apps') !== -1) return 'apps'; - if (path.indexOf('/secubox/admin') !== -1) return 'apps'; - if (path.indexOf('/secubox/services') !== -1) return 'apps'; - if (path.indexOf('/secubox/iot') !== -1) return 'apps'; - if (path.indexOf('/secubox/zigbee2mqtt') !== -1) return 'apps'; - return 'dashboard'; + if (path.indexOf('/secubox/system-hub') !== -1) return 'system'; + // Hub (main SecuBox app) + if (path.indexOf('/secubox/dashboard') !== -1) return 'hub'; + if (path.indexOf('/secubox/modules') !== -1) return 'hub'; + if (path.indexOf('/secubox/wizard') !== -1) return 'hub'; + if (path.indexOf('/secubox/alerts') !== -1) return 'hub'; + if (path.indexOf('/secubox/apps') !== -1) return 'hub'; + if (path.indexOf('/secubox/help') !== -1) return 'hub'; + if (path.indexOf('/secubox/settings') !== -1) return 'hub'; + // Portal (default) + if (path.indexOf('/secubox/portal') !== -1) return 'portal'; + return 'portal'; } return baseclass.extend({