From 3d7407983cae907bafb595fe4fc504f82e1b7b9c Mon Sep 17 00:00:00 2001
From: Zoltan Runyo <zoltan.runyo@ess.eu>
Date: Mon, 13 Jun 2022 16:36:29 +0200
Subject: [PATCH] ICSHWI-9610: IOC details deployment history, fix job table
 sort by time

---
 src/api/SwaggerApi.js                    | 8 ++++----
 src/components/IOC/IOCManage.js          | 8 ++++----
 src/views/deployments/DeploymentsView.js | 2 +-
 src/views/jobs/JobListView.js            | 7 ++++---
 4 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/src/api/SwaggerApi.js b/src/api/SwaggerApi.js
index 478bd687..d38ae5d1 100644
--- a/src/api/SwaggerApi.js
+++ b/src/api/SwaggerApi.js
@@ -288,13 +288,13 @@ export function unpackDeployment(deployment) {
 
 export function unpackDeploymentList(deployments) {
 
-  let deploymentArr = deployments.deployments.map(d => unpackDeployment(d));
+  let deploymentArr = deployments.operations.map(d => unpackDeployment(d));
 
   let unpackedDeploymentList = {
     totalCount: deployments.totalCount,
     pageNumber: deployments.pageNumber,
     limit: deployments.limit,
-    deploymentList: deploymentArr
+    operationsList: deploymentArr
   };
 
   return unpackedDeploymentList;
@@ -311,9 +311,9 @@ export function useDeploymentListForIOC() {
   const api = useContext(apiContext);
   const method = useCallAndUnpack(
     (iocId, page, limit) => api.apis.Deployments.listDeployments({ ioc_id: iocId, page: page, limit: limit }),
-    unpackDeploymentList
+    unpackOperationsList
   );
-  return useAsync({ fcn: method, call: false, init: emptyDeploymentListResponse });
+  return useAsync({ fcn: method, call: false, init: emptyOperationsListResponse });
 }
 
 export function unpackCommand(command) {
diff --git a/src/components/IOC/IOCManage.js b/src/components/IOC/IOCManage.js
index a127496d..fb0dea8d 100644
--- a/src/components/IOC/IOCManage.js
+++ b/src/components/IOC/IOCManage.js
@@ -6,10 +6,10 @@ import { UndeployIOC } from "../../components/IOC/UndeployIOC";
 import { SimpleModal } from "../../components/common/SimpleModal/SimpleModal";
 import { useUpdateAndDeployIoc, useCreateUndeployment, useDeploymentListForIOC } from "../../api/SwaggerApi";
 import AlertMessages from "./AlertMessages";
-import { DeploymentAsyncList } from "../../components/deployments/DeploymentAsyncList";
 import { SimpleAccordion } from "../common/Accordion/SimpleAccordion";
 import { initRequestParams } from "../common/Helper";
 import AccessControl from "../auth/AccessControl";
+import { JobAsyncList } from "../Job/JobAsyncList";
 
 export function IOCManage({ ioc, getIOC, buttonDisabled }) {
   const [deployDialogOpen, setDeployDialogOpen] = useState(false);
@@ -31,7 +31,7 @@ export function IOCManage({ ioc, getIOC, buttonDisabled }) {
   const rowsPerPage = [5, 20];
 
   useEffect(() => {
-    setDeploymentList(deployments.deploymentList);
+    setDeploymentList(deployments.operationsList);
   }, [deployments, setDeploymentList])
 
   useEffect(() => 
@@ -42,7 +42,7 @@ export function IOCManage({ ioc, getIOC, buttonDisabled }) {
         requestParams.ioc_id = ioc.id;
         
         if(columnSort.sortField === "start") {
-          requestParams.order_by = "START_TIME";
+          requestParams.order_by = "TIME";
         }
       
         if(columnSort.sortField === "user") {
@@ -139,7 +139,7 @@ export function IOCManage({ ioc, getIOC, buttonDisabled }) {
         <AccessControl allowedRoles={["DeploymentToolAdmin", "DeploymentToolIntegrator"]}
           renderNoAccess={() => <></>}>
           <SimpleAccordion summary="Deployment log">
-            <DeploymentAsyncList deployments={deploymentList} setDeployments={setDeploymentList} totalCount={deployments.totalCount}
+            <JobAsyncList jobs={deploymentList} setJobs={setDeploymentList} totalCount={deployments.totalCount}
               lazyParams={lazyParams} setLazyParams={setLazyParams} columnSort={columnSort} setColumnSort={setColumnSort}
               rowsPerPage={rowsPerPage} />
           </SimpleAccordion>
diff --git a/src/views/deployments/DeploymentsView.js b/src/views/deployments/DeploymentsView.js
index 1189fc6a..6b80dcc0 100644
--- a/src/views/deployments/DeploymentsView.js
+++ b/src/views/deployments/DeploymentsView.js
@@ -77,7 +77,7 @@ export function DeploymentsView() {
     }
 
     if (columnSort.sortField === "start") {
-      requestParams.order_by = "START_TIME";
+      requestParams.order_by = "TIME";
     }
 
     if (columnSort.sortField === "user") {
diff --git a/src/views/jobs/JobListView.js b/src/views/jobs/JobListView.js
index 66001501..73375e3e 100644
--- a/src/views/jobs/JobListView.js
+++ b/src/views/jobs/JobListView.js
@@ -81,7 +81,7 @@ export function JobListView() {
     }
 
     if (columnSort.sortField === "start") {
-      requestParams.order_by = "START_TIME";
+      requestParams.order_by = "TIME";
     }
 
     if (columnSort.sortField === "user") {
@@ -141,12 +141,13 @@ export function JobListView() {
             <Grid item xs={3}>
               <Autocomplete
                 id="combo-box-demo"
-                options={[{label: "Show all", filter: null}, {label: "Only deployments", filter: "DEPLOYMENT"}, {label: "Only commands", filter: "COMMAND"}]}
+                options={[{label: "Show all"}, {label: "Only deployments", filter: "DEPLOYMENT"}, {label: "Only commands", filter: "COMMAND"}]}
+                defaultValue = { {label: "Show all"} }
                 getOptionLabel={(option) => option.label}
                 getOptionSelected={(option, value) => option.label === value.label}
                 style={{ width: "100%" }}
                 renderInput={(params) => <TextField {...params} label="Job type" variant="outlined" />}
-                onChange={(event, value, reason) =>  setJobType(value.filter)} 
+                onChange={(event, value, reason) =>  setJobType(value?.filter)} 
                 autoSelect
               />
             </Grid>
-- 
GitLab