feat: firmware upload on the cluster view

This commit is contained in:
2025-10-16 21:26:16 +02:00
parent f3a61131db
commit 478d23b805
8 changed files with 1446 additions and 13 deletions

View File

@@ -14,9 +14,10 @@ document.addEventListener('DOMContentLoaded', async function() {
logger.debug('App: Creating view models...');
const clusterViewModel = new ClusterViewModel();
const firmwareViewModel = new FirmwareViewModel();
const clusterFirmwareViewModel = new ClusterFirmwareViewModel();
const topologyViewModel = new TopologyViewModel();
const monitoringViewModel = new MonitoringViewModel();
logger.debug('App: View models created:', { clusterViewModel, firmwareViewModel, topologyViewModel, monitoringViewModel });
logger.debug('App: View models created:', { clusterViewModel, firmwareViewModel, clusterFirmwareViewModel, topologyViewModel, monitoringViewModel });
// Connect firmware view model to cluster data
clusterViewModel.subscribe('members', (members) => {
@@ -36,6 +37,28 @@ document.addEventListener('DOMContentLoaded', async function() {
}
});
// Connect cluster firmware view model to cluster data
// Note: This subscription is disabled because target nodes should be set explicitly
// when opening the firmware deploy drawer, not automatically updated
/*
clusterViewModel.subscribe('members', (members) => {
logger.debug('App: Members subscription triggered for cluster firmware:', members);
if (members && members.length > 0) {
// Extract node information for cluster firmware view
const nodes = members.map(member => ({
ip: member.ip,
hostname: member.hostname || member.ip,
labels: member.labels || {}
}));
clusterFirmwareViewModel.setTargetNodes(nodes);
logger.debug('App: Updated cluster firmware view model with nodes:', nodes);
} else {
clusterFirmwareViewModel.setTargetNodes([]);
logger.debug('App: Cleared cluster firmware view model nodes');
}
});
*/
// Register routes with their view models
logger.debug('App: Registering routes...');
app.registerRoute('cluster', ClusterViewComponent, 'cluster-view', clusterViewModel);