diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index b7505e5613..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", + "version": "7.46.4-jobSources.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.46.3", + "version": "7.46.4-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 22591678e3..951affef17 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.46.3", + "version": "7.46.4-jobSources.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index 1939f40252..8806145ede 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.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 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 = { 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); 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 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