From 91c1ac5051bede5d075e7cb5a5716f4d89eb438a Mon Sep 17 00:00:00 2001 From: Jicheng Lu <103353@smsassist.com> Date: Fri, 20 Sep 2024 13:40:44 -0500 Subject: [PATCH] refine adv search --- src/lib/scss/custom/pages/_knowledgebase.scss | 16 +++ src/lib/services/api-endpoints.js | 1 + src/lib/services/knowledge-base-service.js | 14 +++ .../common/search/advanced-search.svelte | 42 +++++--- .../common/vector-table/vector-item.svelte | 5 + .../knowledge-base/documents/+page.svelte | 97 +++++++++++++++---- .../knowledge-document-upload.svelte | 48 ++++++++- .../question-answer/+page.svelte | 18 +++- 8 files changed, 208 insertions(+), 33 deletions(-) diff --git a/src/lib/scss/custom/pages/_knowledgebase.scss b/src/lib/scss/custom/pages/_knowledgebase.scss index 651a8999..a1a00819 100644 --- a/src/lib/scss/custom/pages/_knowledgebase.scss +++ b/src/lib/scss/custom/pages/_knowledgebase.scss @@ -261,6 +261,22 @@ .load-doc-btn { font-size: 12px; + display: flex; + justify-content: space-between; + + .reset-docs-btn { + color: var(--bs-danger); + + i { + font-size: 18px; + border-radius: 3px; + + &:hover { + background-color: var(--bs-danger); + color: white; + } + } + } } .collection-docs { diff --git a/src/lib/services/api-endpoints.js b/src/lib/services/api-endpoints.js index 9797210c..4329f887 100644 --- a/src/lib/services/api-endpoints.js +++ b/src/lib/services/api-endpoints.js @@ -74,6 +74,7 @@ export const endpoints = { knowledgeDocumentUploadUrl: `${host}/knowledge/document/{collection}/upload`, knowledgeDocumentDeleteUrl: `${host}/knowledge/document/{collection}/delete/{fileId}`, + knowledgeDocumentDeleteAllUrl: `${host}/knowledge/document/{collection}/delete`, knowledgeDocumentPageListUrl: `${host}/knowledge/document/{collection}/page`, // chathub diff --git a/src/lib/services/knowledge-base-service.js b/src/lib/services/knowledge-base-service.js index 386b63da..17f7800b 100644 --- a/src/lib/services/knowledge-base-service.js +++ b/src/lib/services/knowledge-base-service.js @@ -154,6 +154,20 @@ export async function deleteKnowledgeDocument(collection, fileId) { return response.data; } +/** + * @param {string} collection + * @param {import('$knowledgeTypes').KnowledgeDocRequest} request + * @returns {Promise} + */ +export async function deleteAllKnowledgeDocuments(collection, request) { + const url = replaceUrl(endpoints.knowledgeDocumentDeleteAllUrl, { + collection: collection + }); + + const response = await axios.delete(url, { data: { ...request } }); + return response.data; +} + /** * @param {string} collection diff --git a/src/routes/page/knowledge-base/common/search/advanced-search.svelte b/src/routes/page/knowledge-base/common/search/advanced-search.svelte index 4a828d84..4825f13d 100644 --- a/src/routes/page/knowledge-base/common/search/advanced-search.svelte +++ b/src/routes/page/knowledge-base/common/search/advanced-search.svelte @@ -1,23 +1,25 @@
- toggleAdvSearch(e)} - /> +
+ toggleAdvSearch(e)} + /> +
{'Advance Search'}
diff --git a/src/routes/page/knowledge-base/common/vector-table/vector-item.svelte b/src/routes/page/knowledge-base/common/vector-table/vector-item.svelte index e30c4b61..807f5f33 100644 --- a/src/routes/page/knowledge-base/common/vector-table/vector-item.svelte +++ b/src/routes/page/knowledge-base/common/vector-table/vector-item.svelte @@ -20,6 +20,9 @@ /** @type {boolean} */ export let open = false; + /** @type {boolean} */ + export let disabled = false; + $: isQuestionAnswerCollection = collectionType === KnowledgeCollectionType.QuestionAnswer; $: isDocumentCollection = collectionType === KnowledgeCollectionType.Document; $: { @@ -94,6 +97,7 @@
  • + + {#if textSearch} + onSearchItemsChanged(e)} + disabled={disabled} + items={[ + { key: KnowledgePayloadName.FileName, displayName: "File name" }, + { key: KnowledgePayloadName.FileSource, displayName: "File source" } + ]} + /> + {/if} {#if isSearching}
    @@ -795,16 +862,6 @@
    {/if} - - {#if textSearch} - - {/if} {/if} @@ -815,6 +872,7 @@ bind:this={docUploadrCmp} on:docuploaded={(e) => onDocUploaded(e)} on:docdeleted={(e) => onDocDelected(e)} + on:resetdocs={(e) => onDocsReset(e)} /> {/if} @@ -857,7 +915,10 @@
    - changeCollection(e)}> + changeCollection(e)} + > {#each collections as option, idx (idx)} {/each} diff --git a/src/routes/page/knowledge-base/documents/knowledge-document-upload.svelte b/src/routes/page/knowledge-base/documents/knowledge-document-upload.svelte index a99d9f56..fcac3029 100644 --- a/src/routes/page/knowledge-base/documents/knowledge-document-upload.svelte +++ b/src/routes/page/knowledge-base/documents/knowledge-document-upload.svelte @@ -16,7 +16,8 @@ import { getKnowledgeDocumentPageList, uploadKnowledgeDocuments, - deleteKnowledgeDocument + deleteKnowledgeDocument, + deleteAllKnowledgeDocuments } from '$lib/services/knowledge-base-service'; import { isHtml } from '$lib/helpers/utils/file'; @@ -103,7 +104,7 @@ }); function init() { - showUploader = true; + showUploader = false; } /** @param {any} e */ @@ -257,6 +258,36 @@ }); } + function handleDeleteAllSavedFiles() { + if (disabled || savedFiles.length === 0) return; + + Swal.fire({ + title: 'Are you sure?', + text: `Are you sure you want to delete all the documents and their knowledge"?`, + icon: 'warning', + customClass: { confirmButton: 'danger-background' }, + showCancelButton: true, + cancelButtonText: 'No', + confirmButtonText: 'Yes', + }).then(async (result) => { + if (result.value) { + disabled = true; + deleteAllKnowledgeDocuments(collection, { page: 1, size: 10 }).then(res => { + if (res) { + savedFiles = []; + docPage = startPage; + getKnowledgeDocumentList(); + } + svelteDispatch("resetdocs", { success: res }); + }).catch(err => { + svelteDispatch("resetdocs", { success: false }); + }).finally(() => { + disabled = false; + }); + } + }); + } + /** @param {number} index */ function handleDownloadSavedFile(index) { const found = savedFiles.find((_, idx) => idx === index); @@ -398,6 +429,19 @@
    {/if} + {#if showDocList} +
    + + + handleDeleteAllSavedFiles()} + /> +
    + {/if}
    {#if showDocList}
    diff --git a/src/routes/page/knowledge-base/question-answer/+page.svelte b/src/routes/page/knowledge-base/question-answer/+page.svelte index 7dd79433..06c25178 100644 --- a/src/routes/page/knowledge-base/question-answer/+page.svelte +++ b/src/routes/page/knowledge-base/question-answer/+page.svelte @@ -85,6 +85,7 @@ let isOpenEditKnowledge = false; let isOpenCreateCollection = false; let textSearch = false; + let disableSearchBtn = false; /** @type {{ * startId: string | null, @@ -102,6 +103,16 @@ useSearhPair: false }; + $: disabled = isLoading || isLoadingMore || isSearching; + $: { + disableSearchBtn = false; + if (isSearching || isLoadingMore) { + disableSearchBtn = true; + } else if (!text || util.trim(text).length === 0) { + disableSearchBtn = true; + } + } + onMount(() => { initData(); }); @@ -743,7 +754,7 @@
    - changeCollection(e)}> + changeCollection(e)} + > {#each collections as option, idx (idx)} {/each}