secubox-openwrt/luci-app-system-hub/htdocs/luci-static/resources/system-hub/api.js
CyberMind-FR 6e0182ad35 fix: system-hub v0.0.2 - Move stub functions to views (baseclass.extend limitation)
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>
2025-12-26 14:32:57 +01:00

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
});