- Fixed minified RPC declaration in secubox/modules.js that caused false positive in validation - Added 30 missing menu entries across 10 modules: * bandwidth-manager: clients, schedules * client-guardian: zones, portal, logs, alerts, parental * crowdsec-dashboard: metrics * netdata-dashboard: system, processes, realtime, network * netifyd-dashboard: talkers, risks, devices * network-modes: router, accesspoint, relay, sniffer * secubox: settings * system-hub: components, diagnostics, health, remote, settings * vhost-manager: internal, ssl, redirects * wireguard-dashboard: traffic, config - All modules now pass comprehensive validation (0 errors, 0 warnings) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
28 lines
1.1 KiB
JavaScript
28 lines
1.1 KiB
JavaScript
'use strict';
|
|
'require view';
|
|
'require rpc';
|
|
|
|
var callModules = rpc.declare({
|
|
object: 'luci.secubox',
|
|
method: 'modules',
|
|
expect: { modules: [] }
|
|
});
|
|
|
|
return view.extend({
|
|
load: function() { return callModules(); },
|
|
render: function(data) {
|
|
var modules = data.modules || [];
|
|
return E('div', {class:'cbi-map'}, [
|
|
E('h2', {}, '📦 SecuBox Modules'),
|
|
E('div', {style:'display:grid;gap:12px'}, modules.map(function(m) {
|
|
return E('div', {style:'background:#1e293b;padding:16px;border-radius:8px;border-left:4px solid '+m.color}, [
|
|
E('div', {style:'font-weight:bold;color:#f1f5f9'}, m.name),
|
|
E('div', {style:'color:#94a3b8;font-size:14px'}, m.description),
|
|
E('span', {style:'display:inline-block;margin-top:8px;padding:2px 8px;border-radius:4px;font-size:12px;background:'+(m.running?'#22c55e20;color:#22c55e':m.installed?'#f59e0b20;color:#f59e0b':'#64748b20;color:#64748b')},
|
|
m.running ? 'Running' : m.installed ? 'Stopped' : 'Not Installed')
|
|
]);
|
|
}))
|
|
]);
|
|
}
|
|
});
|