diff --git a/app/web/static/js/app.js b/app/web/static/js/app.js index 9f4fdef..82e306c 100644 --- a/app/web/static/js/app.js +++ b/app/web/static/js/app.js @@ -91,6 +91,8 @@ class LLMMonitorApp { this.lastData.models = models; this.renderModels(this.lastData.models); } + + this.updateCacheModeIndicator(models); } // Gestire messaggi dal Worker @@ -115,11 +117,15 @@ class LLMMonitorApp { if (modelsData && JSON.stringify(this.lastData.models) !== JSON.stringify(modelsData)) { this.lastData.models = modelsData; try { - writeServerCache(this.activeServer.id, "models", modelsData); + const persistedModels = writeServerCache(this.activeServer.id, "models", modelsData); + if (persistedModels) { + this.lastData.models = persistedModels; + } } catch (error) { console.warn("Cannot persist models in localStorage:", error); } - this.renderModels(modelsData); + this.updateCacheModeIndicator(this.lastData.models); + this.renderModels(this.lastData.models); if (this.selectedModelName) { this.showModelDetails(this.selectedModelName); } @@ -432,8 +438,12 @@ class LLMMonitorApp { timestamp: new Date().toISOString() }; this.lastData.models = modelsData; - writeServerCache(this.activeServer.id, "models", modelsData); - this.renderModels(modelsData); + const persistedModels = writeServerCache(this.activeServer.id, "models", modelsData); + if (persistedModels) { + this.lastData.models = persistedModels; + } + this.updateCacheModeIndicator(this.lastData.models); + this.renderModels(this.lastData.models); if (this.selectedModelName) { this.showModelDetails(this.selectedModelName); } @@ -493,6 +503,7 @@ class LLMMonitorApp { const statusIndicator = document.getElementById("status-indicator"); const statusText = document.getElementById("status-text"); const ollamaStatus = document.getElementById("ollama-status"); + const cacheModeIndicator = document.getElementById("cache-mode-indicator"); if (count) count.textContent = "0"; if (totalSize) totalSize.textContent = "0 B"; @@ -504,6 +515,9 @@ class LLMMonitorApp { if (ollamaStatus) { ollamaStatus.innerHTML = "🟡 Not configured"; } + if (cacheModeIndicator) { + cacheModeIndicator.classList.add("hidden"); + } if (container) { container.innerHTML = `
Hover or click a card to open the details modal.
+Model details are loaded on demand to keep device storage usage low.