Skip to content

Commit 5c66426

Browse files
committed
Supported legacy status
1 parent 0a967b1 commit 5c66426

File tree

2 files changed

+45
-15
lines changed

2 files changed

+45
-15
lines changed

src/lib/components/jobs/ImagesStatusModal.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@
177177
onPageChange={(currentPage, pageSize) => loadImages(currentPage, pageSize)}
178178
/>
179179
{:else}
180-
<p>No images</p>
180+
<p class="ps-3">No images</p>
181181
{/if}
182182
{/if}
183183
</svelte:fragment>

src/routes/v2/projects/[projectId]/workflows/[workflowId]/+page.svelte

Lines changed: 44 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import TypeFiltersFlowModal from '$lib/components/v2/workflow/TypeFiltersFlowModal.svelte';
2424
import { slide } from 'svelte/transition';
2525
import ImagesStatusModal from '$lib/components/jobs/ImagesStatusModal.svelte';
26+
import JobStatusIcon from '$lib/components/jobs/JobStatusIcon.svelte';
2627
2728
/** @type {import('fractal-components/types/api').WorkflowV2} */
2829
let workflow = $page.data.workflow;
@@ -36,6 +37,10 @@
3637
/** @type {number|undefined} */
3738
let selectedDatasetId = undefined;
3839
40+
let isLegacy = false;
41+
/** @type {{[key: number]: import('fractal-components/types/api').JobStatus}} */
42+
let legacyStatuses = {};
43+
3944
let jobError = '';
4045
/** @type {import('fractal-components/types/api').ApplyWorkflowV2|undefined} */
4146
let failedJob;
@@ -482,21 +487,26 @@
482487
selectedSubmittedJob = undefined;
483488
return;
484489
}
485-
selectedSubmittedJob = await getSelectedSubmittedJob(selectedDatasetId);
486-
const outputStatusResponse = await fetch(
490+
selectedSubmittedJob = await getSelectedJob(selectedDatasetId);
491+
const statusResponse = await fetch(
487492
`/api/v2/project/${workflow.project_id}/status?dataset_id=${selectedDatasetId}&workflow_id=${workflow.id}`,
488493
{
489494
method: 'GET',
490495
credentials: 'include'
491496
}
492497
);
493-
const outputStatus = await outputStatusResponse.json();
494-
if (!outputStatusResponse.ok) {
495-
console.error('Error retrieving images status', outputStatus);
498+
const receivedStatuses = await statusResponse.json();
499+
if (!statusResponse.ok) {
500+
console.error('Error retrieving images status', receivedStatuses);
496501
return;
497502
}
498503
const jobHasError = selectedSubmittedJob?.status === 'failed';
499-
statuses = Object.fromEntries(Object.entries(outputStatus).filter(([, v]) => v !== null));
504+
statuses = Object.fromEntries(Object.entries(receivedStatuses).filter(([, v]) => v !== null));
505+
if (selectedSubmittedJob && Object.keys(statuses).length === 0) {
506+
await loadLegacyStatus();
507+
} else {
508+
isLegacy = false;
509+
}
500510
const submitted = Object.values(statuses).filter((s) => s.num_submitted_images > 0);
501511
if (submitted.length > 0 || selectedSubmittedJob?.status === 'submitted') {
502512
window.clearTimeout(statusWatcherTimer);
@@ -511,6 +521,22 @@
511521
await loadJobError(jobHasError);
512522
}
513523
524+
async function loadLegacyStatus() {
525+
const response = await fetch(
526+
`/api/v2/project/1/status-legacy?workflow_id=${workflow.id}&dataset_id=${selectedDatasetId}`
527+
);
528+
if (!response.ok) {
529+
console.log('Error loading legacy status');
530+
return;
531+
}
532+
const result = await response.json();
533+
if (Object.keys(result).length === 0) {
534+
return;
535+
}
536+
legacyStatuses = result.status;
537+
isLegacy = true;
538+
}
539+
514540
async function reloadSelectedDataset() {
515541
if (selectedDatasetId === undefined) {
516542
return;
@@ -574,7 +600,7 @@
574600
* @param {number} datasetId
575601
* @return {Promise<import('fractal-components/types/api').ApplyWorkflowV2|undefined>}
576602
*/
577-
async function getSelectedSubmittedJob(datasetId) {
603+
async function getSelectedJob(datasetId) {
578604
const submitted = Object.values(statuses).filter((s) => s.num_submitted_images > 0);
579605
if (
580606
submitted.length > 0 &&
@@ -856,13 +882,17 @@
856882
{workflowTask.task.name}
857883
<span class="float-end ps-2">
858884
{#if selectedDatasetId}
859-
<ImagesStatus
860-
status={statuses[workflowTask.id]}
861-
datasetId={selectedDatasetId}
862-
projectId={project.id}
863-
workflowTaskId={workflowTask.id}
864-
{imagesStatusModal}
865-
/>
885+
{#if isLegacy}
886+
<JobStatusIcon status={legacyStatuses[workflowTask.id]} />
887+
{:else}
888+
<ImagesStatus
889+
status={statuses[workflowTask.id]}
890+
datasetId={selectedDatasetId}
891+
projectId={project.id}
892+
workflowTaskId={workflowTask.id}
893+
{imagesStatusModal}
894+
/>
895+
{/if}
866896
{/if}
867897
</span>
868898
{#if newVersionsMap[workflowTask.task.id]?.length > 0}

0 commit comments

Comments
 (0)