From d0001bf01a11a3eaec63500204586e1736428205 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Tue, 30 Jun 2026 15:58:07 -0700 Subject: [PATCH 01/19] Move export config into `EntityDataType` --- packages/components/releaseNotes/components.md | 6 ++++++ .../src/internal/components/entities/constants.ts | 11 +++++++++-- .../src/internal/components/entities/models.ts | 1 + .../internal/components/labelPrinting/APIWrapper.ts | 4 ++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index a441459736..2f7fd38d00 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -1,6 +1,12 @@ # @labkey/components Components, models, actions, and utility functions for LabKey applications and pages +### version TBD +*Released*: TBD +- Enable adding sources to jobs + - Move export config into `EntityDataType` + - Add `JobInputSources` query to workflow schema + ### version 7.45.2 *Released*: 29 June 2026 - GitHub Issue #1023: Add redirect() helper that uses core-safeRedirect when necessary to check url before redirecting diff --git a/packages/components/src/internal/components/entities/constants.ts b/packages/components/src/internal/components/entities/constants.ts index 99a9361dce..7544433b1a 100644 --- a/packages/components/src/internal/components/entities/constants.ts +++ b/packages/components/src/internal/components/entities/constants.ts @@ -12,7 +12,7 @@ import { DELETE_ASSAY_RUNS_TOPIC, DELETE_SAMPLES_TOPIC } from '../../util/helpLi import { SAMPLE_TYPE_KEY, SAMPLES_KEY } from '../../app/constants'; -import { SAMPLE_STORAGE_COLUMNS_WITH_SUBSELECT_EXPR } from '../samples/constants'; +import { SAMPLE_DATA_EXPORT_CONFIG, SAMPLE_STORAGE_COLUMNS_WITH_SUBSELECT_EXPR } from '../samples/constants'; import { SchemaQuery } from '../../../public/SchemaQuery'; @@ -146,6 +146,7 @@ export const SampleTypeDataType: EntityDataType = { folderConfigurableDataType: 'SampleType', labelColorCol: 'labelcolor', extraFinderFields: ['storagepositionnumber', 'storageterminallocation'], + exportConfig: SAMPLE_DATA_EXPORT_CONFIG, }; export const SampleParentDataType = { @@ -155,6 +156,11 @@ export const SampleParentDataType = { containerFilter: Query.containerFilter.currentPlusProjectAndShared, }; +export const SOURCE_EXPORT_CONFIG = { + 'exportAlias.name': 'SourceID', + 'exportAlias.folder': 'Folder', +}; + export const DataClassDataType: EntityDataType = { typeListingSchemaQuery: SCHEMAS.EXP_TABLES.DATA_CLASSES, listingSchemaQuery: SCHEMAS.EXP_TABLES.DATA, @@ -182,6 +188,7 @@ export const DataClassDataType: EntityDataType = { typeIcon: 'source_type', sampleFinderCardType: 'dataclassparent', folderConfigurableDataType: 'DataClass', + exportConfig: SOURCE_EXPORT_CONFIG, }; export const ParentEntityLineageColumns = List.of('Inputs/Materials/First', 'Inputs/Data/First'); @@ -210,5 +217,5 @@ export const DATA_CLASS_IMPORT_PREFIX = 'dataInputs/'; export enum JobOperation { Delete, - Move + Move, } diff --git a/packages/components/src/internal/components/entities/models.ts b/packages/components/src/internal/components/entities/models.ts index 81ee350ee7..7d53a3e9ea 100644 --- a/packages/components/src/internal/components/entities/models.ts +++ b/packages/components/src/internal/components/entities/models.ts @@ -474,6 +474,7 @@ export interface EntityDataType { descriptionSingular: string; editTypeAppUrlPrefix?: string; exprColumnsWithSubSelect?: string[]; + exportConfig?: Record; extraFinderFields?: string[]; filterArray?: Filter.IFilter[]; filterCardHeaderClass?: string; diff --git a/packages/components/src/internal/components/labelPrinting/APIWrapper.ts b/packages/components/src/internal/components/labelPrinting/APIWrapper.ts index 5326fba91e..c12b8c3380 100644 --- a/packages/components/src/internal/components/labelPrinting/APIWrapper.ts +++ b/packages/components/src/internal/components/labelPrinting/APIWrapper.ts @@ -9,7 +9,6 @@ import { getQueryModelExportParams } from '../../../public/QueryModel/utils'; import { SAMPLE_MANAGER_APP_PROPERTIES } from '../../app/constants'; import { EXPORT_TYPES } from '../../constants'; import { buildURL } from '../../url/AppURL'; -import { SAMPLE_DATA_EXPORT_CONFIG } from '../samples/constants'; import { selectRows } from '../../query/selectRows'; @@ -19,6 +18,7 @@ import { handleRequestFailure } from '../../request'; import { LABEL_TEMPLATE_SQ } from './constants'; import { BarTenderConfiguration, BarTenderResponse, LabelTemplate } from './models'; +import { SampleTypeDataType } from '../entities/constants'; function handleBarTenderConfigurationResponse( resolve: (value: BarTenderConfiguration | PromiseLike) => void @@ -147,7 +147,7 @@ export class LabelPrintingServerAPIWrapper implements LabelPrintingAPIWrapper { Ajax.request({ url: buildURL(SAMPLE_MANAGER_APP_PROPERTIES.controllerName, 'printBarTenderLabels.api'), params: getQueryModelExportParams(sampleModel, EXPORT_TYPES.LABEL, { - ...SAMPLE_DATA_EXPORT_CONFIG, + ...SampleTypeDataType.exportConfig, labelFormat, numCopies, // We override the showRows value because of the strange default behavior for grid export that From e5545d1059613b8429cbb0a14b6496b036663398 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Tue, 30 Jun 2026 15:58:25 -0700 Subject: [PATCH 02/19] Add `JobInputSources` query to workfow schema --- packages/components/src/internal/schemas.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/components/src/internal/schemas.ts b/packages/components/src/internal/schemas.ts index 21e33edf3c..83fdd0f3e7 100644 --- a/packages/components/src/internal/schemas.ts +++ b/packages/components/src/internal/schemas.ts @@ -123,6 +123,7 @@ export const WORKFLOW = { JOB_TEMPLATE: new SchemaQuery(WORKFLOW_SCHEMA, 'JobTemplate'), JOB_PRIORITY: new SchemaQuery(WORKFLOW_SCHEMA, 'WorkflowJobPriority'), JOB_INPUT_SAMPLES: new SchemaQuery(WORKFLOW_SCHEMA, 'JobInputSamples'), + JOB_INPUT_SOURCES: new SchemaQuery(WORKFLOW_SCHEMA, 'JobInputSources'), }; // STUDY From 2fbee6191ddc7fe4b0f45bf5be4cc3b5dda339c6 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Tue, 30 Jun 2026 15:59:22 -0700 Subject: [PATCH 03/19] @labkey/components v7.45.3-jobSources.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 7c223a9bf4..916df123cd 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.45.2", + "version": "7.45.3-jobSources.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.45.2", + "version": "7.45.3-jobSources.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 61c93c2765..ce5ec2517e 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.45.2", + "version": "7.45.3-jobSources.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 91523c4ec80a060899aa17b45ec0fe8248fa95cd Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Tue, 30 Jun 2026 16:04:05 -0700 Subject: [PATCH 04/19] Relabel "Sample Workflow Events" as "Workflow Events" --- .../components/src/internal/components/auditlog/constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/components/src/internal/components/auditlog/constants.ts b/packages/components/src/internal/components/auditlog/constants.ts index 6a07567446..a752ebee5f 100644 --- a/packages/components/src/internal/components/auditlog/constants.ts +++ b/packages/components/src/internal/components/auditlog/constants.ts @@ -89,7 +89,7 @@ export const ASSAY_RESULT_AUDIT_QUERY: AuditQuery = { export const WORKFLOW_AUDIT_QUERY: AuditQuery = { hasDetail: true, hasTransactionId: true, - label: 'Sample Workflow Events', + label: 'Workflow Events', value: 'SamplesWorkflowAuditEvent', }; export const SOURCE_AUDIT_QUERY: AuditQuery = { From 1bcb27c348157912e6a3a8f22711ea386681edb3 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Tue, 30 Jun 2026 16:12:44 -0700 Subject: [PATCH 05/19] @labkey/components v7.45.3-jobSources.1 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 916df123cd..f18814d899 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.45.3-jobSources.0", + "version": "7.45.3-jobSources.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.45.3-jobSources.0", + "version": "7.45.3-jobSources.1", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index ce5ec2517e..ad0937e74c 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.45.3-jobSources.0", + "version": "7.45.3-jobSources.1", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 1b9b1ff270002226415248166b3eadbfc437ddab Mon Sep 17 00:00:00 2001 From: cnathe Date: Wed, 8 Jul 2026 09:12:40 -0500 Subject: [PATCH 06/19] 7.45.6-jobSources.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index a1ce5b503a..1128c42ddd 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.45.5", + "version": "7.45.6-jobSources.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.45.5", + "version": "7.45.6-jobSources.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 219099fd91..6625068f12 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.45.5", + "version": "7.45.6-jobSources.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 29e03ec394109faea3ac25e846c132f75176ebc5 Mon Sep 17 00:00:00 2001 From: cnathe Date: Wed, 8 Jul 2026 15:26:30 -0500 Subject: [PATCH 07/19] 7.45.6-jobSources.1 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 1128c42ddd..59c40e41fb 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.45.6-jobSources.0", + "version": "7.45.6-jobSources.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.45.6-jobSources.0", + "version": "7.45.6-jobSources.1", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 6625068f12..9712f91ce3 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.45.6-jobSources.0", + "version": "7.45.6-jobSources.1", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 571713dea6713c6227883dc371a8e16f85bc7c85 Mon Sep 17 00:00:00 2001 From: cnathe Date: Thu, 9 Jul 2026 06:50:19 -0500 Subject: [PATCH 08/19] jest test updates for sources changes --- .../components/src/internal/components/auditlog/utils.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/components/src/internal/components/auditlog/utils.test.ts b/packages/components/src/internal/components/auditlog/utils.test.ts index 57c4a81fe3..529abb8ba3 100644 --- a/packages/components/src/internal/components/auditlog/utils.test.ts +++ b/packages/components/src/internal/components/auditlog/utils.test.ts @@ -51,7 +51,7 @@ describe('getAuditQueries', () => { test('LKSM professional', () => { const auditQueries = getAuditQueries(TEST_LKSM_PROFESSIONAL_MODULE_CONTEXT); expect(auditQueries.length).toBe(18); - expect(auditQueries.findIndex(entry => entry === INVENTORY_AUDIT_QUERY)).toBe(16); + expect(auditQueries.findIndex(entry => entry === INVENTORY_AUDIT_QUERY)).toBe(15); expect(auditQueries.findIndex(entry => entry === ASSAY_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); expect(auditQueries.findIndex(entry => entry === WORKFLOW_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); expect(auditQueries.findIndex(entry => entry === SOURCE_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); @@ -79,7 +79,7 @@ describe('getAuditQueries', () => { }; const auditQueries = getAuditQueries(moduleContext); expect(auditQueries.length).toBe(19); - expect(auditQueries.findIndex(entry => entry === INVENTORY_AUDIT_QUERY)).toBe(17); + expect(auditQueries.findIndex(entry => entry === INVENTORY_AUDIT_QUERY)).toBe(16); expect(auditQueries.findIndex(entry => entry === ASSAY_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); expect(auditQueries.findIndex(entry => entry === ASSAY_RESULT_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); expect(auditQueries.findIndex(entry => entry === WORKFLOW_AUDIT_QUERY)).toBeGreaterThanOrEqual(0); From 67deff22f7457f892b171bac2cd1eca0b5e69dbe Mon Sep 17 00:00:00 2001 From: cnathe Date: Thu, 9 Jul 2026 07:09:49 -0500 Subject: [PATCH 09/19] 7.46.1-jobSources.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index e3c14e58bb..7b9aa49da4 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.46.0", + "version": "7.46.1-jobSources.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.46.0", + "version": "7.46.1-jobSources.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 27c32a22c1..3c7761542e 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.46.0", + "version": "7.46.1-jobSources.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 516da4f3a05978b8ccf31068dcf0d08528648262 Mon Sep 17 00:00:00 2001 From: cnathe Date: Thu, 9 Jul 2026 10:54:46 -0500 Subject: [PATCH 10/19] 7.46.1-jobSources.1 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 7b9aa49da4..597afa55d5 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.46.1-jobSources.0", + "version": "7.46.1-jobSources.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.46.1-jobSources.0", + "version": "7.46.1-jobSources.1", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 3c7761542e..cb3299c678 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.46.1-jobSources.0", + "version": "7.46.1-jobSources.1", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 17f6c6ecf200426ad54f20bade227ae7b5b812c7 Mon Sep 17 00:00:00 2001 From: cnathe Date: Sun, 12 Jul 2026 11:21:39 -0500 Subject: [PATCH 11/19] 7.46.2-jobSources.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 0bac7f005b..d121e37a83 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.46.1", + "version": "7.46.2-jobSources.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.46.1", + "version": "7.46.2-jobSources.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 6b1680265f..6ebb532b8d 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.46.1", + "version": "7.46.2-jobSources.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From deb5e491b20ab7fa7cc328e7f0a2697045e5dfe2 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Tue, 14 Jul 2026 15:32:29 -0700 Subject: [PATCH 12/19] @labkey/components v7.46.3-jobSources.0 --- packages/components/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index d121e37a83..5259ae6367 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,16 +1,16 @@ { "name": "@labkey/components", - "version": "7.46.2-jobSources.0", + "version": "7.46.3-jobSources.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.46.2-jobSources.0", + "version": "7.46.3-jobSources.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.52.1", + "@labkey/api": "1.52.2", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.2", @@ -3775,9 +3775,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.52.1", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.52.1.tgz", - "integrity": "sha512-SgRJW7a4Vdf5tQgUTtJvA114PJ8BH8xG+0xKH/NiRBE8SiGQDGg+lS1w0tFD89shaoyBWbep2Y2qR91eexkrXQ==", + "version": "1.52.2", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.52.2.tgz", + "integrity": "sha512-LhzL5wwov5cXDm0pUvc5BHDq2qFeNjc9R3Xwa8aNlj1aJoBYC2yV1T9A4h/cVnPqcXgTgqKQTD04IkZ8bOgEvg==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { From 5353db1b28c7f9bd04e9566726bd55aa339c9ce4 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Wed, 15 Jul 2026 08:01:38 -0700 Subject: [PATCH 13/19] merge from develop and update to @labkey/components v7.46.4-jobSources.0 --- packages/components/package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 5259ae6367..7a11687db5 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.46.3-jobSources.0", + "version": "7.46.4-jobSources.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.46.3-jobSources.0", + "version": "7.46.4-jobSources.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", From 7949338b4752abe3732c5a7806647395919d5951 Mon Sep 17 00:00:00 2001 From: cnathe Date: Fri, 17 Jul 2026 11:25:30 -0500 Subject: [PATCH 14/19] remove components.md update --- packages/components/releaseNotes/components.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index 8806145ede..1939f40252 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -1,12 +1,6 @@ # @labkey/components Components, models, actions, and utility functions for LabKey applications and pages -### version TBD -*Released*: TBD -- Enable adding sources to jobs - - Move export config into `EntityDataType` - - Add `JobInputSources` query to workflow schema - ### version 7.45.6 *Released*: 8 July 2026 - Adjust width of API key display control so its copy-to-clipboard button doesn't wrap to the next line From 36f5eba4906c97d11f828d086a4ce394f3523dc3 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Mon, 20 Jul 2026 14:55:05 -0700 Subject: [PATCH 15/19] Add sourceDeleteDependencyText method --- packages/components/src/index.ts | 2 ++ .../components/entities/utils.test.ts | 30 ++++++++++++++++++- .../src/internal/components/entities/utils.ts | 10 +++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts index d555cce754..bd738fbf34 100644 --- a/packages/components/src/index.ts +++ b/packages/components/src/index.ts @@ -521,6 +521,7 @@ import { parseEntityParentKey, SAMPLE_ID_FIELD_KEY, sampleDeleteDependencyText, + sourceDeleteDependencyText, updateCellKeySampleIdMap, } from './internal/components/entities/utils'; import { @@ -1708,6 +1709,7 @@ export { showPremiumFeatures, sleep, SOURCE_AUDIT_QUERY, + sourceDeleteDependencyText, SourceTypeImportAliasRenderer, spliceURL, SplitButton, diff --git a/packages/components/src/internal/components/entities/utils.test.ts b/packages/components/src/internal/components/entities/utils.test.ts index 23a79ac491..136b6def14 100644 --- a/packages/components/src/internal/components/entities/utils.test.ts +++ b/packages/components/src/internal/components/entities/utils.test.ts @@ -31,7 +31,7 @@ import { getInitialParentChoices, getSampleIdCellKey, parseEntityParentKey, - sampleDeleteDependencyText, + sampleDeleteDependencyText, sourceDeleteDependencyText, updateCellKeySampleIdMap, } from './utils'; import { DataClassDataType, SampleTypeDataType } from './constants'; @@ -275,6 +275,34 @@ describe('sampleDeleteDependencyText', () => { }); }); +describe('sourceDeleteDependencyText', () => { + let moduleContext; + + // We need to store and reset the module context before and after these tests so we don't impact other tests in this + // file. + beforeEach(() => { + moduleContext = LABKEY.moduleContext; + }); + + afterEach(() => { + LABKEY.moduleContext = moduleContext; + }); + + test('cannot delete, professional', () => { + LABKEY.moduleContext = { ...TEST_LKSM_PROFESSIONAL_MODULE_CONTEXT }; + expect(sourceDeleteDependencyText()).toBe( + 'it has derived sample or source dependencies or references in one or more jobs or active notebooks' + ); + }); + + test('cannot delete, no workflow', () => { + LABKEY.moduleContext = { ...TEST_LKS_STARTER_MODULE_CONTEXT }; + expect(sourceDeleteDependencyText()).toBe( + 'it has derived sample or source dependencies' + ); + }); +}); + describe('getIdentifyingColumns', () => { const columns = [ { fieldKey: 'intCol', jsonType: 'int', name: 'intCol' }, diff --git a/packages/components/src/internal/components/entities/utils.ts b/packages/components/src/internal/components/entities/utils.ts index 8c9a60d651..b5824e29fd 100644 --- a/packages/components/src/internal/components/entities/utils.ts +++ b/packages/components/src/internal/components/entities/utils.ts @@ -23,6 +23,16 @@ import { EntityChoice, EntityDataType, IEntityTypeOption } from './models'; import { ParentIdData } from './actions'; +export function sourceDeleteDependencyText(): string { + let deleteMsg = 'it has derived sample or source dependencies'; + if (isELNEnabled()) { + deleteMsg += ' or references in one or more ' + (isWorkflowEnabled() ? 'jobs or' : '') + ' active notebooks'; + } else if (isWorkflowEnabled()) { + deleteMsg += ' or references in one or more jobs'; + } + return deleteMsg; +} + export function sampleDeleteDependencyText(): string { let deleteMsg = ''; if (isWorkflowEnabled()) { From ec6d440a3abf6bffce85e9f333a8d6b5dd6fecf1 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Mon, 20 Jul 2026 15:00:04 -0700 Subject: [PATCH 16/19] Nouns and verbs --- .../src/internal/components/entities/utils.test.ts | 7 ++++--- .../components/src/internal/components/entities/utils.ts | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/components/src/internal/components/entities/utils.test.ts b/packages/components/src/internal/components/entities/utils.test.ts index 136b6def14..1be96516c2 100644 --- a/packages/components/src/internal/components/entities/utils.test.ts +++ b/packages/components/src/internal/components/entities/utils.test.ts @@ -31,7 +31,8 @@ import { getInitialParentChoices, getSampleIdCellKey, parseEntityParentKey, - sampleDeleteDependencyText, sourceDeleteDependencyText, + sampleDeleteDependencyText, + sourceDeleteDependencyText, updateCellKeySampleIdMap, } from './utils'; import { DataClassDataType, SampleTypeDataType } from './constants'; @@ -291,14 +292,14 @@ describe('sourceDeleteDependencyText', () => { test('cannot delete, professional', () => { LABKEY.moduleContext = { ...TEST_LKSM_PROFESSIONAL_MODULE_CONTEXT }; expect(sourceDeleteDependencyText()).toBe( - 'it has derived sample or source dependencies or references in one or more jobs or active notebooks' + 'derived sample or source dependencies or references in one or more jobs or active notebooks' ); }); test('cannot delete, no workflow', () => { LABKEY.moduleContext = { ...TEST_LKS_STARTER_MODULE_CONTEXT }; expect(sourceDeleteDependencyText()).toBe( - 'it has derived sample or source dependencies' + 'derived sample or source dependencies' ); }); }); diff --git a/packages/components/src/internal/components/entities/utils.ts b/packages/components/src/internal/components/entities/utils.ts index b5824e29fd..171381adee 100644 --- a/packages/components/src/internal/components/entities/utils.ts +++ b/packages/components/src/internal/components/entities/utils.ts @@ -24,7 +24,7 @@ import { EntityChoice, EntityDataType, IEntityTypeOption } from './models'; import { ParentIdData } from './actions'; export function sourceDeleteDependencyText(): string { - let deleteMsg = 'it has derived sample or source dependencies'; + let deleteMsg = 'derived sample or source dependencies'; if (isELNEnabled()) { deleteMsg += ' or references in one or more ' + (isWorkflowEnabled() ? 'jobs or' : '') + ' active notebooks'; } else if (isWorkflowEnabled()) { From 2d9999f74e47c28a6d53f8fb64f1842049310f77 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Mon, 20 Jul 2026 15:01:01 -0700 Subject: [PATCH 17/19] @labkey/components v7.46.4-jobSources.2 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 7a11687db5..cdfa95e082 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.46.4-jobSources.0", + "version": "7.46.4-jobSources.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.46.4-jobSources.0", + "version": "7.46.4-jobSources.2", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 951affef17..cd75ddc88f 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.46.4-jobSources.0", + "version": "7.46.4-jobSources.2", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From b2cb4e5babf95e311d20084aca108ad0f0eb4a4a Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Mon, 20 Jul 2026 15:44:16 -0700 Subject: [PATCH 18/19] move use of `sourceDeleteDependencyText` function to `DataClassDataType` --- .../components/src/internal/components/entities/constants.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/components/src/internal/components/entities/constants.ts b/packages/components/src/internal/components/entities/constants.ts index 7544433b1a..0633bf4522 100644 --- a/packages/components/src/internal/components/entities/constants.ts +++ b/packages/components/src/internal/components/entities/constants.ts @@ -19,7 +19,7 @@ import { SchemaQuery } from '../../../public/SchemaQuery'; import { SAMPLE_PROPERTY_ALL_SAMPLE_TYPE } from '../search/constants'; import { EntityDataType } from './models'; -import { sampleDeleteDependencyText } from './utils'; +import { sampleDeleteDependencyText, sourceDeleteDependencyText } from './utils'; const DATA_OPERATION_CONFIRMATION_ACTION = 'getDataOperationConfirmationData.api'; const SAMPLE_OPERATION_CONFIRMATION_ACTION = 'getMaterialOperationConfirmationData.api'; @@ -177,7 +177,7 @@ export const DataClassDataType: EntityDataType = { descriptionSingular: 'parent type', descriptionPlural: 'parent types', uniqueFieldKey: 'Name', - dependencyText: 'derived data or sample dependencies', + dependencyText: sourceDeleteDependencyText, deleteHelpLinkTopic: 'dataClass#prevent', inputColumnName: 'Inputs/Data/First', ancestorColumnName: 'Ancestors/OtherData', From 06a5c498b54613fb66754aeaef7f9a50974156b1 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Mon, 20 Jul 2026 15:45:41 -0700 Subject: [PATCH 19/19] @labkey/components v7.46.4-jobSources.3 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index cdfa95e082..77c9347797 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.46.4-jobSources.2", + "version": "7.46.4-jobSources.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.46.4-jobSources.2", + "version": "7.46.4-jobSources.3", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index cd75ddc88f..cff51e3d7b 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.46.4-jobSources.2", + "version": "7.46.4-jobSources.3", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [