diff --git a/frontend/javascripts/admin/api/jobs.ts b/frontend/javascripts/admin/api/jobs.ts index c5aa9d21de7..55f462f1e0a 100644 --- a/frontend/javascripts/admin/api/jobs.ts +++ b/frontend/javascripts/admin/api/jobs.ts @@ -21,7 +21,7 @@ function transformBackendJobToAPIJob(job: any): APIJob { type: job.command, datasetName: job.commandArgs.dataset_name, datasetDirectoryName: job.commandArgs.dataset_directory_name, - organizationId: job.commandArgs.organization_id, + organizationId: job.commandArgs.organization_id || job.commandArgs.organization_name, layerName: job.commandArgs.layer_name || job.commandArgs.volume_layer_name, annotationLayerName: job.commandArgs.annotation_layer_name, boundingBox: job.commandArgs.bbox, diff --git a/frontend/javascripts/admin/job/job_list_view.tsx b/frontend/javascripts/admin/job/job_list_view.tsx index b8ea332e44a..c14f176a878 100644 --- a/frontend/javascripts/admin/job/job_list_view.tsx +++ b/frontend/javascripts/admin/job/job_list_view.tsx @@ -157,14 +157,20 @@ function JobListView() { setSearchQuery(event.target.value); } + function getLinkToDataset(job: APIJob) { + // prefer updated link over legacy link. + if (job.datasetId != null) + return `/datasets/${getReadableURLPart({ name: job.datasetName || "unknown_name", id: job.datasetId })}/view`; + if (job.organizationId != null && (job.datasetName != null || job.datasetDirectoryName != null)) + return `/datasets/${job.organizationId}/${job.datasetDirectoryName || job.datasetName}/view`; + return null; + } + function renderDescription(__: any, job: APIJob) { - const linkToDataset = - job.datasetId != null - ? `/datasets/${getReadableURLPart({ name: job.datasetName || "unknown_name", id: job.datasetId })}/view` // prefer updated link over legacy link. - : `/datasets/${job.organizationId || ""}/${job.datasetDirectoryName || job.datasetName}/view`; + const linkToDataset = getLinkToDataset(job); if (job.type === APIJobType.CONVERT_TO_WKW && job.datasetName) { return {`Conversion to WKW of ${job.datasetName}`}; - } else if (job.type === APIJobType.EXPORT_TIFF && job.organizationId && job.datasetName) { + } else if (job.type === APIJobType.EXPORT_TIFF && linkToDataset != null) { const labelToAnnotationOrDataset = job.annotationId != null ? ( @@ -180,24 +186,20 @@ function JobListView() { {job.ndBoundingBox ? formatWkLibsNdBBox(job.ndBoundingBox) : job.boundingBox}) ); - } else if (job.type === APIJobType.RENDER_ANIMATION && job.organizationId && job.datasetName) { + } else if (job.type === APIJobType.RENDER_ANIMATION && linkToDataset != null) { return ( Animation rendering for layer {job.layerName} of dataset{" "} {job.datasetName} ); - } else if (job.type === APIJobType.COMPUTE_MESH_FILE && job.organizationId && job.datasetName) { + } else if (job.type === APIJobType.COMPUTE_MESH_FILE && linkToDataset != null) { return ( Mesh file computation for {job.datasetName}{" "} ); - } else if ( - job.type === APIJobType.COMPUTE_SEGMENT_INDEX_FILE && - job.organizationId && - job.datasetName - ) { + } else if (job.type === APIJobType.COMPUTE_SEGMENT_INDEX_FILE && linkToDataset != null) { return ( Segment index file computation for {job.datasetName}{" "} @@ -205,8 +207,7 @@ function JobListView() { ); } else if ( job.type === APIJobType.FIND_LARGEST_SEGMENT_ID && - job.organizationId && - job.datasetName && + linkToDataset != null && job.layerName ) { return ( @@ -215,24 +216,14 @@ function JobListView() { {job.datasetName}{" "} ); - } else if ( - job.type === APIJobType.INFER_NUCLEI && - job.organizationId && - job.datasetName && - job.layerName - ) { + } else if (job.type === APIJobType.INFER_NUCLEI && linkToDataset != null && job.layerName) { return ( Nuclei inferral for layer {job.layerName} of{" "} {job.datasetName}{" "} ); - } else if ( - job.type === APIJobType.INFER_NEURONS && - job.organizationId && - job.datasetName && - job.layerName - ) { + } else if (job.type === APIJobType.INFER_NEURONS && linkToDataset != null && job.layerName) { return ( Neuron inferral for layer {job.layerName} of{" "} @@ -241,8 +232,7 @@ function JobListView() { ); } else if ( job.type === APIJobType.INFER_MITOCHONDRIA && - job.organizationId && - job.datasetName && + linkToDataset != null && job.layerName ) { return ( @@ -251,23 +241,14 @@ function JobListView() { {job.datasetName}{" "} ); - } else if ( - job.type === APIJobType.ALIGN_SECTIONS && - job.organizationId && - job.datasetName && - job.layerName - ) { + } else if (job.type === APIJobType.ALIGN_SECTIONS && linkToDataset != null && job.layerName) { return ( Align sections for layer {job.layerName} of{" "} {job.datasetName}{" "} ); - } else if ( - job.type === APIJobType.MATERIALIZE_VOLUME_ANNOTATION && - job.organizationId && - job.datasetName - ) { + } else if (job.type === APIJobType.MATERIALIZE_VOLUME_ANNOTATION && linkToDataset != null) { return ( Materialize annotation for {job.layerName ? ` layer ${job.layerName} of ` : " "} @@ -277,7 +258,7 @@ function JobListView() { : null} ); - } else if (job.type === APIJobType.TRAIN_MODEL && job.organizationId) { + } else if (job.type === APIJobType.TRAIN_MODEL) { const numberOfTrainingAnnotations = job.trainingAnnotations.length; return ( @@ -285,7 +266,7 @@ function JobListView() { {getShowTrainingDataLink(job.trainingAnnotations)} ); - } else if (job.type === APIJobType.INFER_WITH_MODEL && job.organizationId) { + } else if (job.type === APIJobType.INFER_WITH_MODEL && linkToDataset != null) { return ( Run AI segmentation with custom model on {job.datasetName}