diff --git a/templates/index.html b/templates/index.html index 4f91e20..fffb426 100644 --- a/templates/index.html +++ b/templates/index.html @@ -288,9 +288,20 @@ try { const res = await fetch('/api/settings'); currentSettings = await res.json(); - document.getElementById('ai-provider').value = currentSettings.provider; - updateModelDropdown(true); - } catch (e) {} + + const providerSelect = document.getElementById('ai-provider'); + providerSelect.value = currentSettings.provider; + + // Falls eine Ollama-URL in den Settings gespeichert ist, diese setzen + if (currentSettings.ollama_url) { + document.getElementById('ollama-url').value = currentSettings.ollama_url; + } + + // Jetzt die Modelle laden - WICHTIG: await nutzen + await updateModelDropdown(true); + } catch (e) { + console.error("Fehler beim Laden der Initial-Settings:", e); + } } loadSettings(); @@ -306,18 +317,23 @@ const provider = document.getElementById('ai-provider').value; const modelSelect = document.getElementById('ai-model'); const urlContainer = document.getElementById('ollama-url-container'); + const ollamaUrl = document.getElementById('ollama-url').value; - // FIX: Zeige das URL-Feld nur an, wenn Ollama ausgewählt ist - if (provider === "ollama") { - urlContainer.style.display = "flex"; - } else { - urlContainer.style.display = "none"; - } + // Sichtbarkeit des URL-Feldes steuern + urlContainer.style.display = (provider === "ollama") ? "flex" : "none"; modelSelect.innerHTML = ''; + // API-Query vorbereiten + let apiUrl = `/api/models?provider=${provider}`; + if (provider === "ollama" && ollamaUrl) { + apiUrl += `&base_url=${encodeURIComponent(ollamaUrl)}`; + } + try { - const res = await fetch(`/api/models?provider=${provider}`); + const res = await fetch(apiUrl); + if (!res.ok) throw new Error("Server-Antwort nicht OK"); + const data = await res.json(); modelSelect.innerHTML = ''; @@ -327,16 +343,18 @@ opt.value = opt.textContent = m; modelSelect.appendChild(opt); }); - // Setze gespeichertes Modell beim ersten Laden - if (isInitialLoad && currentSettings[`${provider}_model`]) { - modelSelect.value = currentSettings[`${provider}_model`]; + + // Gespeichertes Modell setzen + const savedModel = currentSettings[`${provider}_model`]; + if (isInitialLoad && savedModel) { + modelSelect.value = savedModel; } } else { modelSelect.innerHTML = ''; } } catch (e) { - console.error("Fehler beim Laden der Modelle:", e); - modelSelect.innerHTML = ''; + console.error("Fehler beim Modell-Abruf:", e); + modelSelect.innerHTML = ''; } }