From cde14061068d008f289cb69a65e1afa7d61d1007 Mon Sep 17 00:00:00 2001 From: Tim Parsons Date: Tue, 19 Apr 2022 09:41:48 -0400 Subject: [PATCH 1/4] [BI-1459] - Create page to view jobs in a program --- src/breeding-insight/dao/ImportDAO.ts | 9 + .../model/import/ImportResponse.ts | 17 +- src/breeding-insight/service/ImportService.ts | 25 +++ src/components/layouts/UserSideBarLayout.vue | 11 +- .../expandableTable/ExpandableTable.vue | 29 +++- src/router/index.ts | 11 ++ src/views/Home.vue | 37 +---- src/views/import/ImportTemplate.vue | 2 +- src/views/program/JobManagement.vue | 154 ++++++++++++++++++ 9 files changed, 249 insertions(+), 46 deletions(-) create mode 100644 src/views/program/JobManagement.vue diff --git a/src/breeding-insight/dao/ImportDAO.ts b/src/breeding-insight/dao/ImportDAO.ts index fd5ebf8ba..37573002a 100644 --- a/src/breeding-insight/dao/ImportDAO.ts +++ b/src/breeding-insight/dao/ImportDAO.ts @@ -99,6 +99,15 @@ export class ImportDAO { return new BiResponse(data); } + static async getProgramUploads(programId: string, includeMapping: boolean) { + const {data} = await api.call({ + url: `${process.env.VUE_APP_BI_API_V1_PATH}/programs/${programId}/import/data?mapping=${includeMapping}`, + method: 'get' + }) as Response; + + return new BiResponse(data); + } + static async updateUploadData(programId: string, mappingId: string, uploadId: string, userInput: any, commit: boolean) { let url = `${process.env.VUE_APP_BI_API_V1_PATH}/programs/${programId}/import/mappings/${mappingId}/data/${uploadId}`; url += commit ? '/commit' : '/preview'; diff --git a/src/breeding-insight/model/import/ImportResponse.ts b/src/breeding-insight/model/import/ImportResponse.ts index b766033be..99b41aabc 100644 --- a/src/breeding-insight/model/import/ImportResponse.ts +++ b/src/breeding-insight/model/import/ImportResponse.ts @@ -17,15 +17,30 @@ import {ImportProgress} from "@/breeding-insight/model/import/ImportProgress"; import {ImportPreview} from "@/breeding-insight/model/import/ImportPreview"; +import { User } from '@/breeding-insight/model/User'; export class ImportResponse { importId?: string; progress?: ImportProgress; preview?: ImportPreview; + uploadFileName?: string; + importMappingName?:string; + importType?:string; + createdByUser?: User; + updatedByUser?: User; + createdAt?: Date; + updatedAt?: Date; - constructor({importId, progress, preview}: ImportResponse) { + constructor({importId, progress, preview, uploadFileName, importMappingName, importType, createdByUser, updatedByUser, createdAt, updatedAt}: ImportResponse) { this.importId = importId; this.progress = progress; this.preview = preview; + this.uploadFileName = uploadFileName; + this.importMappingName = importMappingName; + this.importType = importType; + this.createdByUser = createdByUser; + this.updatedByUser = updatedByUser; + this.createdAt = createdAt; + this.updatedAt = updatedAt; } } \ No newline at end of file diff --git a/src/breeding-insight/service/ImportService.ts b/src/breeding-insight/service/ImportService.ts index 2f49e7112..40bb02bae 100644 --- a/src/breeding-insight/service/ImportService.ts +++ b/src/breeding-insight/service/ImportService.ts @@ -109,6 +109,31 @@ export class ImportService { } + static async getProgramUploads(programId: string, includeMapping: boolean): Promise { + if (!programId || programId === null) { + throw 'Program ID not provided'; + } + + try { + const response: BiResponse = await ImportDAO.getProgramUploads(programId, includeMapping); + const data: any = response.result; + if(data) { + const importResponse = data.map((response: ImportResponse) => new ImportResponse(response)); + return importResponse; + } else { + return []; + } + } catch (e) { + if (e.response && e.response.statusText) { + e.errorMessage = e.response.statusText; + } else { + e.errorMessage = this.getUploadUnknown; + } + throw e; + } + + } + static async updateDataUpload(programId: string, mappingId: string, uploadId: string, userInput: any, commit: boolean) { if (!programId || programId === null) { throw 'Program ID not provided'; diff --git a/src/components/layouts/UserSideBarLayout.vue b/src/components/layouts/UserSideBarLayout.vue index 7467bb633..43e1339ae 100644 --- a/src/components/layouts/UserSideBarLayout.vue +++ b/src/components/layouts/UserSideBarLayout.vue @@ -128,11 +128,19 @@ BrAPI +
  • + + Job Management + +
  • - Trials and Studies - Beta + Trials and Studies Beta
  • @@ -202,6 +210,7 @@ private importFileMenuId: string = "usersidebarlayout-import-file-menu"; private ontologyMenuId: string = "usersidebarlayout-ontology-menu"; private programManagementMenuId: string = "usersidebarlayout-program-management-menu"; + private jobManagementMenuId: string = "usersidebarlayout-job-management-menu"; private brAPIMenuId: string = "usersidebarlayout-brapi-menu"; private germplasmMenuId: string = "usersidebarlayout-germplasm-menu"; diff --git a/src/components/tables/expandableTable/ExpandableTable.vue b/src/components/tables/expandableTable/ExpandableTable.vue index 092868095..4712aec6d 100644 --- a/src/components/tables/expandableTable/ExpandableTable.vue +++ b/src/components/tables/expandableTable/ExpandableTable.vue @@ -43,22 +43,24 @@ > - + - Edit + Edit + Details + + + + + + + - - - - - - + +