diff --git a/src/locales/en.json b/src/locales/en.json index db36d530..d9a845ba 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -85,6 +85,7 @@ "Every 6 hours": "Every 6 hours", "Every day": "Every day", "Failed": "Failed", + "Failed job reason": "Failed job reason", "Failed to schedule service(s)": "Failed to schedule {count} service(s)", "Fetching TimeZones": "Fetching TimeZones", "File upload status": "File upload status", diff --git a/src/store/modules/job/actions.ts b/src/store/modules/job/actions.ts index d551277a..7a289e4d 100644 --- a/src/store/modules/job/actions.ts +++ b/src/store/modules/job/actions.ts @@ -52,7 +52,7 @@ const actions: ActionTree = { "shopId_fld1_grp": "2", "shopId_fld1_op": "empty" } as any, - "fieldList": [ "systemJobEnumId", "runTime", "tempExprId", "parentJobId", "serviceName", "jobId", "jobName", "statusId", "cancelDateTime", "finishDateTime", "startDateTime" , "enumTypeId", "enumName", "description", "runtimeDataId" ], + "fieldList": [ "systemJobEnumId", "runTime", "tempExprId", "parentJobId", "serviceName", "jobId", "jobName", "jobResult", "statusId", "cancelDateTime", "finishDateTime", "startDateTime" , "enumTypeId", "enumName", "description", "runtimeDataId" ], "noConditionFind": "Y", "viewSize": payload.viewSize, "viewIndex": payload.viewIndex, diff --git a/src/views/FailedJobReasonModal.vue b/src/views/FailedJobReasonModal.vue new file mode 100644 index 00000000..50cdded5 --- /dev/null +++ b/src/views/FailedJobReasonModal.vue @@ -0,0 +1,58 @@ + + + \ No newline at end of file diff --git a/src/views/Pipeline.vue b/src/views/Pipeline.vue index 27035393..ca8c0f81 100644 --- a/src/views/Pipeline.vue +++ b/src/views/Pipeline.vue @@ -179,7 +179,7 @@
{{ job.statusId == "SERVICE_CANCELLED" || job.statusId == "SERVICE_CRASHED" ? timeFromNow(job.cancelDateTime) : timeFromNow(job.finishDateTime) }} - {{ job.statusDesc }} + {{ job.statusDesc }}
@@ -299,6 +299,7 @@ import { showToast } from '@/utils' import JobActionsPopover from '@/components/JobActionsPopover.vue' import { Actions, hasPermission } from '@/authorization' import Filters from '@/components/Filters.vue'; +import FailedJobReasonModal from '@/views/FailedJobReasonModal.vue' export default defineComponent({ name: "Pipeline", @@ -390,6 +391,14 @@ export default defineComponent({ this.segmentSelected === 'running' ? this.getRunningJobs(): this.getJobHistory(); }, + async openFailedJobReason(job: any) { + const jobHistoryModal = await modalController.create({ + component: FailedJobReasonModal, + componentProps: { job } + }); + + return jobHistoryModal.present(); + }, getJobExecutionTime(startTime: any, endTime: any){ if (startTime && endTime) { const timeDiff = DateTime.fromMillis(endTime).diff( DateTime.fromMillis(startTime))