diff --git a/pkg/handlers/index/delete.go b/pkg/handlers/index/delete.go
index a0d49148c..b202183ca 100644
--- a/pkg/handlers/index/delete.go
+++ b/pkg/handlers/index/delete.go
@@ -17,6 +17,7 @@ package index
import (
"net/http"
+ "strings"
"github.com/gin-gonic/gin"
@@ -36,23 +37,20 @@ import (
// @Failure 500 {object} meta.HTTPResponseError
// @Router /api/index/{index} [delete]
func Delete(c *gin.Context) {
- indexName := c.Param("target")
-
- index, exists := core.GetIndex(indexName)
- if !exists {
- c.JSON(http.StatusBadRequest, meta.HTTPResponseError{Error: "index " + indexName + " does not exists"})
+ indexNames := c.Param("target")
+ if indexNames == "" {
+ c.JSON(http.StatusBadRequest, meta.HTTPResponseError{Error: "index name cannot be empty"})
return
}
- // delete meta
- if err := core.DeleteIndex(index.Name); err != nil {
- c.JSON(http.StatusInternalServerError, meta.HTTPResponseError{Error: err.Error()})
- return
+ for _, indexName := range strings.Split(indexNames, ",") {
+ if err := core.DeleteIndex(indexName); err != nil {
+ c.JSON(http.StatusBadRequest, meta.HTTPResponseError{Error: err.Error()})
+ return
+ }
}
- c.JSON(http.StatusOK, meta.HTTPResponseIndex{
- Message: "deleted",
- Index: index.Name,
- StorageType: index.StorageType,
+ c.JSON(http.StatusOK, meta.HTTPResponse{
+ Message: "deleted",
})
}
diff --git a/pkg/handlers/index/delete_test.go b/pkg/handlers/index/delete_test.go
index 43442b214..8de5fadd5 100644
--- a/pkg/handlers/index/delete_test.go
+++ b/pkg/handlers/index/delete_test.go
@@ -51,7 +51,7 @@ func TestDelete(t *testing.T) {
args: args{
code: http.StatusBadRequest,
params: map[string]string{"target": ""},
- result: "does not exists",
+ result: "index name cannot be empty",
},
wantErr: false,
},
diff --git a/web/src/locales/en.ts b/web/src/locales/en.ts
index 5c32af1d7..c5f63a5a8 100644
--- a/web/src/locales/en.ts
+++ b/web/src/locales/en.ts
@@ -47,6 +47,7 @@ export default {
index: {
header: "Indexes",
add: "Add Index",
+ delete: "Delete Index",
search: "Search Index",
},
template: {
diff --git a/web/src/locales/zh-cn.ts b/web/src/locales/zh-cn.ts
index aa2da725d..27a14bce8 100644
--- a/web/src/locales/zh-cn.ts
+++ b/web/src/locales/zh-cn.ts
@@ -45,6 +45,7 @@ export default {
index: {
header: "索引管理",
add: "添加",
+ delete: "删除",
search: "查询",
},
template: {
diff --git a/web/src/services/index.ts b/web/src/services/index.ts
index fb1292192..26b3a663a 100644
--- a/web/src/services/index.ts
+++ b/web/src/services/index.ts
@@ -7,8 +7,8 @@ var index = {
update: (data: any) => {
return http().put("/api/index/" + data.name, data);
},
- delete: (name: string) => {
- return http().delete("/api/index/" + name);
+ delete: (names: string) => {
+ return http().delete("/api/index/" + names);
},
nameList: (name: string) => {
return http().get("/api/index_name?name=" + name);
diff --git a/web/src/views/Index.vue b/web/src/views/Index.vue
index 3c76c051a..8faa70772 100644
--- a/web/src/views/Index.vue
+++ b/web/src/views/Index.vue
@@ -4,8 +4,11 @@
:title="t('index.header')"
:rows="indexes"
:columns="resultColumns"
- row-key="id"
+ row-key="name"
:pagination="pagination"
+ selection="multiple"
+ :loading="loading"
+ v-model:selected="selectedIndexes"
:filter="filterQuery"
:filter-method="filterData"
>
@@ -28,6 +31,13 @@
:label="t('index.add')"
@click="addIndex"
/>
+
@@ -67,6 +77,7 @@
/>
+