فهرست منبع

fix: can not delete multiple entities (#749)

Signed-off-by: ryjiang <jiangruiyi@gmail.com>
ryjiang 5 ماه پیش
والد
کامیت
d1ff76addb
3فایلهای تغییر یافته به همراه34 افزوده شده و 25 حذف شده
  1. 1 0
      client/src/i18n/cn/dialog.ts
  2. 1 0
      client/src/i18n/en/dialog.ts
  3. 32 25
      client/src/pages/databases/collections/data/CollectionData.tsx

+ 1 - 0
client/src/i18n/cn/dialog.ts

@@ -5,6 +5,7 @@ const dialogTrans = {
   deleteTipAction: '输入',
   deleteTipPurpose: '以确认。',
   deleteTitle: `删除 {{type}}`,
+  deleteEntityTitle: `删除 Entity`,
   renameTitle: `重命名 {{type}}`,
   releaseTitle: `发布 {{type}}`,
   duplicateTitle: `复制 {{type}}`,

+ 1 - 0
client/src/i18n/en/dialog.ts

@@ -3,6 +3,7 @@ const dialogTrans = {
   deleteTipAction: 'Type',
   deleteTipPurpose: 'to confirm.',
   deleteTitle: `Drop {{type}}`,
+  deleteEntityTitle: `Delete Entity`,
   renameTitle: `Rename {{type}}`,
   releaseTitle: `Release {{type}}`,
   duplicateTitle: `Duplicate {{type}}`,

+ 32 - 25
client/src/pages/databases/collections/data/CollectionData.tsx

@@ -107,27 +107,14 @@ const CollectionData = (props: CollectionDataProps) => {
     setSelectedData(value);
   };
   const onDelete = async () => {
-    // reset query
+    // clear selection
+    setSelectedData([]);
+    // reset();
     reset();
+    // update count
     count(ConsistencyLevelEnum.Strong);
-    await query(0, ConsistencyLevelEnum.Strong);
-  };
-  const handleDelete = async () => {
-    // call delete api
-    await DataService.deleteEntities(collection.collection_name, {
-      expr: `${collection!.schema.primaryField.name} in [${selectedData
-        .map(v =>
-          collection!.schema.primaryField.data_type ===
-          DataTypeStringEnum.VarChar
-            ? `"${v[collection!.schema.primaryField.name]}"`
-            : v[collection!.schema.primaryField.name]
-        )
-        .join(',')}]`,
-    });
-    handleCloseDialog();
-    openSnackBar(successTrans('delete', { name: collectionTrans('entities') }));
-    setSelectedData([]);
-    await onDelete();
+    // update query
+    query(0, ConsistencyLevelEnum.Strong);
   };
 
   // Query hook
@@ -342,12 +329,32 @@ const CollectionData = (props: CollectionDataProps) => {
           params: {
             component: (
               <DeleteTemplate
-                label={btnTrans('drop')}
-                title={dialogTrans('deleteTitle', {
-                  type: collectionTrans('entities'),
-                })}
+                label={btnTrans('delete')}
+                title={dialogTrans('deleteEntityTitle')}
                 text={collectionTrans('deleteDataWarning')}
-                handleDelete={handleDelete}
+                handleDelete={async () => {
+                  // call delete api
+                  await DataService.deleteEntities(collection.collection_name, {
+                    expr: `${
+                      collection!.schema.primaryField.name
+                    } in [${selectedData
+                      .map(v =>
+                        collection!.schema.primaryField.data_type ===
+                        DataTypeStringEnum.VarChar
+                          ? `"${v[collection!.schema.primaryField.name]}"`
+                          : v[collection!.schema.primaryField.name]
+                      )
+                      .join(',')}]`,
+                  });
+                  handleCloseDialog();
+                  openSnackBar(
+                    successTrans('delete', {
+                      name: collectionTrans('entities'),
+                    })
+                  );
+                  setSelectedData([]);
+                  await onDelete();
+                }}
               />
             ),
           },
@@ -357,7 +364,7 @@ const CollectionData = (props: CollectionDataProps) => {
       icon: 'delete',
       tooltip: btnTrans('deleteTooltip'),
       disabledTooltip: collectionTrans('deleteDisabledTooltip'),
-      disabled: () => selectedData.length === 0,
+      disabled: () => !selectedData?.length,
     },
   ];