diff --git a/src/job-tracker.ts b/src/job-tracker.ts index dce39d1..cc29b92 100644 --- a/src/job-tracker.ts +++ b/src/job-tracker.ts @@ -1,43 +1,49 @@ import { Container } from "./container"; import { JobStatus } from "./types"; import * as vscode from 'vscode'; -import {load} from './settings'; +import { load } from './settings'; -export const trackJob = (id : number) => { +export const trackJob = (id: number) => { - var lastStatus = JobStatus.Queued; + var lastStatus = JobStatus.Queued; const token = setInterval(async () => { const job = await Container.universal.getJob(id); - var result : any = ''; - if (job.status === JobStatus.Canceled) - { + var result: any = ''; + if (job.status === JobStatus.Canceled) { clearInterval(token); result = await vscode.window.showWarningMessage(`Job ${id} canceled.`, "View Job"); } - if (job.status === JobStatus.Failed) - { + if (job.status === JobStatus.Failed) { clearInterval(token); result = await vscode.window.showErrorMessage(`Job ${id} failed.`, "View Job"); } - if (job.status === JobStatus.Completed) - { + if (job.status === JobStatus.Completed) { clearInterval(token); result = await vscode.window.showInformationMessage(`Job ${id} succeeded.`, "View Job"); } - if (job.status === JobStatus.WaitingOnFeedback && lastStatus != JobStatus.WaitingOnFeedback) - { + if (job.status === JobStatus.WaitingOnFeedback && lastStatus != JobStatus.WaitingOnFeedback) { result = await vscode.window.showInformationMessage(`Job ${id} is waiting on feedback.`, "View Job"); } - if (result === "View Job") - { + if (result === "View Job") { const settings = load(); - vscode.env.openExternal(vscode.Uri.parse(`${settings.url}/admin/automation/jobs/${id}`)); + const connectionName = Container.context.globalState.get("universal.connection"); + + var url = settings.url; + + if (connectionName && connectionName !== 'Default') { + const connection = settings.connections.find(m => m.name === connectionName); + if (connection) { + url = connection.url; + } + } + + vscode.env.openExternal(vscode.Uri.parse(`${url}/admin/automation/jobs/${id}`)); } lastStatus = job.status;