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 = `