From ba3215c1773a74e486dd952aa36ed69702bc8ce7 Mon Sep 17 00:00:00 2001 From: Nirvana Date: Thu, 25 Dec 2025 09:50:05 +0100 Subject: [PATCH] Restructure for enabling/disabling --- resources/web/config.js | 83 +++++++++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 29 deletions(-) diff --git a/resources/web/config.js b/resources/web/config.js index 34945b7..89e9e3a 100644 --- a/resources/web/config.js +++ b/resources/web/config.js @@ -247,7 +247,10 @@ async function loadAuthStatus() { // Render credentials forms async function renderCredentialsForms() { - if (providers.length === 0) { + // Use all_providers metadata instead of just enabled providers + const allProviders = window.allProvidersMetadata || []; + + if (allProviders.length === 0) { credentialsContainer.innerHTML = `
@@ -264,16 +267,34 @@ async function renderCredentialsForms() { } // Load credentials for all providers in parallel - const credentialsPromises = providers.map(async (provider) => { + const credentialsPromises = allProviders.map(async (providerMetadata) => { + const provider_name = providerMetadata.name; + + // Get full provider details from the enabled providers array if available + const provider = providers.find(p => p.name === provider_name) || { + name: provider_name, + label: providerMetadata.label, + logo: providerMetadata.logo, + country: providerMetadata.country, + auth: providerMetadata.auth || {} + }; + try { - // Try to fetch existing credentials - const credsResponse = await fetch(`${API_BASE}/api/providers/${provider.name}/credentials`); + // Only try to fetch credentials for enabled providers with full details let existingCreds = null; - if (credsResponse.ok) { - const credsData = await credsResponse.json(); - if (credsData.has_credentials) { - existingCreds = credsData; + // Only fetch credentials if provider is enabled and instance_ready + if (providerMetadata.enabled && providerMetadata.instance_ready) { + try { + const credsResponse = await fetch(`${API_BASE}/api/providers/${provider_name}/credentials`); + if (credsResponse.ok) { + const credsData = await credsResponse.json(); + if (credsData.has_credentials) { + existingCreds = credsData; + } + } + } catch (credErr) { + console.debug(`Could not fetch credentials for ${provider_name}:`, credErr); } } @@ -288,15 +309,15 @@ async function renderCredentialsForms() { const usesEmbeddedClient = auth.uses_embedded_client || false; const usesDeviceRegistration = auth.uses_device_registration || false; - // Get current auth status - const status = authStatus[provider.name] || {}; + // Get current auth status (only for enabled providers) + const status = (providerMetadata.enabled && providerMetadata.instance_ready) + ? (authStatus[provider_name] || {}) + : {}; - // Get enable/disable status - const isEnabled = window.providerEnableManager - ? window.providerEnableManager.isEnabled(provider.name) - : true; + // Get enable/disable status from metadata + const isEnabled = providerMetadata.enabled && providerMetadata.instance_ready; const canModify = window.providerEnableManager - ? window.providerEnableManager.canModify(provider.name) + ? window.providerEnableManager.canModify(provider_name) : true; // Determine provider card class @@ -310,7 +331,7 @@ async function renderCredentialsForms() { // Create toggle switch const toggleSwitch = window.createToggleSwitch - ? window.createToggleSwitch(provider.name, isEnabled, canModify) + ? window.createToggleSwitch(provider_name, isEnabled, canModify) : ''; // Create form content based on auth type @@ -320,11 +341,11 @@ async function renderCredentialsForms() { // User credentials form formContent = `
-