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

tiagobento pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git


The following commit(s) were added to refs/heads/main by this push:
     new 454f0ae549c kie-issues#1264:`Management-console`: cannot reschedule 
job from Process Details screen (#2369)
454f0ae549c is described below

commit 454f0ae549c15e92d323aa6a5a33d46292cc753a
Author: Pere Fernández <[email protected]>
AuthorDate: Fri May 24 17:55:10 2024 +0200

    kie-issues#1264:`Management-console`: cannot reschedule job from Process 
Details screen (#2369)
---
 .../jobsManagement/api/JobsManagementChannelApi.ts |  4 +-
 .../src/jobsManagement/api/JobsManagementDriver.ts |  4 +-
 .../embedded/JobsManagementChannelApiImpl.ts       |  4 +-
 .../envelope/JobsManagementEnvelopeViewDriver.ts   |  4 +-
 .../JobsRescheduleModal/JobsRescheduleModal.tsx    | 11 +++--
 .../processDetails/api/ProcessDetailsChannelApi.ts |  4 +-
 .../src/processDetails/api/ProcessDetailsDriver.ts |  4 +-
 .../embedded/ProcessDetailsChannelApiImpl.ts       |  4 +-
 .../envelope/ProcessDetailsEnvelopeViewDriver.ts   |  4 +-
 .../components/JobActionsKebab/JobActionsKebab.tsx |  7 ++-
 .../envelope/components/JobsPanel/JobsPanel.tsx    | 54 ++++++++++------------
 .../components/ProcessDetails/ProcessDetails.tsx   | 18 ++++----
 .../ProcessDetailsTimelinePanel.tsx                |  7 ++-
 .../src/processDetails/utils/Utils.tsx             |  9 ++--
 .../src/gatewayApi/apis.tsx                        | 54 ++++++++++------------
 .../runtime-tools-process-gateway-api/src/types.ts |  2 +-
 .../src/JobsManagement/JobsManagementGatewayApi.ts |  8 ++--
 .../src/JobsManagement/JobsManagementQueries.ts    |  6 +--
 .../src/ProcessDetails/ProcessDetailsGatewayApi.ts |  6 +--
 .../src/ProcessDetails/ProcessDetailsQueries.ts    |  6 +--
 .../JobsRescheduleModal/JobsRescheduleModal.tsx    |  7 ++-
 .../components/JobActionsKebab/JobActionsKebab.tsx |  5 +-
 .../WorkflowDetailsTimelinePanel.tsx               |  5 +-
 23 files changed, 124 insertions(+), 113 deletions(-)

diff --git 
a/packages/runtime-tools-process-enveloped-components/src/jobsManagement/api/JobsManagementChannelApi.ts
 
b/packages/runtime-tools-process-enveloped-components/src/jobsManagement/api/JobsManagementChannelApi.ts
index 8fe92551164..31f88fb7060 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/jobsManagement/api/JobsManagementChannelApi.ts
+++ 
b/packages/runtime-tools-process-enveloped-components/src/jobsManagement/api/JobsManagementChannelApi.ts
@@ -20,7 +20,7 @@ import {
   Job,
   JobStatus,
   BulkCancel,
-  JobCancel,
+  JobOperationResult,
   JobsSortBy,
 } from "@kie-tools/runtime-tools-process-gateway-api/dist/types";
 
@@ -28,7 +28,7 @@ export interface JobsManagementChannelApi {
   jobList__initialLoad(filter: JobStatus[], orderBy: JobsSortBy): 
Promise<void>;
   jobList__applyFilter(filter: JobStatus[]): Promise<void>;
   jobList__bulkCancel(jobsToBeActioned: Job[]): Promise<BulkCancel>;
-  jobList_cancelJob(job: Pick<Job, "id" | "endpoint">): Promise<JobCancel>;
+  jobList_cancelJob(job: Pick<Job, "id" | "endpoint">): 
Promise<JobOperationResult>;
   jobList_rescheduleJob(
     job: Job,
     repeatInterval: number | string,
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/jobsManagement/api/JobsManagementDriver.ts
 
b/packages/runtime-tools-process-enveloped-components/src/jobsManagement/api/JobsManagementDriver.ts
index 395e571af88..436066901bb 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/jobsManagement/api/JobsManagementDriver.ts
+++ 
b/packages/runtime-tools-process-enveloped-components/src/jobsManagement/api/JobsManagementDriver.ts
@@ -20,7 +20,7 @@ import {
   Job,
   JobStatus,
   BulkCancel,
-  JobCancel,
+  JobOperationResult,
   JobsSortBy,
 } from "@kie-tools/runtime-tools-process-gateway-api/dist/types";
 
@@ -28,7 +28,7 @@ export interface JobsManagementDriver {
   initialLoad(filter: JobStatus[], orderBy: JobsSortBy): Promise<void>;
   applyFilter(filter: JobStatus[]): Promise<void>;
   bulkCancel(jobsToBeActioned: Job[]): Promise<BulkCancel>;
-  cancelJob(job: Pick<Job, "id" | "endpoint">): Promise<JobCancel>;
+  cancelJob(job: Pick<Job, "id" | "endpoint">): Promise<JobOperationResult>;
   rescheduleJob(
     job: Job,
     repeatInterval: number | string,
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/jobsManagement/embedded/JobsManagementChannelApiImpl.ts
 
b/packages/runtime-tools-process-enveloped-components/src/jobsManagement/embedded/JobsManagementChannelApiImpl.ts
index f1419999ebd..235ef6cc158 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/jobsManagement/embedded/JobsManagementChannelApiImpl.ts
+++ 
b/packages/runtime-tools-process-enveloped-components/src/jobsManagement/embedded/JobsManagementChannelApiImpl.ts
@@ -21,7 +21,7 @@ import {
   Job,
   JobStatus,
   BulkCancel,
-  JobCancel,
+  JobOperationResult,
   JobsSortBy,
 } from "@kie-tools/runtime-tools-process-gateway-api/dist/types";
 
@@ -40,7 +40,7 @@ export class JobsManagementChannelApiImpl implements 
JobsManagementChannelApi {
     return this.driver.bulkCancel(jobsToBeActioned);
   }
 
-  jobList_cancelJob(job: Pick<Job, "id" | "endpoint">): Promise<JobCancel> {
+  jobList_cancelJob(job: Pick<Job, "id" | "endpoint">): 
Promise<JobOperationResult> {
     return this.driver.cancelJob(job);
   }
 
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/jobsManagement/envelope/JobsManagementEnvelopeViewDriver.ts
 
b/packages/runtime-tools-process-enveloped-components/src/jobsManagement/envelope/JobsManagementEnvelopeViewDriver.ts
index 8f5feb17a67..0a906e5e4ea 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/jobsManagement/envelope/JobsManagementEnvelopeViewDriver.ts
+++ 
b/packages/runtime-tools-process-enveloped-components/src/jobsManagement/envelope/JobsManagementEnvelopeViewDriver.ts
@@ -21,7 +21,7 @@ import {
   Job,
   JobStatus,
   BulkCancel,
-  JobCancel,
+  JobOperationResult,
   JobsSortBy,
 } from "@kie-tools/runtime-tools-process-gateway-api/dist/types";
 import { JobsManagementChannelApi, JobsManagementDriver } from "../api";
@@ -41,7 +41,7 @@ export default class JobsManagementEnvelopeViewDriver 
implements JobsManagementD
     return this.channelApi.requests.jobList__bulkCancel(jobsToBeActioned);
   }
 
-  cancelJob(job: Pick<Job, "id" | "endpoint">): Promise<JobCancel> {
+  cancelJob(job: Pick<Job, "id" | "endpoint">): Promise<JobOperationResult> {
     return this.channelApi.requests.jobList_cancelJob(job);
   }
 
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/jobsManagement/envelope/components/JobsRescheduleModal/JobsRescheduleModal.tsx
 
b/packages/runtime-tools-process-enveloped-components/src/jobsManagement/envelope/components/JobsRescheduleModal/JobsRescheduleModal.tsx
index bc0ff243b80..93160842e1f 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/jobsManagement/envelope/components/JobsRescheduleModal/JobsRescheduleModal.tsx
+++ 
b/packages/runtime-tools-process-enveloped-components/src/jobsManagement/envelope/components/JobsRescheduleModal/JobsRescheduleModal.tsx
@@ -38,7 +38,12 @@ interface IOwnProps {
   job: Job;
   rescheduleError: string;
   setRescheduleError: (rescheduleError: string) => void;
-  handleJobReschedule: any;
+  handleJobReschedule: (
+    job: Job,
+    repeatInterval: string | number,
+    repeatLimit: string | number,
+    scheduleDate: Date
+  ) => void;
 }
 
 export const JobsRescheduleModal: React.FC<IOwnProps & OUIAProps> = ({
@@ -74,8 +79,8 @@ export const JobsRescheduleModal: React.FC<IOwnProps & 
OUIAProps> = ({
     setScheduleDate(new Date());
   };
 
-  const onApplyReschedule = async (): Promise<void> => {
-    await handleJobReschedule(job, repeatInterval, repeatLimit, scheduleDate);
+  const onApplyReschedule = (): void => {
+    handleJobReschedule(job, repeatInterval, repeatLimit, scheduleDate);
   };
 
   const applyAction: JSX.Element[] = [
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/api/ProcessDetailsChannelApi.ts
 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/api/ProcessDetailsChannelApi.ts
index bb4609468e0..7e53f4b111b 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/api/ProcessDetailsChannelApi.ts
+++ 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/api/ProcessDetailsChannelApi.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { Job, JobCancel, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
+import { Job, JobOperationResult, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
 import {
   NodeInstance,
   SvgErrorResponse,
@@ -28,7 +28,7 @@ import {
 export interface ProcessDetailsChannelApi {
   processDetails__getProcessDiagram(data: ProcessInstance): 
Promise<SvgSuccessResponse | SvgErrorResponse>;
   processDetails__handleProcessAbort(processInstance: ProcessInstance): 
Promise<void>;
-  processDetails__cancelJob(job: Pick<Job, "id" | "endpoint">): 
Promise<JobCancel>;
+  processDetails__cancelJob(job: Pick<Job, "id" | "endpoint">): 
Promise<JobOperationResult>;
   processDetails__rescheduleJob(
     job,
     repeatInterval: number | string,
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/api/ProcessDetailsDriver.ts
 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/api/ProcessDetailsDriver.ts
index 458b2370010..9aea9e61868 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/api/ProcessDetailsDriver.ts
+++ 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/api/ProcessDetailsDriver.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { Job, JobCancel, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
+import { Job, JobOperationResult, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
 import {
   NodeInstance,
   SvgErrorResponse,
@@ -28,7 +28,7 @@ import {
 export interface ProcessDetailsDriver {
   getProcessDiagram(data: ProcessInstance): Promise<SvgSuccessResponse | 
SvgErrorResponse>;
   handleProcessAbort(processInstance: ProcessInstance): Promise<void>;
-  cancelJob(job: Pick<Job, "id" | "endpoint">): Promise<JobCancel>;
+  cancelJob(job: Pick<Job, "id" | "endpoint">): Promise<JobOperationResult>;
   rescheduleJob(
     job,
     repeatInterval: number | string,
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/embedded/ProcessDetailsChannelApiImpl.ts
 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/embedded/ProcessDetailsChannelApiImpl.ts
index b522adb641c..d5eba2f90d3 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/embedded/ProcessDetailsChannelApiImpl.ts
+++ 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/embedded/ProcessDetailsChannelApiImpl.ts
@@ -23,7 +23,7 @@ import {
   TriggerableNode,
 } from "@kie-tools/runtime-tools-shared-gateway-api/dist/types";
 import { ProcessDetailsChannelApi, ProcessDetailsDriver } from "../api";
-import { Job, JobCancel, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
+import { Job, JobOperationResult, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
 
 export class ProcessDetailsChannelApiImpl implements ProcessDetailsChannelApi {
   constructor(private readonly driver: ProcessDetailsDriver) {}
@@ -36,7 +36,7 @@ export class ProcessDetailsChannelApiImpl implements 
ProcessDetailsChannelApi {
     return this.driver.handleProcessAbort(processInstance);
   }
 
-  processDetails__cancelJob(job: Pick<Job, "id" | "endpoint">): 
Promise<JobCancel> {
+  processDetails__cancelJob(job: Pick<Job, "id" | "endpoint">): 
Promise<JobOperationResult> {
     return this.driver.cancelJob(job);
   }
 
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/ProcessDetailsEnvelopeViewDriver.ts
 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/ProcessDetailsEnvelopeViewDriver.ts
index c45f9f40128..5c088844388 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/ProcessDetailsEnvelopeViewDriver.ts
+++ 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/ProcessDetailsEnvelopeViewDriver.ts
@@ -24,7 +24,7 @@ import {
   SvgSuccessResponse,
   TriggerableNode,
 } from "@kie-tools/runtime-tools-shared-gateway-api/dist/types";
-import { Job, JobCancel, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
+import { Job, JobOperationResult, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
 
 export default class ProcessDetailsEnvelopeViewDriver implements 
ProcessDetailsDriver {
   constructor(private readonly channelApi: 
MessageBusClientApi<ProcessDetailsChannelApi>) {}
@@ -37,7 +37,7 @@ export default class ProcessDetailsEnvelopeViewDriver 
implements ProcessDetailsD
     return 
this.channelApi.requests.processDetails__handleProcessAbort(processInstance);
   }
 
-  cancelJob(job: Pick<Job, "id" | "endpoint">): Promise<JobCancel> {
+  cancelJob(job: Pick<Job, "id" | "endpoint">): Promise<JobOperationResult> {
     return this.channelApi.requests.processDetails__cancelJob(job);
   }
 
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/JobActionsKebab/JobActionsKebab.tsx
 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/JobActionsKebab/JobActionsKebab.tsx
index 5aab47f0bf2..421896f690b 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/JobActionsKebab/JobActionsKebab.tsx
+++ 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/JobActionsKebab/JobActionsKebab.tsx
@@ -67,7 +67,12 @@ const JobActionsKebab: React.FC<IOwnProps & OUIAProps> = ({ 
job, driver, ouiaId,
     setIsRescheduleModalOpen(!isRescheduleModalOpen);
   };
 
-  const handleJobReschedule = async (repeatInterval, repeatLimit, 
scheduleDate): Promise<void> => {
+  const handleJobReschedule = async (
+    _job: Job,
+    repeatInterval: string | number,
+    repeatLimit: string | number,
+    scheduleDate: Date
+  ): Promise<void> => {
     await handleJobRescheduleUtil(
       repeatInterval,
       repeatLimit,
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/JobsPanel/JobsPanel.tsx
 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/JobsPanel/JobsPanel.tsx
index 9d07c3ef9ca..cb09adad0e4 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/JobsPanel/JobsPanel.tsx
+++ 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/JobsPanel/JobsPanel.tsx
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import React, { useState, useEffect } from "react";
+import React, { useMemo } from "react";
 import { Card, CardHeader, CardBody } from 
"@patternfly/react-core/dist/js/components/Card";
 import { Tooltip } from "@patternfly/react-core/dist/js/components/Tooltip";
 import { Title } from "@patternfly/react-core/dist/js/components/Title";
@@ -41,27 +41,30 @@ interface JobsPanelProps {
 }
 
 const JobsPanel: React.FC<JobsPanelProps & OUIAProps> = ({ jobs, driver, 
ouiaId, ouiaSafe }) => {
-  const [rows, setRows] = useState<IRow[]>([]);
+  const columns: ICell[] = useMemo(() => {
+    return [
+      {
+        title: "Job id",
+      },
+      {
+        title: "Status",
+      },
+      {
+        title: "Expiration time",
+      },
+      {
+        title: "Actions",
+      },
+    ];
+  }, []);
 
-  const columns: ICell[] = [
-    {
-      title: "Job id",
-    },
-    {
-      title: "Status",
-    },
-    {
-      title: "Expiration time",
-    },
-    {
-      title: "Actions",
-    },
-  ];
+  const rows: IRow[] = useMemo(() => {
+    if (!jobs) {
+      return [];
+    }
 
-  const createRows = (jobsArray: Job[]): IRow[] => {
-    const jobRows: IRow[] = [];
-    jobsArray.forEach((job) => {
-      jobRows.push({
+    return jobs.map((job) => {
+      return {
         cells: [
           {
             title: (
@@ -94,16 +97,9 @@ const JobsPanel: React.FC<JobsPanelProps & OUIAProps> = ({ 
jobs, driver, ouiaId,
             title: <JobActionsKebab job={job} driver={driver} />,
           },
         ],
-      });
+      };
     });
-    return jobRows;
-  };
-
-  useEffect(() => {
-    if (jobs.length > 0) {
-      setRows(createRows(jobs));
-    }
-  }, [jobs]);
+  }, [driver, jobs]);
 
   if (jobs.length > 0) {
     return (
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/ProcessDetails/ProcessDetails.tsx
 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/ProcessDetails/ProcessDetails.tsx
index 1a468d822c6..df83fd3b576 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/ProcessDetails/ProcessDetails.tsx
+++ 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/ProcessDetails/ProcessDetails.tsx
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import React, { ReactElement, useEffect, useState } from "react";
+import React, { ReactElement, useCallback, useEffect, useState } from "react";
 import { Flex, FlexItem } from "@patternfly/react-core/dist/js/layouts/Flex";
 import { Grid, GridItem } from "@patternfly/react-core/dist/js/layouts/Grid";
 import { Split, SplitItem } from 
"@patternfly/react-core/dist/js/layouts/Split";
@@ -100,7 +100,7 @@ const ProcessDetails: React.FC<ProcessDetailsProps> = ({
     try {
       const processResponse: ProcessInstance = await 
driver.processDetailsQuery(processDetails.id);
       processResponse && setData(processResponse);
-      getAllJobs();
+      loadJobs();
       setIsLoading(false);
     } catch (errorString) {
       setError(errorString);
@@ -108,10 +108,10 @@ const ProcessDetails: React.FC<ProcessDetailsProps> = ({
     }
   };
 
-  const getAllJobs = async (): Promise<void> => {
+  const loadJobs = useCallback(async () => {
     const jobsResponse: Job[] = await driver.jobsQuery(processDetails.id);
     jobsResponse && setJobs(jobsResponse);
-  };
+  }, [processDetails.id, driver]);
 
   const handleSvgErrorModal = (): void => {
     setSvgErrorModalOpen(!svgErrorModalOpen);
@@ -145,13 +145,13 @@ const ProcessDetails: React.FC<ProcessDetailsProps> = ({
       handleSvgApi();
       getVariableJSON();
     }
-  }, [data]);
+  }, [driver, data, isEnvelopeConnectedToChannel, processDetails.id]);
 
   useEffect(() => {
     if (svgError && svgError.length > 0 && !showSwfDiagram) {
       setSvgErrorModalOpen(true);
     }
-  }, [svgError]);
+  }, [svgError, showSwfDiagram]);
 
   useEffect(() => {
     if (variableError && variableError.length > 0) {
@@ -163,9 +163,9 @@ const ProcessDetails: React.FC<ProcessDetailsProps> = ({
     /* istanbul ignore else*/
     if (isEnvelopeConnectedToChannel) {
       setData(processDetails);
-      getAllJobs();
+      loadJobs();
     }
-  }, [isEnvelopeConnectedToChannel]);
+  }, [isEnvelopeConnectedToChannel, loadJobs, processDetails]);
 
   /* istanbul ignore next */
   const handleSave = (): void => {
@@ -204,7 +204,7 @@ const ProcessDetails: React.FC<ProcessDetailsProps> = ({
   };
 
   const handleRefresh = (): void => {
-    if (displayLabel === true) {
+    if (displayLabel) {
       setConfirmationModal(true);
     } else {
       handleReload();
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/ProcessDetailsTimelinePanel/ProcessDetailsTimelinePanel.tsx
 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/ProcessDetailsTimelinePanel/ProcessDetailsTimelinePanel.tsx
index dd3f11b6ba3..e733ff3364e 100755
--- 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/ProcessDetailsTimelinePanel/ProcessDetailsTimelinePanel.tsx
+++ 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/envelope/components/ProcessDetailsTimelinePanel/ProcessDetailsTimelinePanel.tsx
@@ -124,7 +124,12 @@ const ProcessDetailsTimelinePanel: React.FC<IOwnProps & 
OUIAProps> = ({
     setSelectedJob(job);
   };
 
-  const handleJobReschedule = async (repeatInterval, repeatLimit, 
scheduleDate): Promise<void> => {
+  const handleJobReschedule = async (
+    _job: Job,
+    repeatInterval: string | number,
+    repeatLimit: string | number,
+    scheduleDate: Date
+  ): Promise<void> => {
     await handleJobRescheduleUtil(
       repeatInterval,
       repeatLimit,
diff --git 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/utils/Utils.tsx
 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/utils/Utils.tsx
index 582867afd95..39260ab6250 100644
--- 
a/packages/runtime-tools-process-enveloped-components/src/processDetails/utils/Utils.tsx
+++ 
b/packages/runtime-tools-process-enveloped-components/src/processDetails/utils/Utils.tsx
@@ -132,7 +132,7 @@ export const handleNodeInstanceCancel = (
 
 export const jobCancel = async (
   drive: ProcessDetailsDriver,
-  job: Pick<Job, "id" | "endpoint">,
+  job: Job,
   setModalTitle: (title: JSX.Element) => void,
   setModalContent: (content: string) => void
 ) => {
@@ -142,9 +142,9 @@ export const jobCancel = async (
 };
 
 export const handleJobRescheduleUtil = async (
-  repeatInterval,
-  repeatLimit,
-  scheduleDate,
+  repeatInterval: string | number,
+  repeatLimit: string | number,
+  scheduleDate: Date,
   selectedJob: Job,
   handleRescheduleAction: () => void,
   driver: ProcessDetailsDriver,
@@ -154,7 +154,6 @@ export const handleJobRescheduleUtil = async (
   if (response && response.modalTitle === "success") {
     handleRescheduleAction();
   } else if (response && response.modalTitle === "failure") {
-    handleRescheduleAction();
     setRescheduleError(response.modalContent);
   }
 };
diff --git a/packages/runtime-tools-process-gateway-api/src/gatewayApi/apis.tsx 
b/packages/runtime-tools-process-gateway-api/src/gatewayApi/apis.tsx
index c0a5129f488..002e605d9b3 100644
--- a/packages/runtime-tools-process-gateway-api/src/gatewayApi/apis.tsx
+++ b/packages/runtime-tools-process-gateway-api/src/gatewayApi/apis.tsx
@@ -19,7 +19,7 @@
 
 import { GraphQL } from "../graphql";
 import {
-  JobCancel,
+  JobOperationResult,
   JobStatus,
   Job,
   JobsSortBy,
@@ -92,44 +92,38 @@ export const getChildProcessInstances = async (
 
 //Rest Api to Cancel multiple Jobs
 export const performMultipleCancel = async (
-  jobsToBeActioned: (GraphQL.Job & { errorMessage?: string })[],
+  jobsToBeActioned: (Job & { errorMessage?: string })[],
   client: ApolloClient<any>
 ): Promise<any> => {
-  const multipleCancel: Promise<any>[] = [];
-  for (const job of jobsToBeActioned) {
-    multipleCancel.push(
-      new Promise((resolve, reject) => {
-        client
-          .mutate({
-            mutation: GraphQL.JobCancelDocument,
-            variables: {
-              jobId: job.id,
-            },
-            fetchPolicy: "no-cache",
-          })
-          .then((value) => {
-            resolve({ successJob: job });
-          })
-          .catch((reason) => {
-            job.errorMessage = JSON.stringify(reason.message);
-            reject({ failedJob: job });
-          });
-      })
-    );
-  }
+  const multipleCancel: Promise<any>[] = jobsToBeActioned.map((job) => {
+    return new Promise((resolve, reject) => {
+      client
+        .mutate({
+          mutation: GraphQL.JobCancelDocument,
+          variables: {
+            jobId: job.id,
+          },
+          fetchPolicy: "no-cache",
+        })
+        .then((value) => {
+          resolve({ successJob: job });
+        })
+        .catch((reason) => {
+          job.errorMessage = JSON.stringify(reason.message);
+          reject({ failedJob: job });
+        });
+    });
+  });
   return Promise.all(multipleCancel.map((mc) => mc.catch((error) => 
error))).then((result) => {
     return Promise.resolve(result);
   });
 };
 
 //Rest Api to Cancel a Job
-export const jobCancel = async (
-  job: Pick<GraphQL.Job, "id" | "endpoint">,
-  client: ApolloClient<any>
-): Promise<JobCancel> => {
+export const jobCancel = async (job: Job, client: ApolloClient<any>): 
Promise<JobOperationResult> => {
   let modalTitle: string;
   let modalContent: string;
-  return new Promise<JobCancel>((resolve, reject) => {
+  return new Promise<JobOperationResult>((resolve, reject) => {
     client
       .mutate({
         mutation: GraphQL.JobCancelDocument,
@@ -174,7 +168,7 @@ export const handleJobReschedule = async (
     };
   }
 
-  return new Promise<JobCancel>((resolve, reject) => {
+  return new Promise<JobOperationResult>((resolve, reject) => {
     client
       .mutate({
         mutation: GraphQL.HandleJobRescheduleDocument,
diff --git a/packages/runtime-tools-process-gateway-api/src/types.ts 
b/packages/runtime-tools-process-gateway-api/src/types.ts
index d88a47f6031..ec6c175bc55 100644
--- a/packages/runtime-tools-process-gateway-api/src/types.ts
+++ b/packages/runtime-tools-process-gateway-api/src/types.ts
@@ -58,7 +58,7 @@ export interface BulkCancel {
   failedJobs: Job[];
 }
 
-export interface JobCancel {
+export interface JobOperationResult {
   modalTitle: string;
   modalContent: string;
 }
diff --git 
a/packages/runtime-tools-process-webapp-components/src/JobsManagement/JobsManagementGatewayApi.ts
 
b/packages/runtime-tools-process-webapp-components/src/JobsManagement/JobsManagementGatewayApi.ts
index 98092589f75..f51b54c1b51 100644
--- 
a/packages/runtime-tools-process-webapp-components/src/JobsManagement/JobsManagementGatewayApi.ts
+++ 
b/packages/runtime-tools-process-webapp-components/src/JobsManagement/JobsManagementGatewayApi.ts
@@ -21,7 +21,7 @@ import {
   Job,
   JobStatus,
   BulkCancel,
-  JobCancel,
+  JobOperationResult,
   JobsSortBy,
 } from "@kie-tools/runtime-tools-process-gateway-api/dist/types";
 import { JobsManagementQueries } from "./JobsManagementQueries";
@@ -31,7 +31,7 @@ export interface JobsManagementGatewayApi {
   initialLoad: (filter: JobStatus[], orderBy: JobsSortBy) => Promise<void>;
   applyFilter: (filter: JobStatus[]) => Promise<void>;
   bulkCancel: (jobsToBeActioned: Job[]) => Promise<BulkCancel>;
-  cancelJob: (job: Pick<Job, "id" | "endpoint">) => Promise<JobCancel>;
+  cancelJob: (job: Pick<Job, "id" | "endpoint">) => 
Promise<JobOperationResult>;
   rescheduleJob: (
     job: Job,
     repeatInterval: number | string,
@@ -71,8 +71,8 @@ export class JobsManagementGatewayApiImpl implements 
JobsManagementGatewayApi {
     return Promise.resolve();
   };
 
-  cancelJob = async (job: Pick<Job, "id" | "endpoint">): Promise<JobCancel> => 
{
-    const cancelResult: JobCancel = await this.queries.cancelJob(job);
+  cancelJob = async (job: Pick<Job, "id" | "endpoint">): 
Promise<JobOperationResult> => {
+    const cancelResult: JobOperationResult = await this.queries.cancelJob(job);
     return cancelResult;
   };
 
diff --git 
a/packages/runtime-tools-process-webapp-components/src/JobsManagement/JobsManagementQueries.ts
 
b/packages/runtime-tools-process-webapp-components/src/JobsManagement/JobsManagementQueries.ts
index a25a5e350d2..df7df42dad1 100644
--- 
a/packages/runtime-tools-process-webapp-components/src/JobsManagement/JobsManagementQueries.ts
+++ 
b/packages/runtime-tools-process-webapp-components/src/JobsManagement/JobsManagementQueries.ts
@@ -21,7 +21,7 @@ import { ApolloClient } from "apollo-client";
 import {
   BulkCancel,
   Job,
-  JobCancel,
+  JobOperationResult,
   JobStatus,
   JobsSortBy,
 } from "@kie-tools/runtime-tools-process-gateway-api/dist/types";
@@ -34,7 +34,7 @@ import {
 
 export interface JobsManagementQueries {
   getJobs(start: number, end: number, filters: JobStatus[], sortBy: JobsSortBy 
| any): Promise<Job[]>;
-  cancelJob: (job: Pick<Job, "id" | "endpoint">) => Promise<JobCancel>;
+  cancelJob: (job: Pick<Job, "id" | "endpoint">) => 
Promise<JobOperationResult>;
   bulkCancel: (jobsToBeActioned: (Job & { errorMessage?: string })[]) => 
Promise<BulkCancel>;
   rescheduleJob: (
     job: Job,
@@ -55,7 +55,7 @@ export class GraphQLJobsManagementQueries implements 
JobsManagementQueries {
     return getJobsWithFilters(offset, limit, filters, orderBy, this.client);
   }
 
-  async cancelJob(job: Pick<Job, "id" | "endpoint">): Promise<JobCancel> {
+  async cancelJob(job: Job): Promise<JobOperationResult> {
     return jobCancel(job, this.client);
   }
 
diff --git 
a/packages/runtime-tools-process-webapp-components/src/ProcessDetails/ProcessDetailsGatewayApi.ts
 
b/packages/runtime-tools-process-webapp-components/src/ProcessDetails/ProcessDetailsGatewayApi.ts
index da67f1e4cc7..e106d6bc9ef 100644
--- 
a/packages/runtime-tools-process-webapp-components/src/ProcessDetails/ProcessDetailsGatewayApi.ts
+++ 
b/packages/runtime-tools-process-webapp-components/src/ProcessDetails/ProcessDetailsGatewayApi.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { Job, JobCancel, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
+import { Job, JobOperationResult, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
 import { ProcessDetailsQueries } from "./ProcessDetailsQueries";
 import {
   SvgSuccessResponse,
@@ -41,7 +41,7 @@ export interface ProcessDetailsGatewayApi {
   processDetailsState: any;
   getProcessDiagram: (data: ProcessInstance) => Promise<SvgSuccessResponse | 
SvgErrorResponse>;
   handleProcessAbort: (processInstance: ProcessInstance) => Promise<void>;
-  cancelJob: (job: Pick<Job, "id" | "endpoint">) => Promise<JobCancel>;
+  cancelJob: (job: Pick<Job, "id" | "endpoint">) => 
Promise<JobOperationResult>;
   rescheduleJob: (
     job: Job,
     repeatInterval: number | string,
@@ -89,7 +89,7 @@ export class ProcessDetailsGatewayApiImpl implements 
ProcessDetailsGatewayApi {
     return this.queries.handleProcessAbort(processInstance);
   };
 
-  cancelJob = (job: Job): Promise<JobCancel> => {
+  cancelJob = (job: Job): Promise<JobOperationResult> => {
     return this.queries.jobCancel(job);
   };
 
diff --git 
a/packages/runtime-tools-process-webapp-components/src/ProcessDetails/ProcessDetailsQueries.ts
 
b/packages/runtime-tools-process-webapp-components/src/ProcessDetails/ProcessDetailsQueries.ts
index 602435ad006..9571119a2f7 100755
--- 
a/packages/runtime-tools-process-webapp-components/src/ProcessDetails/ProcessDetailsQueries.ts
+++ 
b/packages/runtime-tools-process-webapp-components/src/ProcessDetails/ProcessDetailsQueries.ts
@@ -38,7 +38,7 @@ import {
   getSVG,
   getTriggerableNodes,
 } from "@kie-tools/runtime-tools-process-gateway-api/dist/gatewayApi";
-import { Job, JobCancel, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
+import { Job, JobOperationResult, ProcessInstance } from 
"@kie-tools/runtime-tools-process-gateway-api/dist/types";
 
 export interface ProcessDetailsQueries {
   getProcessDetails(id: string): Promise<ProcessInstance>;
@@ -47,7 +47,7 @@ export interface ProcessDetailsQueries {
   handleProcessAbort(processInstance: ProcessInstance): Promise<void>;
   handleProcessRetry(processInstance: ProcessInstance): Promise<void>;
   getSVG(processInstance: ProcessInstance): Promise<any>;
-  jobCancel(job: Job): Promise<JobCancel>;
+  jobCancel(job: Job): Promise<JobOperationResult>;
   rescheduleJob: (
     job: Job,
     repeatInterval: number | string,
@@ -95,7 +95,7 @@ export class GraphQLProcessDetailsQueries implements 
ProcessDetailsQueries {
     return Promise.resolve(getSVG(processInstance, this.client));
   }
 
-  async jobCancel(job: Job): Promise<JobCancel> {
+  async jobCancel(job: Job): Promise<JobOperationResult> {
     return jobCancel(job, this.client);
   }
 
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/jobsManagement/envelope/components/JobsRescheduleModal/JobsRescheduleModal.tsx
 
b/packages/runtime-tools-swf-enveloped-components/src/jobsManagement/envelope/components/JobsRescheduleModal/JobsRescheduleModal.tsx
index 7e7bf4b69c1..23e376f6fb8 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/jobsManagement/envelope/components/JobsRescheduleModal/JobsRescheduleModal.tsx
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/jobsManagement/envelope/components/JobsRescheduleModal/JobsRescheduleModal.tsx
@@ -38,7 +38,12 @@ interface IOwnProps {
   job: Job;
   rescheduleError: string;
   setRescheduleError: (rescheduleError: string) => void;
-  handleJobReschedule: any;
+  handleJobReschedule: (
+    job: Job,
+    repeatInterval: string | number,
+    repeatLimit: string | number,
+    scheduleDate: Date
+  ) => void;
 }
 
 export const JobsRescheduleModal: React.FC<IOwnProps & OUIAProps> = ({
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDetails/envelope/components/JobActionsKebab/JobActionsKebab.tsx
 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDetails/envelope/components/JobActionsKebab/JobActionsKebab.tsx
index 86da9206bdd..525c0fb3247 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDetails/envelope/components/JobActionsKebab/JobActionsKebab.tsx
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDetails/envelope/components/JobActionsKebab/JobActionsKebab.tsx
@@ -69,8 +69,9 @@ const JobActionsKebab: React.FC<IOwnProps & OUIAProps> = ({ 
job, driver, ouiaId,
   };
 
   const handleJobReschedule = async (
-    repeatInterval: number | string,
-    repeatLimit: number | string,
+    _job: Job,
+    repeatInterval: string | number,
+    repeatLimit: string | number,
     scheduleDate: Date
   ): Promise<void> => {
     await handleJobRescheduleUtil(
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDetails/envelope/components/WorkflowDetailsTimelinePanel/WorkflowDetailsTimelinePanel.tsx
 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDetails/envelope/components/WorkflowDetailsTimelinePanel/WorkflowDetailsTimelinePanel.tsx
index b09c0c822f8..405f3517761 100755
--- 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDetails/envelope/components/WorkflowDetailsTimelinePanel/WorkflowDetailsTimelinePanel.tsx
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDetails/envelope/components/WorkflowDetailsTimelinePanel/WorkflowDetailsTimelinePanel.tsx
@@ -118,8 +118,9 @@ const WorkflowDetailsTimelinePanel: React.FC<IOwnProps & 
OUIAProps> = ({ data, j
   };
 
   const handleJobReschedule = async (
-    repeatInterval: number | string,
-    repeatLimit: number | string,
+    _job: Job,
+    repeatInterval: string | number,
+    repeatLimit: string | number,
     scheduleDate: Date
   ): Promise<void> => {
     await handleJobRescheduleUtil(


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to