feat: dynamic capabilities form

This commit is contained in:
2025-08-28 10:46:06 +02:00
parent 6c58e479af
commit 7d0537a922
6 changed files with 471 additions and 12 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);