secubox-openwrt/luci-app-network-modes/htdocs/luci-static/resources/view/network-modes/overview.js

403 lines
13 KiB
JavaScript
Raw Normal View History

2025-12-23 17:53:18 +00:00
'use strict';
'require view';
'require dom';
'require ui';
'require network-modes.api as api';
chore: Release v0.4.2 - Menu reorganization and CSS enhancements This release focuses on improved menu structure, enhanced CSS styling across all modules, and documentation cleanup. ## Menu & Navigation (2 modules) - Reorganized SecuBox menu with new "Network & Connectivity" category - Moved Network Modes from top-level to Network submenu - New menu path: admin/secubox/network/modes ## Network Modes Enhancements (14 files) - Enhanced all mode views: Overview, Wizard, Router, Multi-WAN, Double NAT, Access Point, Relay, VPN Relay, Travel, Sniffer, Settings - Improved dashboard.css styling - Updated API and helpers for better functionality ## System Hub Improvements (11 files) - Added dedicated CSS files for Backup and Health views - Enhanced styling: common.css, components.css, logs.css, services.css - Updated views: backup.js, components.js, health.js, logs.js, services.js - Removed deprecated settings.js view ## SecuBox Dashboard Updates (4 files) - Refined dashboard.css and modules.css styling - Enhanced dashboard.js and modules.js functionality ## Theme Updates (1 file) - Improved navigation.css component styling ## Documentation Cleanup (15 files deleted) - Removed obsolete documentation from docs/ directory - Migrated documentation to DOCS/ (uppercase) structure - Cleaned up archive files and outdated guides ## Configuration (1 file) - Updated Claude settings for new permissions Summary: - 50 files changed - 3 modules enhanced (network-modes, system-hub, secubox) - 15 documentation files cleaned up - 2 new CSS files added - Menu structure reorganized 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 18:07:44 +00:00
'require network-modes.helpers as helpers';
'require secubox/help as Help';
feat: Integrate global CyberMood theme into core modules Migrated three core modules to use the global secubox-theme package: Modules Updated: - luci-app-secubox (dashboard, modules views) - luci-app-network-modes (overview view) - luci-app-system-hub (overview, services views) Changes Per Module: - Replaced module-specific theme imports with 'require secubox-theme/theme as Theme' - Updated CSS imports to use global secubox-theme.css bundle - Initialized global theme with Theme.init({ theme: 'dark', language: 'en' }) - Removed redundant theme.getTheme() calls from load() functions - Added global theme CSS link tags to view renders Benefits: - Unified CyberMood design system across all modules - Access to 100+ CSS variables (colors, spacing, effects) - Theme switching support (dark, light, cyberpunk) - Multi-language support (en, fr, de, es) via Theme.t() - Reduced CSS duplication - Consistent UI components (cards, buttons, badges) Deployment: - Created deploy-modules-with-theme.sh for batch deployment - All modules successfully deployed to router 192.168.8.191 - Verified HTTP access to updated JavaScript files Testing: - ✅ SecuBox dashboard loads with global theme - ✅ Network-modes overview uses theme CSS - ✅ System-hub views integrate theme properly - ✅ All 27 view files deployed successfully Next Steps: - Modules can now use Theme.createCard(), createButton(), createBadge() - Translation keys available for internationalization - Theme variants switchable via Theme.apply('dark'|'light'|'cyberpunk') 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 16:16:31 +00:00
'require secubox-theme/theme as Theme';
feat: Release v0.4.3 - Dual menu access and enhanced permissions This release adds dual menu access for Network Modes (both SecuBox and LuCI Network menus) and significantly expands RPCD permissions for all mode configuration operations. ## Network Modes - Dual Menu Access (2 files) - Added Network Modes to standard LuCI Network menu (admin/network/modes) - Maintains existing SecuBox menu location (admin/secubox/network/modes) - Users can now access Network Modes from both locations - Menu order: 60 in Network menu, 10 in SecuBox Network category ## Network Modes - Enhanced Permissions (1 file) Added 13+ new RPCD methods to ACL for complete mode management: Read permissions: - preview_changes - sniffer_config, ap_config, relay_config, router_config - travel_config, doublenat_config, multiwan_config, vpnrelay_config - travel_scan_networks Write permissions: - apply_mode, confirm_mode, rollback - update_settings - generate_wireguard_keys, apply_wireguard_config - apply_mtu_clamping, enable_tcp_bbr - add_vhost, generate_config ## Network Modes - View Updates (11 files) Updated all mode views for consistency: - helpers.js: 28 lines refactored - overview.js: Enhanced view structure - All mode views: wizard, router, multiwan, doublenat, accesspoint, relay, vpnrelay, travel, sniffer ## Theme Enhancements (1 file) - theme.js: 89 lines added - Enhanced theme initialization and configuration - Improved component styling support ## SecuBox Dashboard (2 files) - Updated dashboard.js and modules.js - Improved view rendering and integration ## System Hub (3 files) - Enhanced logs.js, overview.js, services.js - Better view consistency and functionality Summary: - 19 files changed (+282, -36) - Dual menu access for Network Modes - 13+ new RPCD permission methods - All network mode views updated - Theme significantly enhanced 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 18:24:40 +00:00
// Initialize global theme respecting LuCI preferences
var nmLang = (typeof L !== 'undefined' && L.env && L.env.lang) ||
(document.documentElement && document.documentElement.getAttribute('lang')) ||
(navigator.language ? navigator.language.split('-')[0] : 'en');
Theme.init({ language: nmLang });
2025-12-23 17:53:18 +00:00
return view.extend({
title: _('Network Modes'),
feat: Integrate global CyberMood theme into core modules Migrated three core modules to use the global secubox-theme package: Modules Updated: - luci-app-secubox (dashboard, modules views) - luci-app-network-modes (overview view) - luci-app-system-hub (overview, services views) Changes Per Module: - Replaced module-specific theme imports with 'require secubox-theme/theme as Theme' - Updated CSS imports to use global secubox-theme.css bundle - Initialized global theme with Theme.init({ theme: 'dark', language: 'en' }) - Removed redundant theme.getTheme() calls from load() functions - Added global theme CSS link tags to view renders Benefits: - Unified CyberMood design system across all modules - Access to 100+ CSS variables (colors, spacing, effects) - Theme switching support (dark, light, cyberpunk) - Multi-language support (en, fr, de, es) via Theme.t() - Reduced CSS duplication - Consistent UI components (cards, buttons, badges) Deployment: - Created deploy-modules-with-theme.sh for batch deployment - All modules successfully deployed to router 192.168.8.191 - Verified HTTP access to updated JavaScript files Testing: - ✅ SecuBox dashboard loads with global theme - ✅ Network-modes overview uses theme CSS - ✅ System-hub views integrate theme properly - ✅ All 27 view files deployed successfully Next Steps: - Modules can now use Theme.createCard(), createButton(), createBadge() - Translation keys available for internationalization - Theme variants switchable via Theme.apply('dark'|'light'|'cyberpunk') 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 16:16:31 +00:00
2025-12-23 17:53:18 +00:00
load: function() {
return api.getAllData();
},
handleModeSwitch: function(mode) {
var self = this;
ui.showModal(_('Switch Mode'), [
E('p', {}, _('Are you sure you want to switch to ') + mode + _(' mode?')),
E('p', { 'class': 'nm-alert nm-alert-warning' }, [
E('span', { 'class': 'nm-alert-icon' }, '⚠️'),
E('div', {}, [
E('div', { 'class': 'nm-alert-title' }, _('Warning')),
E('div', { 'class': 'nm-alert-text' }, _('This will change network configuration. A backup will be created.'))
])
]),
E('div', { 'class': 'right' }, [
E('button', {
'class': 'btn',
'click': ui.hideModal
}, _('Cancel')),
' ',
E('button', {
'class': 'btn cbi-button-positive',
'click': function() {
ui.hideModal();
return api.applyMode(mode).then(function(result) {
if (result.success) {
ui.addNotification(null, E('p', {}, result.message), 'success');
window.location.reload();
} else {
ui.addNotification(null, E('p', {}, 'Error: ' + result.error), 'error');
}
});
}
}, _('Switch Mode'))
])
]);
},
render: function(data) {
var self = this;
var status = data.status || {};
var modesData = (data.modes || {}).modes || [];
var currentMode = status.current_mode || 'router';
feat: Version 0.4.1 - Enhanced network modes and system improvements Major Enhancements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes Module: - Added 3 new network modes: * Double NAT mode (doublenat.js) - Cascaded router configuration * Multi-WAN mode (multiwan.js) - Load balancing and failover * VPN Relay mode (vpnrelay.js) - VPN gateway configuration - Enhanced existing modes: * Access Point improvements * Travel mode refinements * Router mode enhancements * Relay mode updates * Sniffer mode optimizations - Updated wizard with new mode options - Enhanced API with new mode support - Improved dashboard CSS styling - Updated helpers for new modes - Extended RPCD backend functionality - Updated menu structure for new modes - Enhanced UCI configuration System Hub Module: - Added dedicated logs.css stylesheet - Enhanced logs.js view with better styling - Improved overview.css responsive design - Enhanced services.css for better UX - Updated overview.js with theme integration - Improved services.js layout SecuBox Dashboard: - Enhanced dashboard.css with theme variables - Improved dashboard.js responsiveness - Better integration with global theme Files Changed: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes (17 files): Modified: api.js, dashboard.css, helpers.js, menu, config, RPCD backend Modified Views: accesspoint, overview, relay, router, sniffer, travel, wizard New Views: doublenat, multiwan, vpnrelay System Hub (6 files): New: logs.css Modified: overview.css, services.css, logs.js, overview.js, services.js SecuBox (2 files): Modified: dashboard.css, dashboard.js Total: 25 files changed (21 modified, 4 new) Technical Improvements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - Global theme CSS variable usage - Responsive design enhancements - Improved error handling - Better mode validation - Enhanced user feedback - Optimized CSS performance - Improved accessibility Network Mode Capabilities: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1. Router Mode - Standard routing 2. Access Point Mode - WiFi AP with bridge 3. Relay Mode - WiFi repeater/extender 4. Travel Mode - Portable router configuration 5. Sniffer Mode - Network monitoring 6. Double NAT Mode - Cascaded NAT for network isolation (NEW) 7. Multi-WAN Mode - Multiple uplinks with load balancing (NEW) 8. VPN Relay Mode - VPN gateway and tunnel endpoint (NEW) Breaking Changes: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ None - All changes are backward compatible 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 17:12:28 +00:00
// Build a full mode map using backend data + fallbacks
var baseOrder = ['router', 'doublenat', 'multiwan', 'vpnrelay', 'bridge', 'accesspoint', 'relay', 'travel', 'sniffer'];
var modeInfos = {};
// Prime with RPC payload so description/icon/features stay in sync
modesData.forEach(function(mode) {
var fallback = api.getModeInfo(mode.id || '');
modeInfos[mode.id] = Object.assign({}, fallback, {
id: mode.id,
name: mode.name || (fallback && fallback.name) || mode.id,
icon: mode.icon || (fallback && fallback.icon) || '🌐',
description: mode.description || (fallback && fallback.description) || '',
features: Array.isArray(mode.features) && mode.features.length
? mode.features
: (fallback && fallback.features) || []
});
});
// Ensure every known mode has a definition, even if RPC omitted it
baseOrder.concat(['sniffer']).forEach(function(mode) {
if (!modeInfos[mode]) {
modeInfos[mode] = api.getModeInfo(mode);
}
});
// Preserve RPC ordering but guarantee canonical fallback + sniffer tab
var modeOrder = modesData.map(function(mode) { return mode.id; });
baseOrder.forEach(function(mode) {
if (modeOrder.indexOf(mode) === -1)
modeOrder.push(mode);
});
if (modeOrder.indexOf('sniffer') === -1)
modeOrder.push('sniffer');
var currentModeInfo = modeInfos[currentMode] || api.getModeInfo(currentMode);
2025-12-23 17:53:18 +00:00
var view = E('div', { 'class': 'network-modes-dashboard' }, [
feat: Integrate global CyberMood theme into core modules Migrated three core modules to use the global secubox-theme package: Modules Updated: - luci-app-secubox (dashboard, modules views) - luci-app-network-modes (overview view) - luci-app-system-hub (overview, services views) Changes Per Module: - Replaced module-specific theme imports with 'require secubox-theme/theme as Theme' - Updated CSS imports to use global secubox-theme.css bundle - Initialized global theme with Theme.init({ theme: 'dark', language: 'en' }) - Removed redundant theme.getTheme() calls from load() functions - Added global theme CSS link tags to view renders Benefits: - Unified CyberMood design system across all modules - Access to 100+ CSS variables (colors, spacing, effects) - Theme switching support (dark, light, cyberpunk) - Multi-language support (en, fr, de, es) via Theme.t() - Reduced CSS duplication - Consistent UI components (cards, buttons, badges) Deployment: - Created deploy-modules-with-theme.sh for batch deployment - All modules successfully deployed to router 192.168.8.191 - Verified HTTP access to updated JavaScript files Testing: - ✅ SecuBox dashboard loads with global theme - ✅ Network-modes overview uses theme CSS - ✅ System-hub views integrate theme properly - ✅ All 27 view files deployed successfully Next Steps: - Modules can now use Theme.createCard(), createButton(), createBadge() - Translation keys available for internationalization - Theme variants switchable via Theme.apply('dark'|'light'|'cyberpunk') 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 16:16:31 +00:00
// Load global theme CSS
E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }),
E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox/help.css') }),
feat: Integrate global CyberMood theme into core modules Migrated three core modules to use the global secubox-theme package: Modules Updated: - luci-app-secubox (dashboard, modules views) - luci-app-network-modes (overview view) - luci-app-system-hub (overview, services views) Changes Per Module: - Replaced module-specific theme imports with 'require secubox-theme/theme as Theme' - Updated CSS imports to use global secubox-theme.css bundle - Initialized global theme with Theme.init({ theme: 'dark', language: 'en' }) - Removed redundant theme.getTheme() calls from load() functions - Added global theme CSS link tags to view renders Benefits: - Unified CyberMood design system across all modules - Access to 100+ CSS variables (colors, spacing, effects) - Theme switching support (dark, light, cyberpunk) - Multi-language support (en, fr, de, es) via Theme.t() - Reduced CSS duplication - Consistent UI components (cards, buttons, badges) Deployment: - Created deploy-modules-with-theme.sh for batch deployment - All modules successfully deployed to router 192.168.8.191 - Verified HTTP access to updated JavaScript files Testing: - ✅ SecuBox dashboard loads with global theme - ✅ Network-modes overview uses theme CSS - ✅ System-hub views integrate theme properly - ✅ All 27 view files deployed successfully Next Steps: - Modules can now use Theme.createCard(), createButton(), createBadge() - Translation keys available for internationalization - Theme variants switchable via Theme.apply('dark'|'light'|'cyberpunk') 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 16:16:31 +00:00
E('link', { 'rel': 'stylesheet', 'href': L.resource('network-modes/dashboard.css') }),
chore: Release v0.4.2 - Menu reorganization and CSS enhancements This release focuses on improved menu structure, enhanced CSS styling across all modules, and documentation cleanup. ## Menu & Navigation (2 modules) - Reorganized SecuBox menu with new "Network & Connectivity" category - Moved Network Modes from top-level to Network submenu - New menu path: admin/secubox/network/modes ## Network Modes Enhancements (14 files) - Enhanced all mode views: Overview, Wizard, Router, Multi-WAN, Double NAT, Access Point, Relay, VPN Relay, Travel, Sniffer, Settings - Improved dashboard.css styling - Updated API and helpers for better functionality ## System Hub Improvements (11 files) - Added dedicated CSS files for Backup and Health views - Enhanced styling: common.css, components.css, logs.css, services.css - Updated views: backup.js, components.js, health.js, logs.js, services.js - Removed deprecated settings.js view ## SecuBox Dashboard Updates (4 files) - Refined dashboard.css and modules.css styling - Enhanced dashboard.js and modules.js functionality ## Theme Updates (1 file) - Improved navigation.css component styling ## Documentation Cleanup (15 files deleted) - Removed obsolete documentation from docs/ directory - Migrated documentation to DOCS/ (uppercase) structure - Cleaned up archive files and outdated guides ## Configuration (1 file) - Updated Claude settings for new permissions Summary: - 50 files changed - 3 modules enhanced (network-modes, system-hub, secubox) - 15 documentation files cleaned up - 2 new CSS files added - Menu structure reorganized 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 18:07:44 +00:00
helpers.createNavigationTabs('overview'),
2025-12-29 01:02:44 +00:00
this.renderHeader(status, currentModeInfo),
2025-12-23 17:53:18 +00:00
// Current Mode Display Card
E('div', { 'class': 'nm-current-mode-card' }, [
E('div', { 'class': 'nm-current-mode-header' }, [
E('div', { 'class': 'nm-current-mode-icon' }, currentModeInfo ? currentModeInfo.icon : '🌐'),
E('div', { 'class': 'nm-current-mode-info' }, [
E('div', { 'class': 'nm-current-mode-label' }, 'Current Network Mode'),
E('h2', { 'class': 'nm-current-mode-name' }, currentModeInfo ? currentModeInfo.name : currentMode)
])
]),
E('div', { 'class': 'nm-current-mode-description' },
currentModeInfo ? currentModeInfo.description : 'Unknown mode'),
E('div', { 'class': 'nm-current-mode-config' }, [
E('div', { 'class': 'nm-config-item' }, [
E('span', { 'class': 'nm-config-label' }, 'WAN IP:'),
E('span', { 'class': 'nm-config-value' }, status.wan_ip || 'N/A')
]),
E('div', { 'class': 'nm-config-item' }, [
E('span', { 'class': 'nm-config-label' }, 'LAN IP:'),
E('span', { 'class': 'nm-config-value' }, status.lan_ip || 'N/A')
]),
E('div', { 'class': 'nm-config-item' }, [
E('span', { 'class': 'nm-config-label' }, 'DHCP Server:'),
E('span', { 'class': 'nm-config-value' }, status.dhcp_enabled ? 'Enabled' : 'Disabled')
])
]),
E('button', {
'class': 'nm-change-mode-btn',
'click': function() {
window.location.hash = '#admin/secubox/network/network-modes/wizard';
}
}, '🔄 Change Mode')
]),
// Mode Comparison Table
E('div', { 'class': 'nm-comparison-card' }, [
E('h3', { 'class': 'nm-comparison-title' }, 'Mode Comparison Table'),
E('div', { 'class': 'nm-comparison-table-wrapper' }, [
E('table', { 'class': 'nm-comparison-table' }, [
E('thead', {}, [
E('tr', {}, [
feat: Version 0.4.1 - Enhanced network modes and system improvements Major Enhancements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes Module: - Added 3 new network modes: * Double NAT mode (doublenat.js) - Cascaded router configuration * Multi-WAN mode (multiwan.js) - Load balancing and failover * VPN Relay mode (vpnrelay.js) - VPN gateway configuration - Enhanced existing modes: * Access Point improvements * Travel mode refinements * Router mode enhancements * Relay mode updates * Sniffer mode optimizations - Updated wizard with new mode options - Enhanced API with new mode support - Improved dashboard CSS styling - Updated helpers for new modes - Extended RPCD backend functionality - Updated menu structure for new modes - Enhanced UCI configuration System Hub Module: - Added dedicated logs.css stylesheet - Enhanced logs.js view with better styling - Improved overview.css responsive design - Enhanced services.css for better UX - Updated overview.js with theme integration - Improved services.js layout SecuBox Dashboard: - Enhanced dashboard.css with theme variables - Improved dashboard.js responsiveness - Better integration with global theme Files Changed: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes (17 files): Modified: api.js, dashboard.css, helpers.js, menu, config, RPCD backend Modified Views: accesspoint, overview, relay, router, sniffer, travel, wizard New Views: doublenat, multiwan, vpnrelay System Hub (6 files): New: logs.css Modified: overview.css, services.css, logs.js, overview.js, services.js SecuBox (2 files): Modified: dashboard.css, dashboard.js Total: 25 files changed (21 modified, 4 new) Technical Improvements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - Global theme CSS variable usage - Responsive design enhancements - Improved error handling - Better mode validation - Enhanced user feedback - Optimized CSS performance - Improved accessibility Network Mode Capabilities: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1. Router Mode - Standard routing 2. Access Point Mode - WiFi AP with bridge 3. Relay Mode - WiFi repeater/extender 4. Travel Mode - Portable router configuration 5. Sniffer Mode - Network monitoring 6. Double NAT Mode - Cascaded NAT for network isolation (NEW) 7. Multi-WAN Mode - Multiple uplinks with load balancing (NEW) 8. VPN Relay Mode - VPN gateway and tunnel endpoint (NEW) Breaking Changes: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ None - All changes are backward compatible 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 17:12:28 +00:00
E('th', {}, 'Feature')
].concat(baseOrder.map(function(modeId) {
var info = modeInfos[modeId] || api.getModeInfo(modeId);
return E('th', {
'class': currentMode === modeId ? 'active-mode' : ''
}, (info.icon || '') + ' ' + (info.name || modeId));
})))
]),
feat: Version 0.4.1 - Enhanced network modes and system improvements Major Enhancements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes Module: - Added 3 new network modes: * Double NAT mode (doublenat.js) - Cascaded router configuration * Multi-WAN mode (multiwan.js) - Load balancing and failover * VPN Relay mode (vpnrelay.js) - VPN gateway configuration - Enhanced existing modes: * Access Point improvements * Travel mode refinements * Router mode enhancements * Relay mode updates * Sniffer mode optimizations - Updated wizard with new mode options - Enhanced API with new mode support - Improved dashboard CSS styling - Updated helpers for new modes - Extended RPCD backend functionality - Updated menu structure for new modes - Enhanced UCI configuration System Hub Module: - Added dedicated logs.css stylesheet - Enhanced logs.js view with better styling - Improved overview.css responsive design - Enhanced services.css for better UX - Updated overview.js with theme integration - Improved services.js layout SecuBox Dashboard: - Enhanced dashboard.css with theme variables - Improved dashboard.js responsiveness - Better integration with global theme Files Changed: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes (17 files): Modified: api.js, dashboard.css, helpers.js, menu, config, RPCD backend Modified Views: accesspoint, overview, relay, router, sniffer, travel, wizard New Views: doublenat, multiwan, vpnrelay System Hub (6 files): New: logs.css Modified: overview.css, services.css, logs.js, overview.js, services.js SecuBox (2 files): Modified: dashboard.css, dashboard.js Total: 25 files changed (21 modified, 4 new) Technical Improvements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - Global theme CSS variable usage - Responsive design enhancements - Improved error handling - Better mode validation - Enhanced user feedback - Optimized CSS performance - Improved accessibility Network Mode Capabilities: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1. Router Mode - Standard routing 2. Access Point Mode - WiFi AP with bridge 3. Relay Mode - WiFi repeater/extender 4. Travel Mode - Portable router configuration 5. Sniffer Mode - Network monitoring 6. Double NAT Mode - Cascaded NAT for network isolation (NEW) 7. Multi-WAN Mode - Multiple uplinks with load balancing (NEW) 8. VPN Relay Mode - VPN gateway and tunnel endpoint (NEW) Breaking Changes: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ None - All changes are backward compatible 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 17:12:28 +00:00
E('tbody', {}, (function() {
var comparisonRows = [
{
label: 'Use Case',
values: {
router: 'Home/Office',
doublenat: 'Behind ISP box',
multiwan: 'Dual uplinks',
vpnrelay: 'VPN gateway',
bridge: 'Layer 2 passthrough',
accesspoint: 'WiFi Hotspot',
relay: 'WiFi Extender',
travel: 'Hotel / Travel kit',
sniffer: 'Packet capture / TAP'
}
},
{
label: 'WAN Ports',
values: {
router: '1 port',
doublenat: 'WAN DHCP',
multiwan: '2 uplinks',
vpnrelay: 'VPN tunnel',
bridge: 'All bridged',
accesspoint: '1 uplink',
relay: 'WiFi uplink',
travel: 'WiFi or USB',
sniffer: 'Monitor source port'
}
},
{
label: 'LAN Ports',
values: {
router: 'Multiple',
doublenat: 'LAN + Guest',
multiwan: 'All ports',
vpnrelay: 'Policy-based',
bridge: 'All ports',
accesspoint: 'All ports',
relay: 'All ports',
travel: 'All ports',
sniffer: 'Mirror to capture'
}
},
{
label: 'WiFi Role',
values: {
router: 'Access Point',
doublenat: 'Router',
multiwan: 'Router',
vpnrelay: 'Router',
bridge: 'Optional AP',
accesspoint: 'AP only',
relay: 'Client + AP',
travel: 'Client + AP',
sniffer: 'Monitor mode'
}
},
{
label: 'DHCP Server',
values: {
router: 'Yes',
doublenat: 'Yes',
multiwan: 'Yes',
vpnrelay: 'Optional',
bridge: 'No',
accesspoint: 'No',
relay: 'Yes',
travel: 'Yes',
sniffer: 'No'
}
},
{
label: 'NAT',
values: {
router: 'Enabled',
doublenat: 'Double layer',
multiwan: 'Enabled',
vpnrelay: 'VPN NAT',
bridge: 'Disabled',
accesspoint: 'Disabled',
relay: 'Enabled',
travel: 'Enabled',
sniffer: 'Disabled'
}
}
];
return comparisonRows.map(function(row) {
return E('tr', {}, [
E('td', { 'class': 'feature-label' }, row.label)
].concat(baseOrder.map(function(modeId) {
return E('td', {
'class': currentMode === modeId ? 'active-mode' : ''
}, row.values[modeId] || '—');
})));
});
})())
])
2025-12-23 17:53:18 +00:00
])
]),
2025-12-23 17:53:18 +00:00
// Mode Selection Grid
E('div', { 'class': 'nm-modes-grid' },
feat: Version 0.4.1 - Enhanced network modes and system improvements Major Enhancements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes Module: - Added 3 new network modes: * Double NAT mode (doublenat.js) - Cascaded router configuration * Multi-WAN mode (multiwan.js) - Load balancing and failover * VPN Relay mode (vpnrelay.js) - VPN gateway configuration - Enhanced existing modes: * Access Point improvements * Travel mode refinements * Router mode enhancements * Relay mode updates * Sniffer mode optimizations - Updated wizard with new mode options - Enhanced API with new mode support - Improved dashboard CSS styling - Updated helpers for new modes - Extended RPCD backend functionality - Updated menu structure for new modes - Enhanced UCI configuration System Hub Module: - Added dedicated logs.css stylesheet - Enhanced logs.js view with better styling - Improved overview.css responsive design - Enhanced services.css for better UX - Updated overview.js with theme integration - Improved services.js layout SecuBox Dashboard: - Enhanced dashboard.css with theme variables - Improved dashboard.js responsiveness - Better integration with global theme Files Changed: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes (17 files): Modified: api.js, dashboard.css, helpers.js, menu, config, RPCD backend Modified Views: accesspoint, overview, relay, router, sniffer, travel, wizard New Views: doublenat, multiwan, vpnrelay System Hub (6 files): New: logs.css Modified: overview.css, services.css, logs.js, overview.js, services.js SecuBox (2 files): Modified: dashboard.css, dashboard.js Total: 25 files changed (21 modified, 4 new) Technical Improvements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - Global theme CSS variable usage - Responsive design enhancements - Improved error handling - Better mode validation - Enhanced user feedback - Optimized CSS performance - Improved accessibility Network Mode Capabilities: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1. Router Mode - Standard routing 2. Access Point Mode - WiFi AP with bridge 3. Relay Mode - WiFi repeater/extender 4. Travel Mode - Portable router configuration 5. Sniffer Mode - Network monitoring 6. Double NAT Mode - Cascaded NAT for network isolation (NEW) 7. Multi-WAN Mode - Multiple uplinks with load balancing (NEW) 8. VPN Relay Mode - VPN gateway and tunnel endpoint (NEW) Breaking Changes: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ None - All changes are backward compatible 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 17:12:28 +00:00
modeOrder.map(function(modeId) {
2025-12-23 17:53:18 +00:00
var info = modeInfos[modeId];
feat: Version 0.4.1 - Enhanced network modes and system improvements Major Enhancements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes Module: - Added 3 new network modes: * Double NAT mode (doublenat.js) - Cascaded router configuration * Multi-WAN mode (multiwan.js) - Load balancing and failover * VPN Relay mode (vpnrelay.js) - VPN gateway configuration - Enhanced existing modes: * Access Point improvements * Travel mode refinements * Router mode enhancements * Relay mode updates * Sniffer mode optimizations - Updated wizard with new mode options - Enhanced API with new mode support - Improved dashboard CSS styling - Updated helpers for new modes - Extended RPCD backend functionality - Updated menu structure for new modes - Enhanced UCI configuration System Hub Module: - Added dedicated logs.css stylesheet - Enhanced logs.js view with better styling - Improved overview.css responsive design - Enhanced services.css for better UX - Updated overview.js with theme integration - Improved services.js layout SecuBox Dashboard: - Enhanced dashboard.css with theme variables - Improved dashboard.js responsiveness - Better integration with global theme Files Changed: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes (17 files): Modified: api.js, dashboard.css, helpers.js, menu, config, RPCD backend Modified Views: accesspoint, overview, relay, router, sniffer, travel, wizard New Views: doublenat, multiwan, vpnrelay System Hub (6 files): New: logs.css Modified: overview.css, services.css, logs.js, overview.js, services.js SecuBox (2 files): Modified: dashboard.css, dashboard.js Total: 25 files changed (21 modified, 4 new) Technical Improvements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - Global theme CSS variable usage - Responsive design enhancements - Improved error handling - Better mode validation - Enhanced user feedback - Optimized CSS performance - Improved accessibility Network Mode Capabilities: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1. Router Mode - Standard routing 2. Access Point Mode - WiFi AP with bridge 3. Relay Mode - WiFi repeater/extender 4. Travel Mode - Portable router configuration 5. Sniffer Mode - Network monitoring 6. Double NAT Mode - Cascaded NAT for network isolation (NEW) 7. Multi-WAN Mode - Multiple uplinks with load balancing (NEW) 8. VPN Relay Mode - VPN gateway and tunnel endpoint (NEW) Breaking Changes: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ None - All changes are backward compatible 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 17:12:28 +00:00
if (!info)
return null;
2025-12-23 17:53:18 +00:00
var isActive = modeId === currentMode;
feat: Version 0.4.1 - Enhanced network modes and system improvements Major Enhancements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes Module: - Added 3 new network modes: * Double NAT mode (doublenat.js) - Cascaded router configuration * Multi-WAN mode (multiwan.js) - Load balancing and failover * VPN Relay mode (vpnrelay.js) - VPN gateway configuration - Enhanced existing modes: * Access Point improvements * Travel mode refinements * Router mode enhancements * Relay mode updates * Sniffer mode optimizations - Updated wizard with new mode options - Enhanced API with new mode support - Improved dashboard CSS styling - Updated helpers for new modes - Extended RPCD backend functionality - Updated menu structure for new modes - Enhanced UCI configuration System Hub Module: - Added dedicated logs.css stylesheet - Enhanced logs.js view with better styling - Improved overview.css responsive design - Enhanced services.css for better UX - Updated overview.js with theme integration - Improved services.js layout SecuBox Dashboard: - Enhanced dashboard.css with theme variables - Improved dashboard.js responsiveness - Better integration with global theme Files Changed: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes (17 files): Modified: api.js, dashboard.css, helpers.js, menu, config, RPCD backend Modified Views: accesspoint, overview, relay, router, sniffer, travel, wizard New Views: doublenat, multiwan, vpnrelay System Hub (6 files): New: logs.css Modified: overview.css, services.css, logs.js, overview.js, services.js SecuBox (2 files): Modified: dashboard.css, dashboard.js Total: 25 files changed (21 modified, 4 new) Technical Improvements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - Global theme CSS variable usage - Responsive design enhancements - Improved error handling - Better mode validation - Enhanced user feedback - Optimized CSS performance - Improved accessibility Network Mode Capabilities: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1. Router Mode - Standard routing 2. Access Point Mode - WiFi AP with bridge 3. Relay Mode - WiFi repeater/extender 4. Travel Mode - Portable router configuration 5. Sniffer Mode - Network monitoring 6. Double NAT Mode - Cascaded NAT for network isolation (NEW) 7. Multi-WAN Mode - Multiple uplinks with load balancing (NEW) 8. VPN Relay Mode - VPN gateway and tunnel endpoint (NEW) Breaking Changes: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ None - All changes are backward compatible 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 17:12:28 +00:00
return E('div', {
2025-12-23 17:53:18 +00:00
'class': 'nm-mode-card ' + modeId + (isActive ? ' active' : ''),
'click': function() {
if (!isActive) {
self.handleModeSwitch(modeId);
}
}
}, [
isActive ? E('div', { 'class': 'nm-mode-active-indicator' }, 'Active') : '',
E('div', { 'class': 'nm-mode-header' }, [
E('div', { 'class': 'nm-mode-icon' }, info.icon),
E('div', { 'class': 'nm-mode-title' }, [
E('h3', {}, info.name),
E('p', {}, modeId.charAt(0).toUpperCase() + modeId.slice(1) + ' Mode')
])
]),
E('div', { 'class': 'nm-mode-description' }, info.description),
E('div', { 'class': 'nm-mode-features' },
feat: Version 0.4.1 - Enhanced network modes and system improvements Major Enhancements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes Module: - Added 3 new network modes: * Double NAT mode (doublenat.js) - Cascaded router configuration * Multi-WAN mode (multiwan.js) - Load balancing and failover * VPN Relay mode (vpnrelay.js) - VPN gateway configuration - Enhanced existing modes: * Access Point improvements * Travel mode refinements * Router mode enhancements * Relay mode updates * Sniffer mode optimizations - Updated wizard with new mode options - Enhanced API with new mode support - Improved dashboard CSS styling - Updated helpers for new modes - Extended RPCD backend functionality - Updated menu structure for new modes - Enhanced UCI configuration System Hub Module: - Added dedicated logs.css stylesheet - Enhanced logs.js view with better styling - Improved overview.css responsive design - Enhanced services.css for better UX - Updated overview.js with theme integration - Improved services.js layout SecuBox Dashboard: - Enhanced dashboard.css with theme variables - Improved dashboard.js responsiveness - Better integration with global theme Files Changed: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes (17 files): Modified: api.js, dashboard.css, helpers.js, menu, config, RPCD backend Modified Views: accesspoint, overview, relay, router, sniffer, travel, wizard New Views: doublenat, multiwan, vpnrelay System Hub (6 files): New: logs.css Modified: overview.css, services.css, logs.js, overview.js, services.js SecuBox (2 files): Modified: dashboard.css, dashboard.js Total: 25 files changed (21 modified, 4 new) Technical Improvements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - Global theme CSS variable usage - Responsive design enhancements - Improved error handling - Better mode validation - Enhanced user feedback - Optimized CSS performance - Improved accessibility Network Mode Capabilities: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1. Router Mode - Standard routing 2. Access Point Mode - WiFi AP with bridge 3. Relay Mode - WiFi repeater/extender 4. Travel Mode - Portable router configuration 5. Sniffer Mode - Network monitoring 6. Double NAT Mode - Cascaded NAT for network isolation (NEW) 7. Multi-WAN Mode - Multiple uplinks with load balancing (NEW) 8. VPN Relay Mode - VPN gateway and tunnel endpoint (NEW) Breaking Changes: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ None - All changes are backward compatible 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 17:12:28 +00:00
(info.features || []).map(function(f) {
2025-12-23 17:53:18 +00:00
return E('span', { 'class': 'nm-mode-feature' }, [
E('span', { 'class': 'nm-mode-feature-icon' }, '✓'),
f
]);
})
)
]);
feat: Version 0.4.1 - Enhanced network modes and system improvements Major Enhancements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes Module: - Added 3 new network modes: * Double NAT mode (doublenat.js) - Cascaded router configuration * Multi-WAN mode (multiwan.js) - Load balancing and failover * VPN Relay mode (vpnrelay.js) - VPN gateway configuration - Enhanced existing modes: * Access Point improvements * Travel mode refinements * Router mode enhancements * Relay mode updates * Sniffer mode optimizations - Updated wizard with new mode options - Enhanced API with new mode support - Improved dashboard CSS styling - Updated helpers for new modes - Extended RPCD backend functionality - Updated menu structure for new modes - Enhanced UCI configuration System Hub Module: - Added dedicated logs.css stylesheet - Enhanced logs.js view with better styling - Improved overview.css responsive design - Enhanced services.css for better UX - Updated overview.js with theme integration - Improved services.js layout SecuBox Dashboard: - Enhanced dashboard.css with theme variables - Improved dashboard.js responsiveness - Better integration with global theme Files Changed: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Network Modes (17 files): Modified: api.js, dashboard.css, helpers.js, menu, config, RPCD backend Modified Views: accesspoint, overview, relay, router, sniffer, travel, wizard New Views: doublenat, multiwan, vpnrelay System Hub (6 files): New: logs.css Modified: overview.css, services.css, logs.js, overview.js, services.js SecuBox (2 files): Modified: dashboard.css, dashboard.js Total: 25 files changed (21 modified, 4 new) Technical Improvements: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - Global theme CSS variable usage - Responsive design enhancements - Improved error handling - Better mode validation - Enhanced user feedback - Optimized CSS performance - Improved accessibility Network Mode Capabilities: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1. Router Mode - Standard routing 2. Access Point Mode - WiFi AP with bridge 3. Relay Mode - WiFi repeater/extender 4. Travel Mode - Portable router configuration 5. Sniffer Mode - Network monitoring 6. Double NAT Mode - Cascaded NAT for network isolation (NEW) 7. Multi-WAN Mode - Multiple uplinks with load balancing (NEW) 8. VPN Relay Mode - VPN gateway and tunnel endpoint (NEW) Breaking Changes: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ None - All changes are backward compatible 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 17:12:28 +00:00
}).filter(function(card) { return !!card; })
2025-12-23 17:53:18 +00:00
),
// Interfaces Status
E('div', { 'class': 'nm-card' }, [
E('div', { 'class': 'nm-card-header' }, [
E('div', { 'class': 'nm-card-title' }, [
E('span', { 'class': 'nm-card-title-icon' }, '🔌'),
'Network Interfaces'
]),
E('div', { 'class': 'nm-card-badge' }, (status.interfaces || []).length + ' interfaces')
]),
E('div', { 'class': 'nm-card-body' }, [
E('div', { 'class': 'nm-interfaces-grid' },
(status.interfaces || []).map(function(iface) {
var icon = '🔌';
if (iface.name.startsWith('wlan') || iface.name.startsWith('wl')) icon = '📶';
else if (iface.name.startsWith('wg')) icon = '🔐';
else if (iface.name.startsWith('br')) icon = '🌉';
else if (iface.name.startsWith('eth')) icon = '🔗';
return E('div', { 'class': 'nm-interface-card' }, [
E('div', { 'class': 'nm-interface-icon' }, icon),
E('div', { 'class': 'nm-interface-info' }, [
E('div', { 'class': 'nm-interface-name' }, iface.name),
E('div', { 'class': 'nm-interface-ip' }, iface.ip || 'No IP')
]),
E('div', { 'class': 'nm-interface-status ' + iface.state })
]);
})
)
])
]),
// Services Status
E('div', { 'class': 'nm-card' }, [
E('div', { 'class': 'nm-card-header' }, [
E('div', { 'class': 'nm-card-title' }, [
E('span', { 'class': 'nm-card-title-icon' }, '🔧'),
'Services Status'
])
]),
E('div', { 'class': 'nm-card-body' }, [
E('div', { 'class': 'nm-interfaces-grid' },
[
{ name: 'Firewall', key: 'firewall', icon: '🛡️' },
{ name: 'DHCP/DNS', key: 'dnsmasq', icon: '📡' },
{ name: 'Netifyd', key: 'netifyd', icon: '🔍' },
{ name: 'Nginx', key: 'nginx', icon: '🌐' },
{ name: 'Squid', key: 'squid', icon: '🦑' }
].map(function(svc) {
var running = status.services && status.services[svc.key];
return E('div', { 'class': 'nm-interface-card' }, [
E('div', { 'class': 'nm-interface-icon' }, svc.icon),
E('div', { 'class': 'nm-interface-info' }, [
E('div', { 'class': 'nm-interface-name' }, svc.name),
E('div', { 'class': 'nm-interface-ip' }, running ? 'Running' : 'Stopped')
]),
E('div', { 'class': 'nm-interface-status ' + (running ? 'up' : 'down') })
]);
})
)
])
])
]);
// Include CSS
var cssLink = E('link', { 'rel': 'stylesheet', 'href': L.resource('network-modes/dashboard.css') });
document.head.appendChild(cssLink);
return view;
},
2025-12-29 01:02:44 +00:00
2025-12-29 08:03:49 +00:00
renderHeader: function(status, currentModeInfo) {
2025-12-29 01:02:44 +00:00
var modeName = currentModeInfo ? currentModeInfo.name : (status.current_mode || 'router');
var stats = [
2025-12-29 08:03:49 +00:00
{ label: _('Version'), value: status.version || _('Unknown'), icon: '🏷️' },
2025-12-29 06:51:33 +00:00
{ label: _('Mode'), value: modeName, icon: '🧭' },
{ label: _('WAN IP'), value: status.wan_ip || _('Unknown'), icon: '🌍' },
{ label: _('LAN IP'), value: status.lan_ip || _('Unknown'), icon: '🏠' }
2025-12-29 01:02:44 +00:00
];
2025-12-29 06:51:33 +00:00
return E('div', { 'class': 'sh-page-header sh-page-header-lite' }, [
2025-12-29 01:02:44 +00:00
E('div', {}, [
E('h2', { 'class': 'sh-page-title' }, [
E('span', { 'class': 'sh-page-title-icon' }, '🌐'),
_('Network Configuration')
]),
E('p', { 'class': 'sh-page-subtitle' },
_('Switch between curated router, bridge, relay, and travel modes.'))
]),
2025-12-29 06:51:33 +00:00
E('div', { 'class': 'sh-header-meta' }, stats.map(this.renderHeaderChip, this))
2025-12-29 01:02:44 +00:00
]);
},
2025-12-29 06:51:33 +00:00
renderHeaderChip: function(stat) {
return E('div', { 'class': 'sh-header-chip' }, [
E('span', { 'class': 'sh-chip-icon' }, stat.icon || '•'),
E('div', { 'class': 'sh-chip-text' }, [
E('span', { 'class': 'sh-chip-label' }, stat.label),
E('strong', {}, stat.value || '-')
])
2025-12-29 01:02:44 +00:00
]);
},
2025-12-23 17:53:18 +00:00
handleSaveApply: null,
handleSave: null,
handleReset: null
});