Skip to content

Commit 6a37233

Browse files
authored
Merge pull request #217 from iceljc/features/refine-chat-window
add delete collection all data
2 parents afc4038 + d9f4038 commit 6a37233

File tree

5 files changed

+122
-7
lines changed

5 files changed

+122
-7
lines changed

src/lib/helpers/http.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ function skipLoader(config) {
6969

7070
const deleteRegexes = [
7171
new RegExp('http(s*)://(.*?)/knowledge/vector/(.*?)/delete-collection', 'g'),
72+
new RegExp('http(s*)://(.*?)/knowledge/vector/(.*?)/data/(.*?)', 'g'),
73+
new RegExp('http(s*)://(.*?)/knowledge/vector/(.*?)/data', 'g'),
7274
];
7375

7476
const getRegexes = [
@@ -81,15 +83,15 @@ function skipLoader(config) {
8183
new RegExp('http(s*)://(.*?)/knowledge/vector/collections', 'g')
8284
];
8385

84-
if (config.method === 'post' && !!config.data && postRegexes.some(regex => regex.test(config.url || ''))) {
86+
if (config.method === 'post' && postRegexes.some(regex => regex.test(config.url || ''))) {
8587
return true;
8688
}
8789

88-
if (config.method === 'put' && !!config.data && putRegexes.some(regex => regex.test(config.url || ''))) {
90+
if (config.method === 'put' && putRegexes.some(regex => regex.test(config.url || ''))) {
8991
return true;
9092
}
9193

92-
if (config.method === 'delete' && !!config.data && deleteRegexes.some(regex => regex.test(config.url || ''))) {
94+
if (config.method === 'delete' && deleteRegexes.some(regex => regex.test(config.url || ''))) {
9395
return true;
9496
}
9597

src/lib/services/api-endpoints.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ export const endpoints = {
6565
vectorKnowledgeCreateUrl: `${host}/knowledge/vector/{collection}/create`,
6666
vectorKnowledgeUpdateUrl: `${host}/knowledge/vector/{collection}/update`,
6767
vectorKnowledgeDeleteUrl: `${host}/knowledge/vector/{collection}/data/{id}`,
68+
vectorKnowledgeDeleteAllUrl: `${host}/knowledge/vector/{collection}/data`,
6869
vectorKnowledgeUploadUrl: `${host}/knowledge/vector/{collection}/upload`,
6970
vectorCollectionCreateUrl: `${host}/knowledge/vector/create-collection`,
7071
vectorCollectionDeleteUrl: `${host}/knowledge/vector/{collection}/delete-collection`,

src/lib/services/knowledge-base-service.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { VectorDataSource } from '$lib/helpers/enums.js';
21
import { replaceUrl } from '$lib/helpers/http.js';
32
import { endpoints } from './api-endpoints.js';
43
import axios from 'axios';
@@ -111,6 +110,19 @@ export async function deleteVectorKnowledgeData(id, collection) {
111110
return response.data;
112111
}
113112

113+
/**
114+
* @param {string} collection
115+
* @returns {Promise<boolean>}
116+
*/
117+
export async function deleteAllVectorKnowledgeData(collection) {
118+
const url = replaceUrl(endpoints.vectorKnowledgeDeleteAllUrl, {
119+
collection: collection
120+
});
121+
122+
const response = await axios.delete(url);
123+
return response.data;
124+
}
125+
114126
/**
115127
* @param {string} collection
116128
* @param {import('$knowledgeTypes').VectorKnowledgeUploadRequest} request

src/routes/page/knowledge-base/documents/+page.svelte

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
updateVectorKnowledgeData,
2121
deleteVectorCollection,
2222
deleteVectorKnowledgeData,
23-
createVectorCollection
23+
deleteAllVectorKnowledgeData,
24+
createVectorCollection,
2425
} from '$lib/services/knowledge-base-service';
2526
import Breadcrumb from '$lib/common/Breadcrumb.svelte';
2627
import HeadTitle from '$lib/common/HeadTitle.svelte';
@@ -409,6 +410,42 @@
409410
isOpenEditKnowledge = true;
410411
}
411412
413+
function onKnowledgeDeleteAll() {
414+
Swal.fire({
415+
title: 'Are you sure?',
416+
text: `Are you sure you want to delete all data in collection "${selectedCollection}"?`,
417+
icon: 'warning',
418+
customClass: { confirmButton: 'danger-background' },
419+
showCancelButton: true,
420+
cancelButtonText: 'No',
421+
confirmButtonText: 'Yes',
422+
}).then(async (result) => {
423+
if (result.value) {
424+
isLoading = true;
425+
deleteAllVectorKnowledgeData(selectedCollection).then(res => {
426+
if (res) {
427+
successText = "All data has been deleted!";
428+
isComplete = true;
429+
setTimeout(() => {
430+
isComplete = false;
431+
}, duration);
432+
reset(true);
433+
} else {
434+
throw 'Error when deleting all data';
435+
}
436+
}).catch(() => {
437+
errorText = "Failed to delete all data."
438+
isError = true;
439+
setTimeout(() => {
440+
isError = false;
441+
}, duration);
442+
}).finally(() => {
443+
isLoading = false;
444+
});
445+
}
446+
});
447+
}
448+
412449
function toggleKnowledgeEditModal() {
413450
isOpenEditKnowledge = !isOpenEditKnowledge;
414451
if (!isOpenEditKnowledge) {
@@ -774,7 +811,7 @@
774811
<CardBody>
775812
<div class="mt-2">
776813
<div class="d-flex flex-wrap mb-3 knowledge-table-header">
777-
<div class="d-flex">
814+
<div class="d-flex" style="gap: 5px;">
778815
<h5 class="font-size-16 knowledge-header-text">
779816
<div>{$_('Knowledges')}</div>
780817
</h5>
@@ -789,6 +826,19 @@
789826
on:click={() => onKnowledgeCreate()}
790827
>
791828
<i class="mdi mdi-plus" />
829+
</Button>
830+
</div>
831+
<div
832+
class="line-align-center"
833+
data-bs-toggle="tooltip"
834+
data-bs-placement="top"
835+
title="Delete all data"
836+
>
837+
<Button
838+
class="btn btn-sm btn-soft-danger knowledge-btn-icon"
839+
on:click={() => onKnowledgeDeleteAll()}
840+
>
841+
<i class="mdi mdi-minus" />
792842
</Button>
793843
</div>
794844
</div>

src/routes/page/knowledge-base/question-answer/+page.svelte

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
updateVectorKnowledgeData,
2121
deleteVectorCollection,
2222
deleteVectorKnowledgeData,
23+
deleteAllVectorKnowledgeData,
2324
createVectorCollection
2425
} from '$lib/services/knowledge-base-service';
2526
import Breadcrumb from '$lib/common/Breadcrumb.svelte';
@@ -398,6 +399,42 @@
398399
isOpenEditKnowledge = true;
399400
}
400401
402+
function onKnowledgeDeleteAll() {
403+
Swal.fire({
404+
title: 'Are you sure?',
405+
text: `Are you sure you want to delete all data in collection "${selectedCollection}"?`,
406+
icon: 'warning',
407+
customClass: { confirmButton: 'danger-background' },
408+
showCancelButton: true,
409+
cancelButtonText: 'No',
410+
confirmButtonText: 'Yes',
411+
}).then(async (result) => {
412+
if (result.value) {
413+
isLoading = true;
414+
deleteAllVectorKnowledgeData(selectedCollection).then(res => {
415+
if (res) {
416+
successText = "All data has been deleted!";
417+
isComplete = true;
418+
setTimeout(() => {
419+
isComplete = false;
420+
}, duration);
421+
reset(true);
422+
} else {
423+
throw 'Error when deleting all data';
424+
}
425+
}).catch(() => {
426+
errorText = "Failed to delete all data."
427+
isError = true;
428+
setTimeout(() => {
429+
isError = false;
430+
}, duration);
431+
}).finally(() => {
432+
isLoading = false;
433+
});
434+
}
435+
});
436+
}
437+
401438
function toggleKnowledgeEditModal() {
402439
isOpenEditKnowledge = !isOpenEditKnowledge;
403440
if (!isOpenEditKnowledge) {
@@ -730,7 +767,7 @@
730767
<CardBody>
731768
<div class="mt-2">
732769
<div class="d-flex flex-wrap mb-3 knowledge-table-header">
733-
<div class="d-flex">
770+
<div class="d-flex" style="gap: 5px;">
734771
<h5 class="font-size-16 knowledge-header-text">
735772
<div>{$_('Knowledges')}</div>
736773
</h5>
@@ -745,6 +782,19 @@
745782
on:click={() => onKnowledgeCreate()}
746783
>
747784
<i class="mdi mdi-plus" />
785+
</Button>
786+
</div>
787+
<div
788+
class="line-align-center"
789+
data-bs-toggle="tooltip"
790+
data-bs-placement="top"
791+
title="Delete all data"
792+
>
793+
<Button
794+
class="btn btn-sm btn-soft-danger knowledge-btn-icon"
795+
on:click={() => onKnowledgeDeleteAll()}
796+
>
797+
<i class="mdi mdi-minus" />
748798
</Button>
749799
</div>
750800
</div>

0 commit comments

Comments
 (0)