Root Cause: - baseclass.extend() in LuCI only preserves RPC methods (rpc.declare) - Non-RPC functions passed to baseclass.extend() are filtered out - This caused TypeError: api.callGetComponents is not a function Solution: - Simplified api.js to contain ONLY RPC methods (10 methods) - Moved all stub functions and helpers directly into the views that use them - Each view now defines its own local functions for planned features API Changes (api.js): - Removed all stub functions (callGetComponents, callManageComponent, etc.) - Removed all helper functions (formatUptime, formatBytes, getComponentIcon, getHealthStatus) - Kept only RPC methods: getStatus, getSystemInfo, getHealth, listServices, serviceAction, getLogs, backupConfig, restoreConfig, reboot, getStorage View Changes: - components.js: Added local getComponents(), getComponentIcon(), manageComponent() - health.js: Added local getHealthStatus(), formatBytes(), inline report stub - remote.js: Added local getRemoteConfig(), inline session stub - settings.js: Fixed to use api.getStatus() instead of api.callStatus() All 9 views now functional with proper stub data for planned features. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
91 lines
1.8 KiB
JavaScript
91 lines
1.8 KiB
JavaScript
'use strict';
|
|
'require baseclass';
|
|
'require rpc';
|
|
|
|
/**
|
|
* System Hub API
|
|
* Package: luci-app-system-hub
|
|
* RPCD object: luci.system-hub
|
|
* Version: 0.0.2-debug
|
|
*/
|
|
|
|
// Debug log to verify correct version is loaded
|
|
console.log('🔧 System Hub API v0.0.2-debug loaded at', new Date().toISOString());
|
|
|
|
var callStatus = rpc.declare({
|
|
object: 'luci.system-hub',
|
|
method: 'status',
|
|
expect: {}
|
|
});
|
|
|
|
var callGetSystemInfo = rpc.declare({
|
|
object: 'luci.system-hub',
|
|
method: 'get_system_info',
|
|
expect: {}
|
|
});
|
|
|
|
var callGetHealth = rpc.declare({
|
|
object: 'luci.system-hub',
|
|
method: 'get_health',
|
|
expect: {}
|
|
});
|
|
|
|
var callListServices = rpc.declare({
|
|
object: 'luci.system-hub',
|
|
method: 'list_services',
|
|
expect: { services: [] }
|
|
});
|
|
|
|
var callServiceAction = rpc.declare({
|
|
object: 'luci.system-hub',
|
|
method: 'service_action',
|
|
params: ['service', 'action'],
|
|
expect: {}
|
|
});
|
|
|
|
var callGetLogs = rpc.declare({
|
|
object: 'luci.system-hub',
|
|
method: 'get_logs',
|
|
params: ['lines', 'filter'],
|
|
expect: { logs: [] }
|
|
});
|
|
|
|
var callBackupConfig = rpc.declare({
|
|
object: 'luci.system-hub',
|
|
method: 'backup_config',
|
|
expect: {}
|
|
});
|
|
|
|
var callRestoreConfig = rpc.declare({
|
|
object: 'luci.system-hub',
|
|
method: 'restore_config',
|
|
params: ['data'],
|
|
expect: {}
|
|
});
|
|
|
|
var callReboot = rpc.declare({
|
|
object: 'luci.system-hub',
|
|
method: 'reboot',
|
|
expect: {}
|
|
});
|
|
|
|
var callGetStorage = rpc.declare({
|
|
object: 'luci.system-hub',
|
|
method: 'get_storage',
|
|
expect: { storage: [] }
|
|
});
|
|
|
|
return baseclass.extend({
|
|
// RPC methods - exposed via ubus
|
|
getStatus: callStatus,
|
|
getSystemInfo: callGetSystemInfo,
|
|
getHealth: callGetHealth,
|
|
listServices: callListServices,
|
|
serviceAction: callServiceAction,
|
|
getLogs: callGetLogs,
|
|
backupConfig: callBackupConfig,
|
|
restoreConfig: callRestoreConfig,
|
|
reboot: callReboot,
|
|
getStorage: callGetStorage
|
|
});
|