diff --git a/ayanova/src/components/extension-delete-control.vue b/ayanova/src/components/extension-delete-control.vue
index 57183360..33289832 100644
--- a/ayanova/src/components/extension-delete-control.vue
+++ b/ayanova/src/components/extension-delete-control.vue
@@ -19,6 +19,15 @@
@click="doAction()"
>{{ $ay.t("StartJob") }}
+
+
+ {{ $ay.t("Cancel") }}{{ progress }}
@@ -29,6 +38,8 @@ export default {
},
data: () => ({
jobActive: false,
+ currentJobId: null,
+ progress: "",
rights: window.$gz.role.defaultRightsObject(),
available: false
}),
@@ -51,6 +62,12 @@ export default {
canDoAction() {
return true;
},
+ async requestCancel() {
+ await window.$gz.api.upsert(
+ "job-operations/request-cancel",
+ this.currentJobId
+ );
+ },
async doAction() {
const vm = this;
const dialogResult = await window.$gz.dialog.confirmGeneric(
@@ -68,37 +85,39 @@ export default {
const body = this.dataListSelection;
try {
+ this.progress = "";
//call api route
let jobId = await window.$gz.api.upsert(url, body);
if (jobId.error) {
throw new Error(window.$gz.errorHandler.errorToString(jobId, vm));
}
- jobId = jobId.jobId; //it's in a sub key
- //indicate loading by setting on button
+
+ this.currentJobId = jobId.jobId;
vm.jobActive = true;
- let jobStatus = 1;
+ let jobProgress = {};
while (vm.jobActive == true) {
- await window.$gz.util.sleepAsync(1000);
- //check if done
- jobStatus = await window.$gz.api.get(
- `job-operations/status/${jobId}`
+ await window.$gz.util.sleepAsync(2000);
+ jobProgress = await window.$gz.api.get(
+ `job-operations/progress/${this.currentJobId}`
);
- if (jobStatus.error) {
+ if (jobProgress.error) {
throw new Error(
- window.$gz.errorHandler.errorToString(jobStatus, vm)
+ window.$gz.errorHandler.errorToString(jobProgress, vm)
);
}
- jobStatus = jobStatus.data;
- if (jobStatus == 4 || jobStatus == 0) {
- if (jobStatus == 4) {
+ jobProgress = jobProgress.data;
+ this.progress = jobProgress.progress;
+
+ if (jobProgress.jobStatus == 4 || jobProgress.jobStatus == 0) {
+ if (jobProgress.jobStatus == 4) {
//emit job id and event to parent for log viewing
vm.$emit("ext-show-job-log", jobId);
}
throw new Error("Job failed");
}
- if (jobStatus == 3) {
+ if (jobProgress.jobStatus == 3) {
vm.jobActive = false;
}
}