This is an automated email from the ASF dual-hosted git repository.

abeizn pushed a commit to branch release-v1.0
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit ec4cab1dc288b9e3757809cd406940240957f528
Author: 青湛 <[email protected]>
AuthorDate: Fri Mar 29 20:27:23 2024 +1300

    fix: missed recollect operate in onboard (#7254)
---
 config-ui/src/routes/onboard/context.tsx |  1 +
 config-ui/src/routes/onboard/step-2.tsx  |  5 ++++-
 config-ui/src/routes/onboard/step-3.tsx  |  1 +
 config-ui/src/routes/onboard/step-4.tsx  | 28 +++++++++++++++++++++++++---
 4 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/config-ui/src/routes/onboard/context.tsx 
b/config-ui/src/routes/onboard/context.tsx
index c7aa00c34..e21d12d2b 100644
--- a/config-ui/src/routes/onboard/context.tsx
+++ b/config-ui/src/routes/onboard/context.tsx
@@ -21,6 +21,7 @@ import { createContext } from 'react';
 export type Record = {
   plugin: string;
   connectionId: ID;
+  blueprintId: ID;
   pipelineId: ID;
   scopeName: string;
 };
diff --git a/config-ui/src/routes/onboard/step-2.tsx 
b/config-ui/src/routes/onboard/step-2.tsx
index 40c0c560c..eb7afbba1 100644
--- a/config-ui/src/routes/onboard/step-2.tsx
+++ b/config-ui/src/routes/onboard/step-2.tsx
@@ -97,7 +97,10 @@ export const Step2 = () => {
           ...payload,
         });
 
-        const newRecords = [...records, { plugin, connectionId: connection.id, 
pipelineId: '', scopeName: '' }];
+        const newRecords = [
+          ...records,
+          { plugin, connectionId: connection.id, blueprintId: '', pipelineId: 
'', scopeName: '' },
+        ];
 
         setRecords(newRecords);
 
diff --git a/config-ui/src/routes/onboard/step-3.tsx 
b/config-ui/src/routes/onboard/step-3.tsx
index 6c9656860..0c41ce5f2 100644
--- a/config-ui/src/routes/onboard/step-3.tsx
+++ b/config-ui/src/routes/onboard/step-3.tsx
@@ -104,6 +104,7 @@ export const Step3 = () => {
             ? it
             : {
                 ...it,
+                blueprintId: blueprint.id,
                 pipelineId: pipeline.pipelines[0].id,
                 scopeName: scopes[0]?.fullName ?? scopes[0].name,
               },
diff --git a/config-ui/src/routes/onboard/step-4.tsx 
b/config-ui/src/routes/onboard/step-4.tsx
index 5923e4316..d54d3d105 100644
--- a/config-ui/src/routes/onboard/step-4.tsx
+++ b/config-ui/src/routes/onboard/step-4.tsx
@@ -103,6 +103,7 @@ const getStatus = (data: any) => {
 
 export const Step4 = () => {
   const [operating, setOperating] = useState(false);
+  const [version, setVersion] = useState(0);
 
   const navigate = useNavigate();
 
@@ -114,7 +115,7 @@ export const Step4 = () => {
     async () => {
       return await API.pipeline.subTasks(record?.pipelineId as string);
     },
-    [],
+    [version],
     {
       cancel: (data) => {
         return !!(data && ['TASK_COMPLETED', 'TASK_PARTIAL', 
'TASK_FAILED'].includes(data.status));
@@ -192,6 +193,23 @@ export const Step4 = () => {
     }
   };
 
+  const handleRecollectData = async () => {
+    if (!record) {
+      return null;
+    }
+
+    const [success] = await operator(
+      () => API.blueprint.trigger(record.blueprintId, { skipCollectors: false, 
fullSync: false }),
+      {
+        setOperating,
+      },
+    );
+
+    if (success) {
+      setVersion(version + 1);
+    }
+  };
+
   if (!plugin || !record) {
     return null;
   }
@@ -233,7 +251,9 @@ export const Step4 = () => {
           <CheckCircleOutlined style={{ fontSize: 120, color: orange5 }} />
           <div className="action">
             <Space>
-              <Button type="primary">Re-collect Data</Button>
+              <Button type="primary" onClick={handleRecollectData}>
+                Re-collect Data
+              </Button>
               <Button type="primary" onClick={() => 
window.open(DashboardURLMap[plugin])}>
                 Check Dashboard
               </Button>
@@ -252,7 +272,9 @@ export const Step4 = () => {
           <CloseCircleOutlined style={{ fontSize: 120, color: red5 }} />
           <div className="action">
             <Space direction="vertical">
-              <Button type="primary">Re-collect Data</Button>
+              <Button type="primary" onClick={handleRecollectData}>
+                Re-collect Data
+              </Button>
             </Space>
           </div>
         </div>

Reply via email to