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" /> + +