|
4 | 4 | import { page } from '$app/stores'; |
5 | 5 | import Modal from '../common/Modal.svelte'; |
6 | 6 |
|
7 | | - /** @type {number|undefined} */ |
8 | | - let workflowJobId = undefined; |
9 | 7 | /** @type {import('$lib/types').ApplyWorkflow|undefined} */ |
10 | 8 | let job = undefined; |
11 | | - /** @type {number|undefined} */ |
12 | | - let projectId = undefined; |
13 | | - /** @type {string|undefined} */ |
14 | | - let projectName = undefined; |
15 | | - let jobStatus = undefined; |
16 | 9 |
|
17 | 10 | let errorAlert = undefined; |
18 | 11 | /** @type {Modal} */ |
19 | 12 | let modal; |
20 | 13 |
|
21 | 14 | /** |
22 | 15 | * @param jobToDisplay {import('$lib/types').ApplyWorkflow} |
23 | | - * @param projectNameToDisplay {string} |
24 | 16 | */ |
25 | | - export async function show(jobToDisplay, projectNameToDisplay) { |
| 17 | + export async function show(jobToDisplay) { |
26 | 18 | job = jobToDisplay; |
27 | | - workflowJobId = job.id; |
28 | | - projectId = job.project_id; |
29 | | - projectName = projectNameToDisplay; |
30 | | - jobStatus = job.status; |
31 | | -
|
32 | 19 | modal.show(); |
33 | 20 | } |
34 | 21 |
|
|
37 | 24 | if (errorAlert) { |
38 | 25 | errorAlert.hide(); |
39 | 26 | } |
| 27 | + if (!job) { |
| 28 | + return; |
| 29 | + } |
40 | 30 |
|
41 | | - const response = await fetch(`/api/v1/project/${projectId}/job/${workflowJobId}`, { |
| 31 | + const response = await fetch(`/api/v1/project/${job.project_dump.id}/job/${job.id}`, { |
42 | 32 | method: 'GET', |
43 | 33 | credentials: 'include' |
44 | 34 | }); |
|
54 | 44 |
|
55 | 45 | <Modal id="workflowJobInfoModal" bind:this={modal} size="lg"> |
56 | 46 | <svelte:fragment slot="header"> |
57 | | - <h1 class="h5 modal-title flex-grow-1">Workflow Job #{workflowJobId}</h1> |
| 47 | + <h1 class="h5 modal-title flex-grow-1">Workflow Job #{job?.id}</h1> |
58 | 48 | {#if job && job.user_email === $page.data.userInfo.email && job.project_id !== null} |
59 | 49 | <button class="btn btn-light me-3" on:click={fetchJob}> |
60 | 50 | <i class="bi-arrow-clockwise" /> |
|
71 | 61 | <li class="list-group-item list-group-item-light fw-bold">Id</li> |
72 | 62 | <li class="list-group-item">{job.id}</li> |
73 | 63 | <li class="list-group-item list-group-item-light fw-bold">Workflow</li> |
74 | | - <li class="list-group-item">{job.workflow_dump?.name || '-'}</li> |
| 64 | + <li class="list-group-item">{job.workflow_dump.name}</li> |
75 | 65 | <li class="list-group-item list-group-item-light fw-bold">Project</li> |
76 | | - <li class="list-group-item">{projectName || '-'}</li> |
| 66 | + <li class="list-group-item">{job.project_dump.name}</li> |
77 | 67 | <li class="list-group-item list-group-item-light fw-bold">Input dataset</li> |
78 | | - <li class="list-group-item">{job.input_dataset_dump?.name || '-'}</li> |
| 68 | + <li class="list-group-item">{job.input_dataset_dump.name}</li> |
79 | 69 | <li class="list-group-item list-group-item-light fw-bold">Output dataset</li> |
80 | | - <li class="list-group-item">{job.output_dataset_dump?.name || '-'}</li> |
| 70 | + <li class="list-group-item">{job.output_dataset_dump.name}</li> |
81 | 71 | <li class="list-group-item list-group-item-light fw-bold">Status</li> |
82 | | - {#key jobStatus} |
83 | | - <li class="list-group-item"><StatusBadge status={jobStatus} /></li> |
| 72 | + {#key job.status} |
| 73 | + <li class="list-group-item"><StatusBadge status={job.status} /></li> |
84 | 74 | {/key} |
85 | 75 | <li class="list-group-item list-group-item-light fw-bold">Working directory</li> |
86 | 76 | <li class="list-group-item"><code>{job.working_dir}</code></li> |
|
0 commit comments