From 8d8c34c0a23bcdc22c0dbda06827aea3c88e0fac Mon Sep 17 00:00:00 2001 From: perf3ct Date: Mon, 17 Mar 2025 17:16:18 +0000 Subject: [PATCH] fancier LLM/AI chat errors --- src/public/app/widgets/llm_chat_panel.ts | 27 ++++++++++++++++++------ 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/public/app/widgets/llm_chat_panel.ts b/src/public/app/widgets/llm_chat_panel.ts index 3ecfd0eab..9a9cc6692 100644 --- a/src/public/app/widgets/llm_chat_panel.ts +++ b/src/public/app/widgets/llm_chat_panel.ts @@ -40,8 +40,8 @@ export default class LlmChatPanel extends BasicWidget { doRender() { this.$widget = $(`
- - + +
@@ -99,6 +99,15 @@ export default class LlmChatPanel extends BasicWidget { this.useAdvancedContextCheckbox = element.querySelector('.use-advanced-context-checkbox') as HTMLInputElement; this.validationWarning = element.querySelector('.provider-validation-warning') as HTMLElement; + // Set up event delegation for the settings link + this.validationWarning.addEventListener('click', (e) => { + const target = e.target as HTMLElement; + if (target.classList.contains('settings-link') || target.closest('.settings-link')) { + console.log('Settings link clicked, navigating to AI settings URL'); + window.location.href = '#root/_hidden/_options/_optionsAi'; + } + }); + this.initializeEventListeners(); // Create a session when first loaded @@ -492,23 +501,27 @@ export default class LlmChatPanel extends BasicWidget { // Show warning if there are issues if (!defaultInPrecedence || !defaultIsEnabled || !allPrecedenceEnabled) { - let message = 'There are issues with your AI provider configuration:'; + let message = 'AI Provider Configuration Issues'; + + message += '
    '; if (!defaultInPrecedence) { - message += `
    • The default embedding provider "${defaultProvider}" is not in your provider precedence list.`; + message += `
  • The default embedding provider "${defaultProvider}" is not in your provider precedence list.
  • `; } if (!defaultIsEnabled) { - message += `
    • The default embedding provider "${defaultProvider}" is not enabled.`; + message += `
  • The default embedding provider "${defaultProvider}" is not enabled.
  • `; } if (!allPrecedenceEnabled) { const disabledProviders = precedenceList.filter((p: string) => !enabledProviders.includes(p)); - message += `
    • The following providers in your precedence list are not enabled: ${disabledProviders.join(', ')}.`; + message += `
  • The following providers in your precedence list are not enabled: ${disabledProviders.join(', ')}.
  • `; } - message += '

    Please check your AI settings.'; + message += '
'; + message += ''; + // Update HTML content - no need to attach event listeners here anymore this.validationWarning.innerHTML = message; this.validationWarning.style.display = 'block'; } else {