diff --git a/src/lib/common/RemoteSearchInput.svelte b/src/lib/common/RemoteSearchInput.svelte index a38f6d9c..f02e44de 100644 --- a/src/lib/common/RemoteSearchInput.svelte +++ b/src/lib/common/RemoteSearchInput.svelte @@ -1,84 +1,85 @@
- 0 || loading)} toggle={() => isOpen = !isOpen}> - - - - - {#if loading} - - - - {:else} - {#each searchResults as result, index} - selectResult(result)} - title={result.name} - > - {result.name} - - {/each} - {/if} - - -
\ No newline at end of file + 0 || loading)} + toggle={() => (isOpen = !isOpen)} + > + + + + + {#if loading} +
  • + {:else} + {#each searchResults as result, index} + selectResult(result)} + title={typeof result === 'string' ? result : result?.name} + > + {typeof result === 'string' ? result : result?.name} + + {/each} + {/if} +
    +
    + diff --git a/src/lib/helpers/http.js b/src/lib/helpers/http.js index 4a113b32..319d5545 100644 --- a/src/lib/helpers/http.js +++ b/src/lib/helpers/http.js @@ -90,7 +90,7 @@ function skipLoader(config) { new RegExp('http(s*)://(.*?)/role/(.*?)/details', 'g'), new RegExp('http(s*)://(.*?)/user/(.*?)/details', 'g'), new RegExp('http(s*)://(.*?)/agent/labels', 'g'), - new RegExp('http(s*)://(.*?)/conversation/state-search', 'g'), + new RegExp('http(s*)://(.*?)/conversation/state-key', 'g'), ]; if (config.method === 'post' && postRegexes.some(regex => regex.test(config.url || ''))) { diff --git a/src/lib/services/api-endpoints.js b/src/lib/services/api-endpoints.js index b42c4cb3..77d4ba8f 100644 --- a/src/lib/services/api-endpoints.js +++ b/src/lib/services/api-endpoints.js @@ -67,7 +67,6 @@ export const endpoints = { conversationTagsUpdateUrl: `${host}/conversation/{conversationId}/update-tags`, fileUploadUrl: `${host}/agent/{agentId}/conversation/{conversationId}/upload`, pinConversationUrl: `${host}/agent/{agentId}/conversation/{conversationId}/dashboard`, - conversationStateValueUrl: `${host}/conversation/state-search`, conversationStateKeyListUrl: `${host}/conversation/state-key`, // LLM provider diff --git a/src/lib/services/conversation-service.js b/src/lib/services/conversation-service.js index 16124019..1bb4140b 100644 --- a/src/lib/services/conversation-service.js +++ b/src/lib/services/conversation-service.js @@ -290,36 +290,24 @@ export async function getAddressOptions(text) { return response.data; } -/** - * get conversation state key list - * @returns {Promise<{id: string, name: string, description: string}[]>} - */ -export async function getConversationStateKey() { - let url = endpoints.conversationStateKeyListUrl; - const response = await axios.get(url); - return response.data; -} - /** @type {import('axios').CancelTokenSource | null} */ -let getConversationStateValueCancelToken = null; +let getConversationStatKeyCancelToken = null; /** - * get conversation state value - * @param {string} key + * get conversation state key list * @param {string} query * @returns {Promise<{id: string, name: string}[]>} */ -export async function getConversationStateValue(key, query) { - let url = endpoints.conversationStateValueUrl; - if (getConversationStateValueCancelToken) { - getConversationStateValueCancelToken.cancel(); +export async function getConversationStateKey(query) { + let url = endpoints.conversationStateKeyListUrl; + if (getConversationStatKeyCancelToken) { + getConversationStatKeyCancelToken.cancel(); } - getConversationStateValueCancelToken = axios.CancelToken.source(); + getConversationStatKeyCancelToken = axios.CancelToken.source(); const response = await axios.get(url, { params: { - conversatinFilterType: key, searchKey: query }, - cancelToken: getConversationStateValueCancelToken.token + cancelToken: getConversationStatKeyCancelToken.token }); return response.data; } \ No newline at end of file diff --git a/src/routes/page/agent/[agentId]/agent-components/agent-overview.svelte b/src/routes/page/agent/[agentId]/agent-components/agent-overview.svelte index 8135eb9c..9a7b092e 100644 --- a/src/routes/page/agent/[agentId]/agent-components/agent-overview.svelte +++ b/src/routes/page/agent/[agentId]/agent-components/agent-overview.svelte @@ -136,7 +136,7 @@ class="form-check-input" type="checkbox" bind:checked={agent.is_public} - on:input={handleAgentChange} + on:change={handleAgentChange} id="is_public" /> @@ -151,7 +151,7 @@ class="form-check-input" type="checkbox" bind:checked={agent.allow_routing} - on:input={handleAgentChange} + on:change={handleAgentChange} id="allow_routing" /> @@ -244,7 +244,7 @@ class="form-check-input" type="checkbox" bind:checked={agent.disabled} - on:input={handleAgentChange} + on:change={handleAgentChange} id="disabled" /> diff --git a/src/routes/page/conversation/+page.svelte b/src/routes/page/conversation/+page.svelte index 78deb99d..ea355fa2 100644 --- a/src/routes/page/conversation/+page.svelte +++ b/src/routes/page/conversation/+page.svelte @@ -15,7 +15,7 @@ import LoadingToComplete from '$lib/common/LoadingToComplete.svelte'; import { onMount } from 'svelte'; import { getAgents } from '$lib/services/agent-service'; - import { getConversations, deleteConversation, getConversationStateKey, getConversationStateValue } from '$lib/services/conversation-service.js'; + import { getConversations, deleteConversation, getConversationStateKey } from '$lib/services/conversation-service.js'; import { utcToLocal } from '$lib/helpers/datetime'; import Swal from 'sweetalert2'; import lodash from "lodash"; @@ -70,27 +70,17 @@ tags: [] }; - /** @type {any[]} */ - let stateOptions = []; + /** @type {string} */ + let stateKey = ""; /** @type {string | null} */ - let selectedStateKey = null; - - /** @type {{id: string, name: string} | null} */ - let selectedStateValue; - - /** @type {boolean} */ - let isValueEditable = false; - - /** @type {RemoteSearchInput} */ - let remoteSearchInput; + let stateValue = null; onMount(async () => { isLoading = true; Promise.all([ loadAgentOptions(), loadSearchOption(), - loadStates(), loadConversations()]) .finally(() => { isLoading = false @@ -229,12 +219,12 @@ * @param {any} e */ function handleConfirmStateModal(e) { - if (selectedStateKey && selectedStateValue?.id) { + if (stateKey && stateValue) { searchOption.states = [ { - key: { data: stateOptions.find(x => Number(x.id) === Number(selectedStateKey))?.description, isValid: true }, - value: {data: selectedStateValue.id, isValid: true }, - active_rounds: {data: 0, isValid: true}, + key: { data: stateKey, isValid: true }, + value: {data: stateValue, isValid: true }, + active_rounds: {data: -1, isValid: true}, } ]; } else { @@ -348,28 +338,12 @@ } } - async function loadStates() { - const response = await getConversationStateKey(); - stateOptions = response; - } - - /** - * @param { any } e - */ - function handleStateChange(e) { - selectedStateKey = e.target.value; - isValueEditable = !!selectedStateKey; - selectedStateValue = null; - remoteSearchInput?.clearSearchResults(); - } - /** * @param {any} query */ - async function handleValueSearch(query) { - if (!selectedStateKey) return []; - const response = await getConversationStateValue(selectedStateKey, query); - return response; + async function handleStateSearch(query) { + const response = await getConversationStateKey(query); + return response || []; } @@ -386,20 +360,18 @@
    - +
    -