From 9dab498aa2a569de7d174678178ab87b9b34720a Mon Sep 17 00:00:00 2001 From: Patrick Balsiger Date: Sun, 31 Aug 2025 12:18:15 +0200 Subject: [PATCH] refactor(logging): replace remaining console.* with logger.debug/error across app, view-models, api-client, and framework --- public/scripts/api-client.js | 2 +- public/scripts/app.js | 38 +++++++++++++++++------------------ public/scripts/framework.js | 2 +- public/scripts/view-models.js | 26 ++++++++++++------------ 4 files changed, 34 insertions(+), 34 deletions(-) diff --git a/public/scripts/api-client.js b/public/scripts/api-client.js index bcd0f91..17e6204 100644 --- a/public/scripts/api-client.js +++ b/public/scripts/api-client.js @@ -15,7 +15,7 @@ class ApiClient { this.baseUrl = `http://${currentHost}:3001`; } - console.log('API Client initialized with base URL:', this.baseUrl); + logger.debug('API Client initialized with base URL:', this.baseUrl); } async request(path, { method = 'GET', headers = {}, body = undefined, query = undefined, isForm = false } = {}) { diff --git a/public/scripts/app.js b/public/scripts/app.js index 8a07bc7..fa86415 100644 --- a/public/scripts/app.js +++ b/public/scripts/app.js @@ -2,22 +2,22 @@ // Initialize the application when DOM is loaded document.addEventListener('DOMContentLoaded', function() { - console.log('=== SPORE UI Application Initialization ==='); + logger.debug('=== SPORE UI Application Initialization ==='); // Initialize the framework (but don't navigate yet) - console.log('App: Creating framework instance...'); + logger.debug('App: Creating framework instance...'); const app = window.app; // Create view models - console.log('App: Creating view models...'); + logger.debug('App: Creating view models...'); const clusterViewModel = new ClusterViewModel(); const firmwareViewModel = new FirmwareViewModel(); const topologyViewModel = new TopologyViewModel(); - console.log('App: View models created:', { clusterViewModel, firmwareViewModel, topologyViewModel }); + logger.debug('App: View models created:', { clusterViewModel, firmwareViewModel, topologyViewModel }); // Connect firmware view model to cluster data clusterViewModel.subscribe('members', (members) => { - console.log('App: Members subscription triggered:', members); + logger.debug('App: Members subscription triggered:', members); if (members && members.length > 0) { // Extract node information for firmware view const nodes = members.map(member => ({ @@ -26,39 +26,39 @@ document.addEventListener('DOMContentLoaded', function() { labels: member.labels || {} })); firmwareViewModel.updateAvailableNodes(nodes); - console.log('App: Updated firmware view model with nodes:', nodes); + logger.debug('App: Updated firmware view model with nodes:', nodes); } else { firmwareViewModel.updateAvailableNodes([]); - console.log('App: Cleared firmware view model nodes'); + logger.debug('App: Cleared firmware view model nodes'); } }); // Register routes with their view models - console.log('App: Registering routes...'); + logger.debug('App: Registering routes...'); app.registerRoute('cluster', ClusterViewComponent, 'cluster-view', clusterViewModel); app.registerRoute('topology', TopologyGraphComponent, 'topology-view', topologyViewModel); app.registerRoute('firmware', FirmwareViewComponent, 'firmware-view', firmwareViewModel); - console.log('App: Routes registered and components pre-initialized'); + logger.debug('App: Routes registered and components pre-initialized'); // Initialize cluster status component for header badge - console.log('App: Initializing cluster status component...'); + logger.debug('App: Initializing cluster status component...'); const clusterStatusComponent = new ClusterStatusComponent( document.querySelector('.cluster-status'), clusterViewModel, app.eventBus ); clusterStatusComponent.mount(); - console.log('App: Cluster status component initialized'); + logger.debug('App: Cluster status component initialized'); // Set up navigation event listeners - console.log('App: Setting up navigation...'); + logger.debug('App: Setting up navigation...'); app.setupNavigation(); // Now navigate to the default route - console.log('App: Navigating to default route...'); + logger.debug('App: Navigating to default route...'); app.navigateTo('cluster'); - console.log('=== SPORE UI Application initialization completed ==='); + logger.debug('=== SPORE UI Application initialization completed ==='); }); // Burger menu toggle for mobile @@ -97,10 +97,10 @@ function setupPeriodicUpdates() { // Use smart update if available, otherwise fall back to regular update if (viewModel.smartUpdate && typeof viewModel.smartUpdate === 'function') { - console.log('App: Performing smart update to preserve UI state...'); + logger.debug('App: Performing smart update to preserve UI state...'); viewModel.smartUpdate(); } else if (viewModel.updateClusterMembers && typeof viewModel.updateClusterMembers === 'function') { - console.log('App: Performing regular update...'); + logger.debug('App: Performing regular update...'); viewModel.updateClusterMembers(); } } @@ -119,18 +119,18 @@ function setupPeriodicUpdates() { // Global error handler window.addEventListener('error', function(event) { - console.error('Global error:', event.error); + logger.error('Global error:', event.error); }); // Global unhandled promise rejection handler window.addEventListener('unhandledrejection', function(event) { - console.error('Unhandled promise rejection:', event.reason); + logger.error('Unhandled promise rejection:', event.reason); }); // Clean up on page unload window.addEventListener('beforeunload', function() { if (window.app) { - console.log('App: Cleaning up cached components...'); + logger.debug('App: Cleaning up cached components...'); window.app.cleanup(); } }); \ No newline at end of file diff --git a/public/scripts/framework.js b/public/scripts/framework.js index 9245c6f..d1d32bd 100644 --- a/public/scripts/framework.js +++ b/public/scripts/framework.js @@ -840,7 +840,7 @@ class App { // Initialize the application init() { - console.log('SPORE UI Framework initialized'); + logger.debug('SPORE UI Framework initialized'); // Note: Navigation is now handled by the app initialization // to ensure routes are registered before navigation diff --git a/public/scripts/view-models.js b/public/scripts/view-models.js index 3ef6c4e..8e38389 100644 --- a/public/scripts/view-models.js +++ b/public/scripts/view-models.js @@ -26,7 +26,7 @@ class ClusterViewModel extends ViewModel { // Update cluster members with state preservation async updateClusterMembers() { try { - console.log('ClusterViewModel: updateClusterMembers called'); + logger.debug('ClusterViewModel: updateClusterMembers called'); // Store current UI state before update const currentUIState = this.getAllUIState(); @@ -36,9 +36,9 @@ class ClusterViewModel extends ViewModel { this.set('isLoading', true); this.set('error', null); - console.log('ClusterViewModel: Fetching cluster members...'); + logger.debug('ClusterViewModel: Fetching cluster members...'); const response = await window.apiClient.getClusterMembers(); - console.log('ClusterViewModel: Got response:', response); + logger.debug('ClusterViewModel: Got response:', response); const members = response.members || []; const onlineNodes = Array.isArray(members) @@ -57,7 +57,7 @@ class ClusterViewModel extends ViewModel { this.set('activeTabs', currentActiveTabs); // Update primary node display - console.log('ClusterViewModel: Updating primary node display...'); + logger.debug('ClusterViewModel: Updating primary node display...'); await this.updatePrimaryNodeDisplay(); } catch (error) { @@ -65,7 +65,7 @@ class ClusterViewModel extends ViewModel { this.set('error', error.message); } finally { this.set('isLoading', false); - console.log('ClusterViewModel: updateClusterMembers completed'); + logger.debug('ClusterViewModel: updateClusterMembers completed'); } } @@ -185,7 +185,7 @@ class ClusterViewModel extends ViewModel { // Smart update that only updates changed data async smartUpdate() { try { - console.log('ClusterViewModel: Performing smart update...'); + logger.debug('ClusterViewModel: Performing smart update...'); // Fetch new data const response = await window.apiClient.getClusterMembers(); @@ -193,10 +193,10 @@ class ClusterViewModel extends ViewModel { // Check if members data has actually changed if (this.hasDataChanged(newMembers, 'members')) { - console.log('ClusterViewModel: Members data changed, updating...'); + logger.debug('ClusterViewModel: Members data changed, updating...'); await this.updateClusterMembers(); } else { - console.log('ClusterViewModel: Members data unchanged, skipping update'); + logger.debug('ClusterViewModel: Members data unchanged, skipping update'); // Still update primary node display as it might have changed await this.updatePrimaryNodeDisplay(); } @@ -292,7 +292,7 @@ class NodeDetailsViewModel extends ViewModel { // Set active tab with state persistence setActiveTab(tabName) { - console.log('NodeDetailsViewModel: Setting activeTab to:', tabName); + logger.debug('NodeDetailsViewModel: Setting activeTab to:', tabName); this.set('activeTab', tabName); // Store in UI state for persistence @@ -492,14 +492,14 @@ class TopologyViewModel extends ViewModel { // Update network topology data async updateNetworkTopology() { try { - console.log('TopologyViewModel: updateNetworkTopology called'); + logger.debug('TopologyViewModel: updateNetworkTopology called'); this.set('isLoading', true); this.set('error', null); // Get cluster members from the primary node const response = await window.apiClient.getClusterMembers(); - console.log('TopologyViewModel: Got cluster members response:', response); + logger.debug('TopologyViewModel: Got cluster members response:', response); const members = response.members || []; @@ -517,7 +517,7 @@ class TopologyViewModel extends ViewModel { this.set('error', error.message); } finally { this.set('isLoading', false); - console.log('TopologyViewModel: updateNetworkTopology completed'); + logger.debug('TopologyViewModel: updateNetworkTopology completed'); } } @@ -589,7 +589,7 @@ class TopologyViewModel extends ViewModel { // If no actual connections found, create a basic mesh if (links.length === 0) { - console.log('TopologyViewModel: No actual connections found, creating basic mesh'); + logger.debug('TopologyViewModel: No actual connections found, creating basic mesh'); for (let i = 0; i < nodes.length; i++) { for (let j = i + 1; j < nodes.length; j++) { const sourceNode = nodes[i];