feature/capabilities (#2)

Reviewed-on: #2
This commit is contained in:
2025-08-28 11:17:37 +02:00
parent 6c58e479af
commit bb46e5d412
6 changed files with 504 additions and 35 deletions

View File

@@ -211,7 +211,8 @@ class NodeDetailsViewModel extends ViewModel {
isLoading: false,
error: null,
activeTab: 'status',
nodeIp: null
nodeIp: null,
capabilities: null
});
}
@@ -238,6 +239,9 @@ class NodeDetailsViewModel extends ViewModel {
// Load tasks data
await this.loadTasksData();
// Load capabilities data
await this.loadCapabilitiesData();
} catch (error) {
console.error('Failed to load node details:', error);
this.set('error', error.message);
@@ -258,6 +262,24 @@ class NodeDetailsViewModel extends ViewModel {
}
}
// Load capabilities data with state preservation
async loadCapabilitiesData() {
try {
const ip = this.get('nodeIp');
const response = await window.apiClient.getCapabilities(ip);
this.set('capabilities', response || null);
} catch (error) {
console.error('Failed to load capabilities:', error);
this.set('capabilities', null);
}
}
// Invoke a capability against this node
async callCapability(method, uri, params) {
const ip = this.get('nodeIp');
return window.apiClient.callCapability({ ip, method, uri, params });
}
// Set active tab with state persistence
setActiveTab(tabName) {
console.log('NodeDetailsViewModel: Setting activeTab to:', tabName);