diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index e87d0622bd..17c3551a8d 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.55.0", + "version": "7.55.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.55.0", + "version": "7.55.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 de4ea125ca..767ebfece5 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.55.0", + "version": "7.55.1", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ diff --git a/packages/components/src/internal/actions.ts b/packages/components/src/internal/actions.ts index cf386951ac..abf446c3b7 100644 --- a/packages/components/src/internal/actions.ts +++ b/packages/components/src/internal/actions.ts @@ -54,6 +54,7 @@ export type DataTypeRowIdsFromTransactionIds = { dataTypes?: string[]; rowIds: string[]; typeNameRowCounts?: Record; + typeNameRows?: Record; }; type GetTransactionRowIdsResponse = { @@ -73,9 +74,8 @@ export async function getGridIdsFromTransactionId( const errorLogMsg = `${failureMsg} (transactionAuditId = ${transactionAuditId})`; const response = await request({ - url: ActionURL.buildURL('audit', 'getTransactionRowIds.api'), + url: ActionURL.buildURL('audit', 'getTransactionRowIds.api', containerPath), params: { - containerFilter: getContainerFilterForFolder(containerPath), dataType, transactionAuditId, }, diff --git a/packages/components/src/internal/components/entities/actions.ts b/packages/components/src/internal/components/entities/actions.ts index b0cd493d51..6ca8b0d39c 100644 --- a/packages/components/src/internal/components/entities/actions.ts +++ b/packages/components/src/internal/components/entities/actions.ts @@ -1561,7 +1561,8 @@ export function getSampleTypesFromTransactionIds( } export async function getDataClassesFromTransactionIds( - transactionAuditId: number | string + transactionAuditId: number | string, + includeDataRows?: boolean, ): Promise { const results = await getDataTypesFromTransactionId( transactionAuditId, @@ -1572,7 +1573,7 @@ export async function getDataClassesFromTransactionIds( if (!results.rowIds.length) return { ...results, typeNameRowCounts: {} }; - const { dataTypeRowCounts, dataTypes } = results; + const { dataTypeRowCounts, dataTypes, rowIds } = results; const dataTypeLcMap = Object.fromEntries((dataTypes ?? []).map(dt => [dt.toLowerCase(), dt])); const typeNameRowCounts: Record = {}; @@ -1591,5 +1592,26 @@ export async function getDataClassesFromTransactionIds( }); } - return { ...results, typeNameRowCounts }; + if (!includeDataRows) + return { ...results, typeNameRowCounts }; + + const typeNameRows: Record = {}; + const dataRows = await selectRows({ + schemaQuery: SCHEMAS.EXP_TABLES.DATA.detailView, + columns: ['DataClass/Name', 'RowId'], + filterArray: [Filter.create('rowId', rowIds, Filter.Types.IN)], + containerFilter: Query.containerFilter.currentPlusProjectAndShared, + }); + + dataRows.rows.forEach(row => { + const dataClass = caseInsensitive(row, 'DataClass/Name')?.value; + if (dataClass) { + const rowId = caseInsensitive(row, 'RowId').value; + if (!typeNameRows[dataClass]) + typeNameRows[dataClass] = []; + typeNameRows[dataClass].push({ rowId }); + } + }); + + return { ...results, typeNameRowCounts, typeNameRows }; } diff --git a/packages/components/src/internal/schemas.ts b/packages/components/src/internal/schemas.ts index dd1f73575e..1f087cca47 100644 --- a/packages/components/src/internal/schemas.ts +++ b/packages/components/src/internal/schemas.ts @@ -105,6 +105,7 @@ export const SAMPLE_SETS = { const SAMPLE_MANAGEMENT_SCHEMA = 'samplemanagement'; export const SAMPLE_MANAGEMENT = { SCHEMA: SAMPLE_MANAGEMENT_SCHEMA, + ALL_SOURCES: new SchemaQuery(SAMPLE_MANAGEMENT_SCHEMA, 'AllSources'), SAMPLE_TYPE_INSIGHTS: new SchemaQuery(SAMPLE_MANAGEMENT_SCHEMA, 'SampleTypeInsights'), SAMPLE_STATUS_COUNTS: new SchemaQuery(SAMPLE_MANAGEMENT_SCHEMA, 'SampleStatusCounts'), SOURCE_SAMPLES: new SchemaQuery(SAMPLE_MANAGEMENT_SCHEMA, 'SourceSamples'),