From c40c5e8dbc489aa00ff0f756d06aaf70460a6245 Mon Sep 17 00:00:00 2001 From: CyberMind-FR Date: Tue, 30 Dec 2025 17:17:12 +0100 Subject: [PATCH] chore: sync luCI modules --- .../luci-static/resources/view/auth-guardian/bypass.js | 1 + .../luci-static/resources/view/auth-guardian/oauth.js | 1 + .../luci-static/resources/view/auth-guardian/overview.js | 1 + .../luci-static/resources/view/auth-guardian/sessions.js | 1 + .../luci-static/resources/view/auth-guardian/splash.js | 1 + .../luci-static/resources/view/auth-guardian/vouchers.js | 1 + .../resources/view/bandwidth-manager/classes.js | 1 + .../resources/view/bandwidth-manager/clients.js | 1 + .../luci-static/resources/view/bandwidth-manager/media.js | 1 + .../resources/view/bandwidth-manager/overview.js | 1 + .../luci-static/resources/view/bandwidth-manager/quotas.js | 7 ++++++- .../luci-static/resources/view/bandwidth-manager/rules.js | 7 ++++++- .../resources/view/bandwidth-manager/schedules.js | 1 + .../resources/view/bandwidth-manager/settings.js | 7 ++++++- .../luci-static/resources/view/bandwidth-manager/usage.js | 1 + .../luci-static/resources/view/client-guardian/alerts.js | 1 + .../luci-static/resources/view/client-guardian/captive.js | 1 + .../luci-static/resources/view/client-guardian/clients.js | 1 + .../luci-static/resources/view/client-guardian/logs.js | 1 + .../luci-static/resources/view/client-guardian/overview.js | 1 + .../luci-static/resources/view/client-guardian/parental.js | 1 + .../luci-static/resources/view/client-guardian/portal.js | 1 + .../luci-static/resources/view/client-guardian/settings.js | 6 +++++- .../luci-static/resources/view/client-guardian/zones.js | 1 + .../resources/view/crowdsec-dashboard/alerts.js | 1 + .../resources/view/crowdsec-dashboard/bouncers.js | 1 + .../resources/view/crowdsec-dashboard/decisions.js | 1 + .../resources/view/crowdsec-dashboard/metrics.js | 1 + .../resources/view/crowdsec-dashboard/overview.js | 1 + .../resources/view/crowdsec-dashboard/settings.js | 1 + .../htdocs/luci-static/resources/view/ksm-manager/audit.js | 1 + .../luci-static/resources/view/ksm-manager/certificates.js | 1 + .../htdocs/luci-static/resources/view/ksm-manager/hsm.js | 1 + .../htdocs/luci-static/resources/view/ksm-manager/keys.js | 1 + .../luci-static/resources/view/ksm-manager/overview.js | 1 + .../luci-static/resources/view/ksm-manager/secrets.js | 1 + .../luci-static/resources/view/ksm-manager/settings.js | 7 ++++++- .../htdocs/luci-static/resources/view/ksm-manager/ssh.js | 1 + .../htdocs/luci-static/resources/view/media-flow/alerts.js | 7 ++++++- .../luci-static/resources/view/media-flow/clients.js | 1 + .../luci-static/resources/view/media-flow/dashboard.js | 1 + .../luci-static/resources/view/media-flow/history.js | 1 + .../luci-static/resources/view/media-flow/services.js | 1 + .../resources/view/netdata-dashboard/network.js | 1 + .../resources/view/netdata-dashboard/processes.js | 1 + .../resources/view/netdata-dashboard/realtime.js | 1 + .../resources/view/netdata-dashboard/settings.js | 1 + .../luci-static/resources/view/netdata-dashboard/system.js | 1 + .../resources/view/netifyd-dashboard/applications.js | 1 + .../resources/view/netifyd-dashboard/devices.js | 1 + .../luci-static/resources/view/netifyd-dashboard/flows.js | 1 + .../resources/view/netifyd-dashboard/overview.js | 1 + .../luci-static/resources/view/netifyd-dashboard/risks.js | 1 + .../resources/view/netifyd-dashboard/settings.js | 1 + .../resources/view/netifyd-dashboard/talkers.js | 1 + .../luci-static/resources/view/netifyd-dashboard/wizard.js | 1 + .../htdocs/luci-static/resources/view/network-modes/dmz.js | 1 + .../root/usr/share/rpcd/acl.d/luci-app-network-modes.json | 1 + .../luci-static/resources/view/traffic-shaper/classes.js | 6 +++++- .../luci-static/resources/view/traffic-shaper/overview.js | 1 + .../luci-static/resources/view/traffic-shaper/presets.js | 1 + .../luci-static/resources/view/traffic-shaper/rules.js | 6 +++++- .../luci-static/resources/view/traffic-shaper/stats.js | 1 + .../resources/view/wireguard-dashboard/config.js | 1 + .../resources/view/wireguard-dashboard/overview.js | 1 + .../resources/view/wireguard-dashboard/peers.js | 1 + .../resources/view/wireguard-dashboard/qrcodes.js | 1 + .../resources/view/wireguard-dashboard/settings.js | 1 + .../resources/view/wireguard-dashboard/traffic.js | 1 + 69 files changed, 106 insertions(+), 8 deletions(-) diff --git a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/bypass.js b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/bypass.js index 87bf6912..26a256a5 100644 --- a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/bypass.js +++ b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/bypass.js @@ -7,6 +7,7 @@ return view.extend({ load: function() { return api.getBypassList(); }, render: function(data) { return E('div', {class:'cbi-map'}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, '⏭️ Bypass Rules'), E('p', {style:'color:#94a3b8;margin-bottom:20px'}, 'Devices and domains that bypass authentication.'), E('div', {style:'display:grid;grid-template-columns:repeat(3,1fr);gap:16px'}, [ diff --git a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/oauth.js b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/oauth.js index 32385105..9ee2526f 100644 --- a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/oauth.js +++ b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/oauth.js @@ -11,6 +11,7 @@ return view.extend({ var colors = {google:'#4285f4',github:'#333',facebook:'#1877f2',twitter:'#1da1f2'}; return E('div', {class:'cbi-map'}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, '🔑 OAuth Providers'), E('p', {style:'color:#94a3b8;margin-bottom:20px'}, 'Configure third-party authentication providers.'), E('div', {style:'display:grid;gap:16px'}, [ diff --git a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/overview.js b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/overview.js index d8a49e33..2f8d1041 100644 --- a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/overview.js +++ b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/overview.js @@ -12,6 +12,7 @@ return view.extend({ var sessions = data[1].sessions || []; return E('div', {class:'cbi-map'}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('style', {}, [ '.ag{font-family:system-ui,sans-serif}', '.ag-hdr{background:linear-gradient(135deg,#0891b2,#06b6d4);color:#fff;padding:24px;border-radius:12px;margin-bottom:20px}', diff --git a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/sessions.js b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/sessions.js index 86cc0703..d3907575 100644 --- a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/sessions.js +++ b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/sessions.js @@ -8,6 +8,7 @@ return view.extend({ render: function(data) { var sessions = data.sessions || []; return E('div', {class:'cbi-map'}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, '👥 Active Sessions'), E('div', {style:'background:#1e293b;padding:20px;border-radius:12px'}, [ sessions.length ? E('table', {style:'width:100%;color:#f1f5f9'}, [ diff --git a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/splash.js b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/splash.js index 745c5eee..757a8ad7 100644 --- a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/splash.js +++ b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/splash.js @@ -5,6 +5,7 @@ return view.extend({ render: function() { return E('div', {class:'cbi-map'}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, '🎨 Splash Page Editor'), E('p', {style:'color:#94a3b8'}, 'Customize the captive portal splash page appearance.'), E('div', {style:'display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px'}, [ diff --git a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/vouchers.js b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/vouchers.js index 3c0f0727..40b7d838 100644 --- a/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/vouchers.js +++ b/luci-app-auth-guardian/htdocs/luci-static/resources/view/auth-guardian/vouchers.js @@ -11,6 +11,7 @@ return view.extend({ var self = this; return E('div', {class:'cbi-map'}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, '🎟️ Access Vouchers'), E('div', {style:'margin-bottom:16px'}, [ E('button', {class:'cbi-button cbi-button-positive',click:function(){ diff --git a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/classes.js b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/classes.js index c96871bb..0018cf45 100644 --- a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/classes.js +++ b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/classes.js @@ -10,6 +10,7 @@ return view.extend({ var colors = ['#ef4444','#f59e0b','#eab308','#22c55e','#06b6d4','#3b82f6','#8b5cf6','#ec4899']; return E('div', {class:'cbi-map'}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('style', {}, '.qos-grid{display:grid;gap:16px}.qos-card{background:#1e293b;padding:20px;border-radius:12px;border-left:4px solid}.qos-name{font-size:18px;font-weight:600;color:#f1f5f9}.qos-desc{color:#94a3b8;font-size:13px;margin-top:4px}.qos-stats{display:flex;gap:20px;margin-top:16px}.qos-stat{text-align:center}.qos-stat-val{font-size:24px;font-weight:700}.qos-stat-lbl{font-size:11px;color:#64748b}'), E('h2', {}, '📊 QoS Priority Classes'), E('p', {style:'color:#94a3b8;margin-bottom:20px'}, '8 priority levels for traffic classification. Lower number = higher priority.'), diff --git a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/clients.js b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/clients.js index 30898d9a..6817bf5f 100644 --- a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/clients.js +++ b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/clients.js @@ -8,6 +8,7 @@ return view.extend({ render: function(data) { var clients = data.clients || []; return E('div', {class:'cbi-map'}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, '👥 Connected Clients'), E('div', {style:'background:#1e293b;padding:20px;border-radius:12px;margin-top:20px'}, [ clients.length ? E('table', {style:'width:100%;color:#f1f5f9'}, [ diff --git a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/media.js b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/media.js index b53cf079..dc76161f 100644 --- a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/media.js +++ b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/media.js @@ -11,6 +11,7 @@ return view.extend({ var colors = {voip:'#22c55e',gaming:'#f59e0b',streaming:'#ef4444',download:'#3b82f6',social:'#ec4899',work:'#8b5cf6'}; return E('div', {class:'cbi-map'}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, '🎯 Media Detection'), E('p', {style:'color:#94a3b8'}, 'Automatic traffic classification based on ports, protocols, and domains.'), E('div', {style:'display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px'}, media.map(function(m) { diff --git a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/overview.js b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/overview.js index 8deb425b..ff00e4ee 100644 --- a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/overview.js +++ b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/overview.js @@ -18,6 +18,7 @@ return L.view.extend({ var quotas = data[2] || []; var v = E('div', { 'class': 'cbi-map' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('Bandwidth Manager - Overview')), E('div', { 'class': 'cbi-map-descr' }, _('QoS rules, client quotas, and traffic control')) ]); diff --git a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/quotas.js b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/quotas.js index 55645beb..4173a05c 100644 --- a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/quotas.js +++ b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/quotas.js @@ -106,7 +106,12 @@ return L.view.extend({ return actions; }; - return m.render(); + return m.render().then(function(rendered) { + return E('div', {}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), + rendered + ]); + }); }, handleSaveApply: null, diff --git a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/rules.js b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/rules.js index 223484a3..7f7e11eb 100644 --- a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/rules.js +++ b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/rules.js @@ -71,7 +71,12 @@ return L.view.extend({ o = s.option(form.Flag, 'enabled', _('Enabled')); o.default = o.enabled; - return m.render(); + return m.render().then(function(rendered) { + return E('div', {}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), + rendered + ]); + }); }, handleSaveApply: null, diff --git a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/schedules.js b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/schedules.js index 8d9219c9..b4cf37f2 100644 --- a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/schedules.js +++ b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/schedules.js @@ -5,6 +5,7 @@ return view.extend({ render: function() { return E('div', {class:'cbi-map'}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, '⏰ Time-Based Schedules'), E('p', {style:'color:#94a3b8'}, 'Configure bandwidth limits based on time of day.'), E('div', {style:'background:#1e293b;padding:20px;border-radius:12px;margin-top:20px'}, [ diff --git a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/settings.js b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/settings.js index 892a7779..08ea20a9 100644 --- a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/settings.js +++ b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/settings.js @@ -105,6 +105,11 @@ return L.view.extend({ o.placeholder = 'admin@example.com'; o.depends('enabled', '1'); - return m.render(); + return m.render().then(function(rendered) { + return E('div', {}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), + rendered + ]); + }); } }); diff --git a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/usage.js b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/usage.js index a47c945a..58161a7b 100644 --- a/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/usage.js +++ b/luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/usage.js @@ -31,6 +31,7 @@ return L.view.extend({ v.appendChild(graphContainer); var container = E('div', { 'id': 'usage-container', 'class': 'cbi-section' }); + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), v.appendChild(container); // Initial render diff --git a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/alerts.js b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/alerts.js index 49e1c62d..04f5c829 100644 --- a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/alerts.js +++ b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/alerts.js @@ -22,6 +22,7 @@ return view.extend({ var logs = data[1].logs || []; var view = E('div', { 'class': 'client-guardian-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('link', { 'rel': 'stylesheet', 'href': L.resource('client-guardian/dashboard.css') }), // Email Configuration diff --git a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/captive.js b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/captive.js index 9666c84b..fc2c9f0d 100644 --- a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/captive.js +++ b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/captive.js @@ -24,6 +24,7 @@ return view.extend({ var nds = sessions.nodogsplash || {}; var view = E('div', { 'class': 'cbi-map' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('Captive Portal Management')), // Nodogsplash Status Card diff --git a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/clients.js b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/clients.js index 96b5ac42..96dfe1e0 100644 --- a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/clients.js +++ b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/clients.js @@ -20,6 +20,7 @@ return view.extend({ var self = this; var view = E('div', { 'class': 'client-guardian-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('link', { 'rel': 'stylesheet', 'href': L.resource('client-guardian/dashboard.css') }), E('div', { 'class': 'cg-header' }, [ diff --git a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/logs.js b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/logs.js index efa5cb60..5d63f370 100644 --- a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/logs.js +++ b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/logs.js @@ -19,6 +19,7 @@ return view.extend({ var self = this; var view = E('div', { 'class': 'client-guardian-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('link', { 'rel': 'stylesheet', 'href': L.resource('client-guardian/dashboard.css') }), // Filters diff --git a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/overview.js b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/overview.js index 6f9509c8..08ae6e33 100644 --- a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/overview.js +++ b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/overview.js @@ -27,6 +27,7 @@ return view.extend({ var bannedClients = clients.filter(function(c) { return c.status === 'banned'; }); var view = E('div', { 'class': 'client-guardian-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('link', { 'rel': 'stylesheet', 'href': L.resource('client-guardian/dashboard.css') }), // Header diff --git a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/parental.js b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/parental.js index a077844d..b8ac6930 100644 --- a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/parental.js +++ b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/parental.js @@ -16,6 +16,7 @@ return view.extend({ var urlLists = data.url_lists || []; return E('div', { 'class': 'client-guardian-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('link', { 'rel': 'stylesheet', 'href': L.resource('client-guardian/dashboard.css') }), E('div', { 'class': 'cg-header' }, [ diff --git a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/portal.js b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/portal.js index 27b58607..6d4ef3e9 100644 --- a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/portal.js +++ b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/portal.js @@ -15,6 +15,7 @@ return view.extend({ var self = this; return E('div', { 'class': 'client-guardian-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('link', { 'rel': 'stylesheet', 'href': L.resource('client-guardian/dashboard.css') }), E('div', { 'class': 'cg-header' }, [ diff --git a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/settings.js b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/settings.js index e377aab0..ac30e95f 100644 --- a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/settings.js +++ b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/settings.js @@ -169,7 +169,11 @@ return view.extend({ ]); rendered.insertBefore(infoBox, rendered.firstChild); - return rendered; + + return E('div', {}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), + rendered + ]); }); }, diff --git a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/zones.js b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/zones.js index 3dad53f4..4775a400 100644 --- a/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/zones.js +++ b/luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/zones.js @@ -15,6 +15,7 @@ return view.extend({ var self = this; return E('div', { 'class': 'client-guardian-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('link', { 'rel': 'stylesheet', 'href': L.resource('client-guardian/dashboard.css') }), E('div', { 'class': 'cg-header' }, [ diff --git a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/alerts.js b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/alerts.js index 0a86b4e3..e491ec1b 100644 --- a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/alerts.js +++ b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/alerts.js @@ -130,6 +130,7 @@ return view.extend({ if (this.filteredAlerts.length === 0) { return E('div', { 'class': 'cs-empty' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('div', { 'class': 'cs-empty-icon' }, this.searchQuery ? '🔍' : '📭'), E('p', {}, this.searchQuery ? 'No matching alerts found' : 'No alerts recorded') ]); diff --git a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/bouncers.js b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/bouncers.js index 8ce7d0c8..603162f6 100644 --- a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/bouncers.js +++ b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/bouncers.js @@ -19,6 +19,7 @@ return view.extend({ var status = data[1] || {}; var view = E('div', { 'class': 'cbi-map' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('CrowdSec Bouncers')), E('div', { 'class': 'cbi-map-descr' }, _('Bouncers are components that enforce CrowdSec decisions by blocking malicious IPs at various points (firewall, web server, etc.).')), diff --git a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/decisions.js b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/decisions.js index 101ccf96..239af369 100644 --- a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/decisions.js +++ b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/decisions.js @@ -184,6 +184,7 @@ return view.extend({ if (this.filteredDecisions.length === 0) { return E('div', { 'class': 'cs-empty' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('div', { 'class': 'cs-empty-icon' }, this.searchQuery ? '🔍' : '✅'), E('p', {}, this.searchQuery ? 'No matching decisions found' : 'No active decisions') ]); diff --git a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/metrics.js b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/metrics.js index abb7da0c..2970af95 100644 --- a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/metrics.js +++ b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/metrics.js @@ -62,6 +62,7 @@ return view.extend({ value = JSON.stringify(value); } return E('div', { 'class': 'cs-metric-item' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('span', { 'class': 'cs-metric-name' }, entry[0]), E('span', { 'class': 'cs-metric-value' }, String(value)) ]); diff --git a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/overview.js b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/overview.js index 6656298d..9ca9f221 100644 --- a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/overview.js +++ b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/overview.js @@ -116,6 +116,7 @@ return view.extend({ if (!Array.isArray(decisions) || decisions.length === 0) { return E('div', { 'class': 'cs-empty' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('div', { 'class': 'cs-empty-icon' }, '✅'), E('p', {}, 'No active decisions - All clear!') ]); diff --git a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/settings.js b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/settings.js index 3735a1d2..cb85899b 100644 --- a/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/settings.js +++ b/luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/settings.js @@ -21,6 +21,7 @@ return view.extend({ var collections = Array.isArray(data[3]) ? data[3] : []; var view = E('div', { 'class': 'cbi-map' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('CrowdSec Settings')), E('div', { 'class': 'cbi-map-descr' }, _('Configure and manage your CrowdSec installation, machines, and collections.')), diff --git a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/audit.js b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/audit.js index 2a2b93b0..ac5d2487 100644 --- a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/audit.js +++ b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/audit.js @@ -55,6 +55,7 @@ return view.extend({ renderLogsTable: function(logs) { if (!logs || logs.length === 0) { return E('div', { 'class': 'cbi-value' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('em', {}, _('No audit logs available.')) ]); } diff --git a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/certificates.js b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/certificates.js index eba95276..b62ea8e0 100644 --- a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/certificates.js +++ b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/certificates.js @@ -82,6 +82,7 @@ return view.extend({ renderCertificatesTable: function(certificates) { if (!certificates || certificates.length === 0) { return E('div', { 'class': 'cbi-value' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('em', {}, _('No certificates found.')) ]); } diff --git a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/hsm.js b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/hsm.js index c505ae63..743a2f37 100644 --- a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/hsm.js +++ b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/hsm.js @@ -50,6 +50,7 @@ return view.extend({ renderDevices: function(devices) { if (!devices || devices.length === 0) { return E('div', { 'class': 'cbi-value' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('em', {}, _('No HSM devices detected. Connect a Nitrokey or YubiKey and click "Scan for Devices".')) ]); } diff --git a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/keys.js b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/keys.js index abcc0423..7051cc8b 100644 --- a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/keys.js +++ b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/keys.js @@ -97,6 +97,7 @@ return view.extend({ renderKeysTable: function(keys) { if (!keys || keys.length === 0) { return E('div', { 'class': 'cbi-value' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('em', {}, _('No keys found. Generate or import a key to get started.')) ]); } diff --git a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/overview.js b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/overview.js index 16105a8e..fca0cc68 100644 --- a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/overview.js +++ b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/overview.js @@ -140,6 +140,7 @@ return view.extend({ hsmDevices.devices.map(function(device) { var typeIcon = device.type === 'nitrokey' ? '🔐' : '🔑'; return E('div', { 'class': 'cbi-value' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('label', { 'class': 'cbi-value-title' }, typeIcon + ' ' + device.serial + ':'), E('div', { 'class': 'cbi-value-field' }, [ E('span', {}, device.type.toUpperCase() + ' '), diff --git a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/secrets.js b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/secrets.js index 0dcfaaf2..3dadfd20 100644 --- a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/secrets.js +++ b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/secrets.js @@ -62,6 +62,7 @@ return view.extend({ renderSecretsTable: function(secrets) { if (!secrets || secrets.length === 0) { return E('div', { 'class': 'cbi-value' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('em', {}, _('No secrets stored.')) ]); } diff --git a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/settings.js b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/settings.js index 1b43a765..760f09bb 100644 --- a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/settings.js +++ b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/settings.js @@ -89,7 +89,12 @@ return view.extend({ o.inputstyle = 'action'; o.onclick = L.bind(this.handleRestoreBackup, this); - return m.render(); + return m.render().then(function(rendered) { + return E('div', {}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), + rendered + ]); + }); }, handleCreateBackup: function() { diff --git a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/ssh.js b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/ssh.js index 982af543..8a785c1f 100644 --- a/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/ssh.js +++ b/luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/ssh.js @@ -82,6 +82,7 @@ return view.extend({ renderSshKeysTable: function(keys) { if (!keys || keys.length === 0) { return E('div', { 'class': 'cbi-value' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('em', {}, _('No SSH keys found. Generate a key to get started.')) ]); } diff --git a/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/alerts.js b/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/alerts.js index 44b6d6d8..6a6daf14 100644 --- a/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/alerts.js +++ b/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/alerts.js @@ -66,6 +66,11 @@ return L.view.extend({ } }; - return m.render(); + return m.render().then(function(rendered) { + return E('div', {}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), + rendered + ]); + }); } }); diff --git a/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/clients.js b/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/clients.js index 38070d8d..d7e5921e 100644 --- a/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/clients.js +++ b/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/clients.js @@ -16,6 +16,7 @@ return L.view.extend({ var clients = statsByClient.clients || {}; var v = E('div', { 'class': 'cbi-map' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('Clients Statistics')), E('div', { 'class': 'cbi-map-descr' }, _('Streaming activity per client')) ]); diff --git a/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/dashboard.js b/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/dashboard.js index b7974179..55b1e741 100644 --- a/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/dashboard.js +++ b/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/dashboard.js @@ -20,6 +20,7 @@ return L.view.extend({ var statsByService = data[2] || {}; var v = E('div', { 'class': 'cbi-map' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('Media Flow Dashboard')), E('div', { 'class': 'cbi-map-descr' }, _('Real-time detection and monitoring of streaming services')) ]); diff --git a/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/history.js b/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/history.js index b133e151..2ead9e48 100644 --- a/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/history.js +++ b/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/history.js @@ -77,6 +77,7 @@ return L.view.extend({ } return E('div', { 'class': 'cbi-section' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h3', {}, _('Recent Sessions')), table ]); diff --git a/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/services.js b/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/services.js index f6a88787..f5b02af9 100644 --- a/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/services.js +++ b/luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/services.js @@ -16,6 +16,7 @@ return L.view.extend({ var services = statsByService.services || {}; var v = E('div', { 'class': 'cbi-map' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('Services Statistics')), E('div', { 'class': 'cbi-map-descr' }, _('Detailed statistics per streaming service')) ]); diff --git a/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/network.js b/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/network.js index 388a7bb6..fa94c0ae 100644 --- a/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/network.js +++ b/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/network.js @@ -24,6 +24,7 @@ return view.extend({ }); var view = E('div', { 'class': 'netdata-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'nd-header' }, [ E('div', { 'class': 'nd-logo' }, [ diff --git a/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/processes.js b/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/processes.js index 807f679c..db27c79b 100644 --- a/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/processes.js +++ b/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/processes.js @@ -18,6 +18,7 @@ return view.extend({ var topProcs = procs.top || []; var view = E('div', { 'class': 'netdata-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'nd-header' }, [ E('div', { 'class': 'nd-logo' }, [ diff --git a/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/realtime.js b/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/realtime.js index b5692344..5a38c3b0 100644 --- a/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/realtime.js +++ b/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/realtime.js @@ -37,6 +37,7 @@ return view.extend({ var statusClass = api.getStatusClass(percent); return E('div', { 'class': 'nd-gauge', 'style': 'width:' + size + 'px;height:' + size + 'px' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('svg', { 'class': 'nd-gauge-svg', 'width': size, 'height': size, 'viewBox': '0 0 ' + size + ' ' + size }, [ E('circle', { 'class': 'nd-gauge-bg', diff --git a/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/settings.js b/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/settings.js index f54c86a6..d413c5b5 100644 --- a/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/settings.js +++ b/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/settings.js @@ -19,6 +19,7 @@ return view.extend({ var system = data[2] || {}; var view = E('div', { 'class': 'cbi-map' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('Netdata Settings')), E('div', { 'class': 'cbi-map-descr' }, _('Configure Netdata monitoring service and view system information.')), diff --git a/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/system.js b/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/system.js index 25f60ae2..a83dbc94 100644 --- a/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/system.js +++ b/luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/system.js @@ -31,6 +31,7 @@ return view.extend({ var seconds = uptime % 60; var view = E('div', { 'class': 'netdata-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'nd-header' }, [ E('div', { 'class': 'nd-logo' }, [ diff --git a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/applications.js b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/applications.js index 56c0168b..d6129c41 100644 --- a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/applications.js +++ b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/applications.js @@ -19,6 +19,7 @@ return view.extend({ var totalFlows = apps.reduce(function(sum, a) { return sum + (a.flows || 0); }, 0); var view = E('div', { 'class': 'netifyd-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'nf-header' }, [ E('div', { 'class': 'nf-logo' }, [ diff --git a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/devices.js b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/devices.js index ed4608e6..bba983c4 100644 --- a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/devices.js +++ b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/devices.js @@ -17,6 +17,7 @@ return view.extend({ var devices = (data || {}).devices || []; var view = E('div', { 'class': 'netifyd-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'nf-header' }, [ E('div', { 'class': 'nf-logo' }, [ diff --git a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/flows.js b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/flows.js index 006c924f..b688503a 100644 --- a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/flows.js +++ b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/flows.js @@ -17,6 +17,7 @@ return view.extend({ var flows = (data || {}).flows || []; var view = E('div', { 'class': 'netifyd-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'nf-header' }, [ E('div', { 'class': 'nf-logo' }, [ diff --git a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/overview.js b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/overview.js index f76c2f2c..e67c5532 100644 --- a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/overview.js +++ b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/overview.js @@ -73,6 +73,7 @@ return view.extend({ var maxAppBytes = topApps.length > 0 ? Math.max.apply(null, topApps.map(function(a) { return a.bytes; })) : 1; var view = E('div', { 'class': 'netifyd-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'nf-header' }, [ E('div', { 'class': 'nf-logo' }, [ diff --git a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/risks.js b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/risks.js index c919fb01..bad2065b 100644 --- a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/risks.js +++ b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/risks.js @@ -105,6 +105,7 @@ return view.extend({ var lowCount = risks.filter(function(r) { return r.severity === 'low'; }).length; var view = E('div', { 'class': 'netifyd-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'nf-header' }, [ E('div', { 'class': 'nf-logo' }, [ diff --git a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/settings.js b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/settings.js index 5c59cb6a..7acef010 100644 --- a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/settings.js +++ b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/settings.js @@ -16,6 +16,7 @@ return view.extend({ 'class': 'netifyd-settings', 'style': 'max-width: 1200px; margin: 0 auto;' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'style': 'margin-bottom: 2em;' }, [ E('h1', { diff --git a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/talkers.js b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/talkers.js index d222174e..a8c63361 100644 --- a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/talkers.js +++ b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/talkers.js @@ -65,6 +65,7 @@ return view.extend({ var totalBytes = talkers.reduce(function(sum, t) { return sum + t.total_bytes; }, 0); var view = E('div', { 'class': 'netifyd-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'nf-header' }, [ E('div', { 'class': 'nf-logo' }, [ diff --git a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/wizard.js b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/wizard.js index 80d3a9e7..be8b73af 100644 --- a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/wizard.js +++ b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/view/netifyd-dashboard/wizard.js @@ -21,6 +21,7 @@ return view.extend({ 'class': 'netifyd-wizard-container', 'style': 'max-width: 900px; margin: 2em auto; padding: 2em;' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'style': 'text-align: center; margin-bottom: 3em;' }, [ E('div', { diff --git a/luci-app-network-modes/htdocs/luci-static/resources/view/network-modes/dmz.js b/luci-app-network-modes/htdocs/luci-static/resources/view/network-modes/dmz.js index 3f79f85d..2368477e 100644 --- a/luci-app-network-modes/htdocs/luci-static/resources/view/network-modes/dmz.js +++ b/luci-app-network-modes/htdocs/luci-static/resources/view/network-modes/dmz.js @@ -143,6 +143,7 @@ return view.extend({ }); var container = E('div', { 'class': 'nm-container' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), helpers.createNavigationTabs('dmz'), hero, wanSection, diff --git a/luci-app-network-modes/root/usr/share/rpcd/acl.d/luci-app-network-modes.json b/luci-app-network-modes/root/usr/share/rpcd/acl.d/luci-app-network-modes.json index cf8a9ef7..df4aaa75 100644 --- a/luci-app-network-modes/root/usr/share/rpcd/acl.d/luci-app-network-modes.json +++ b/luci-app-network-modes/root/usr/share/rpcd/acl.d/luci-app-network-modes.json @@ -14,6 +14,7 @@ "ap_config", "relay_config", "router_config", + "dmz_config", "travel_config", "doublenat_config", "multiwan_config", diff --git a/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/classes.js b/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/classes.js index 460a2df4..16b13d53 100644 --- a/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/classes.js +++ b/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/classes.js @@ -122,7 +122,11 @@ return view.extend({ ]); rendered.insertBefore(helpBox, rendered.firstChild); - return rendered; + + return E('div', {}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), + rendered + ]); }); }, diff --git a/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/overview.js b/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/overview.js index e72cb164..c45edeac 100644 --- a/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/overview.js +++ b/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/overview.js @@ -25,6 +25,7 @@ return view.extend({ var activeRules = rules.filter(function(r) { return r.enabled === '1'; }); var view = E('div', { 'class': 'traffic-shaper-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('Traffic Shaper Overview')), // Status Cards diff --git a/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/presets.js b/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/presets.js index e350bad6..1574ea08 100644 --- a/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/presets.js +++ b/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/presets.js @@ -14,6 +14,7 @@ return view.extend({ var presets = data.presets || []; var container = E('div', { 'class': 'traffic-shaper-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('Traffic Shaping Presets')), E('div', { 'class': 'cbi-section' }, [ diff --git a/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/rules.js b/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/rules.js index c9df7485..98fcb804 100644 --- a/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/rules.js +++ b/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/rules.js @@ -158,7 +158,11 @@ return view.extend({ ]); rendered.insertBefore(helpBox, rendered.firstChild); - return rendered; + + return E('div', {}, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), + rendered + ]); }); }, diff --git a/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/stats.js b/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/stats.js index af5fcea6..93d22df0 100644 --- a/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/stats.js +++ b/luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/stats.js @@ -18,6 +18,7 @@ return view.extend({ var stats = data[1].stats || []; var container = E('div', { 'class': 'traffic-shaper-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('Traffic Statistics')), E('div', { 'class': 'ts-stats-container' }, [ diff --git a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/config.js b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/config.js index 3647c4b5..b3263e4a 100644 --- a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/config.js +++ b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/config.js @@ -16,6 +16,7 @@ return view.extend({ var interfaces = (data || {}).interfaces || []; var view = E('div', { 'class': 'wireguard-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'wg-header' }, [ E('div', { 'class': 'wg-logo' }, [ diff --git a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/overview.js b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/overview.js index e801ff0c..3fa5972f 100644 --- a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/overview.js +++ b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/overview.js @@ -21,6 +21,7 @@ return view.extend({ var activePeers = peers.filter(function(p) { return p.status === 'active'; }).length; var view = E('div', { 'class': 'wireguard-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'wg-header' }, [ E('div', { 'class': 'wg-logo' }, [ diff --git a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/peers.js b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/peers.js index 09429ce7..92798de3 100644 --- a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/peers.js +++ b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/peers.js @@ -23,6 +23,7 @@ return view.extend({ var activePeers = peers.filter(function(p) { return p.status === 'active'; }).length; var view = E('div', { 'class': 'cbi-map' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('WireGuard Peers')), E('div', { 'class': 'cbi-map-descr' }, _('Manage WireGuard VPN peers - add, configure, and monitor connected devices.')), diff --git a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/qrcodes.js b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/qrcodes.js index ac9d9448..73ffe580 100644 --- a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/qrcodes.js +++ b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/qrcodes.js @@ -59,6 +59,7 @@ return view.extend({ var interfaces = (data || {}).interfaces || []; var view = E('div', { 'class': 'wireguard-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'wg-header' }, [ E('div', { 'class': 'wg-logo' }, [ diff --git a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/settings.js b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/settings.js index 04a1924d..e3263ec0 100644 --- a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/settings.js +++ b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/settings.js @@ -17,6 +17,7 @@ return view.extend({ var interfaces = (data[1] || {}).interfaces || []; var view = E('div', { 'class': 'cbi-map' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), E('h2', {}, _('WireGuard Settings')), E('div', { 'class': 'cbi-map-descr' }, _('WireGuard VPN configuration and management information.')), diff --git a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/traffic.js b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/traffic.js index b179ef95..92905243 100644 --- a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/traffic.js +++ b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/view/wireguard-dashboard/traffic.js @@ -21,6 +21,7 @@ return view.extend({ var totalTraffic = totalRx + totalTx; var view = E('div', { 'class': 'wireguard-dashboard' }, [ + E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox-theme/secubox-theme.css') }), // Header E('div', { 'class': 'wg-header' }, [ E('div', { 'class': 'wg-logo' }, [