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}