Skip to content

Commit 9bd8d1e

Browse files
committed
Merge branch 'develop' into fb_trendlineProvidedParams
2 parents 62a9c62 + 57882ba commit 9bd8d1e

11 files changed

Lines changed: 58 additions & 21 deletions

File tree

packages/components/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/components/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@labkey/components",
3-
"version": "6.70.5-trendlineProvidedParams.1",
3+
"version": "6.70.8",
44
"description": "Components, models, actions, and utility functions for LabKey applications and pages",
55
"sideEffects": false,
66
"files": [

packages/components/releaseNotes/components.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,20 @@ Components, models, actions, and utility functions for LabKey applications and p
88
- Include new 5 Parameter nonlinear curve fit option in trendline select
99
- Use column metadata displayWidth in app grid column render calcWidths
1010

11+
### version 6.70.8
12+
*Released*: 19 November 2025
13+
- Merge from release25.11-SNAPSHOT to develop
14+
- includes changes from 6.68.4 #1892
15+
16+
### version 6.70.7
17+
*Released*: 18 November 2025
18+
- Exclude plate well column lookup for identifying fields determination
19+
20+
### version 6.70.6
21+
*Released*: 18 November 2025
22+
- Issue 52560: Need sample-type specific error for incorrect units during multi-sample-type creation
23+
- Build the correct lookupFilters for units validation for `insertPastedData`
24+
1125
### version 6.70.5
1226
*Released*: 13 November 2025
1327
- Issue 54186: App actions for picklists and assay run delete don't get TransactionAuditEvent
@@ -45,6 +59,11 @@ Components, models, actions, and utility functions for LabKey applications and p
4559
- includes changes from 6.68.2 #1878
4660
- includes changes from 6.68.3 #1884
4761

62+
### version 6.68.4
63+
*Released*: 18 November 2025
64+
- GitHub Issue 111: Query metadata editor indicates all fields as "New Field"
65+
- use the field.lockExistingField property to determine if field is new or existing
66+
4867
### version 6.68.3
4968
*Released*: 4 November 2025
5069
- Issue 53983: Sort fields by caption

packages/components/src/internal/AssayDefinitionModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ export class AssayDefinitionModel extends ImmutableRecord({
301301
sampleIds?: number[] | string[]
302302
): Promise<QueryInfo> {
303303
const sampleResultColumnData = this.getSampleColInResults();
304-
if (sampleResultColumnData) {
304+
if (sampleResultColumnData && sampleResultColumnData.isSampleLookup() /*skip plate well column*/) {
305305
if (sampleResultColumnData.isSingleSampleTypeLookup())
306306
return api.query.getQueryDetails(sampleResultColumnData.lookup.schemaQuery);
307307
else if (sampleIds?.length > 0) {

packages/components/src/internal/components/domainproperties/AdvancedSettings.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ export class AdvancedSettings extends React.PureComponent<AdvancedSettingsProps,
243243
showDefaultValues = () => {
244244
const { field, showDefaultValueSettings } = this.props;
245245

246-
// GitHub Issue #783: we don't yet support default values in the App
246+
// GitHub Issue #298: we don't yet support default values in the App
247247
if (isApp()) return false;
248248

249249
// some domains just don't support default values

packages/components/src/internal/components/domainproperties/DomainForm.tsx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ const DomainFormToolbar: FC<DomainFormToolbarProps> = memo(props => {
140140
(event: ChangeEvent<HTMLInputElement>) => onSearch(event.target.value),
141141
[onSearch]
142142
);
143+
143144
return (
144145
<div className="row domain-field-toolbar">
145146
<div className="col-xs-4">
@@ -151,15 +152,16 @@ const DomainFormToolbar: FC<DomainFormToolbarProps> = memo(props => {
151152
onClick={onAddField}
152153
/>
153154
)}
154-
<ActionButton
155-
containerClass="container--toolbar-button"
156-
buttonClass="domain-toolbar-delete-btn"
157-
onClick={onBulkDeleteClick}
158-
disabled={visibleSelection.size === 0}
159-
>
160-
<i className="fa fa-trash domain-toolbar-export-btn-icon" /> Delete
161-
</ActionButton>
162-
155+
{!domainFormDisplayOptions?.hideAddFieldsButton && (
156+
<ActionButton
157+
containerClass="container--toolbar-button"
158+
buttonClass="domain-toolbar-delete-btn"
159+
onClick={onBulkDeleteClick}
160+
disabled={visibleSelection.size === 0}
161+
>
162+
<i className="fa fa-trash domain-toolbar-export-btn-icon" /> Delete
163+
</ActionButton>
164+
)}
163165
{shouldShowImportExport && (
164166
<ActionButton
165167
containerClass="container--toolbar-button"
@@ -1386,6 +1388,7 @@ export class DomainFormImpl extends React.PureComponent<DomainFormProps, State>
13861388
{showToolbar && (
13871389
<DomainFormToolbar
13881390
disableExport={disableExport}
1391+
domainFormDisplayOptions={domainFormDisplayOptions}
13891392
domainIndex={domainIndex}
13901393
fields={fields}
13911394
onAddField={this.onAddField}

packages/components/src/internal/components/domainproperties/models.test.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1136,6 +1136,12 @@ describe('DomainField', () => {
11361136
);
11371137
});
11381138

1139+
test('getDetailsTextArray, queryMetadata editor', () => {
1140+
// Issue 54226
1141+
const field = DomainField.create({ propertyId: -1, name: 'test', lockExistingField: true });
1142+
expect(field.getDetailsArray().join('')).toBe('');
1143+
});
1144+
11391145
test('serialize, name trim', () => {
11401146
expect(DomainField.serialize(DomainField.create({})).name).toBe(undefined);
11411147
expect(DomainField.serialize(DomainField.create({ name: '' })).name).toBe('');
@@ -1458,7 +1464,7 @@ describe('resolveBaseProperties', () => {
14581464
expect(field.rangeURI).toBe(SAMPLE_TYPE.rangeURI);
14591465
expect(field.required).toBe(true);
14601466

1461-
// GitHub Issue 787
1467+
// GitHub Issue #656
14621468
field = DomainField.resolveBaseProperties({ name: 'SampleId', required: false });
14631469
expect(field.dataType).toBe(SAMPLE_TYPE);
14641470
expect(field.conceptURI).toBe(SAMPLE_TYPE.conceptURI);

packages/components/src/internal/components/domainproperties/models.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1181,7 +1181,7 @@ export class DomainField
11811181
field.dataType = SAMPLE_TYPE;
11821182
field.conceptURI = SAMPLE_TYPE.conceptURI;
11831183
field.rangeURI = SAMPLE_TYPE.rangeURI;
1184-
field.required = !!(raw.required ?? true); // GitHub Issue 787
1184+
field.required = !!(raw.required ?? true); // GitHub Issue #656
11851185
}
11861186
}
11871187

@@ -1407,7 +1407,8 @@ export class DomainField
14071407
const details = [];
14081408
let period = '';
14091409

1410-
if (this.isNew()) {
1410+
// Issue 54226: queryMetadata editor uses lockExistingField to mark existing fields
1411+
if (this.isNew() && !this.lockExistingField) {
14111412
details.push('New Field');
14121413
period = '. ';
14131414
} else if (this.updatedField) {

packages/components/src/internal/components/editable/actions.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1153,11 +1153,19 @@ async function getParsedLookup(
11531153
if (!lookupValueCache.hasOwnProperty(cacheKey)) {
11541154
const columnMetadata = editorModel.getColumnMetadata(column.fieldKey);
11551155

1156+
const lookupFilters = getLookupFilters(
1157+
column,
1158+
columnMetadata?.filteredLookupKeys?.toArray(),
1159+
columnMetadata?.filteredLookupValues?.toArray(),
1160+
columnMetadata?.lookupValueFilters,
1161+
forUpdate
1162+
);
1163+
11561164
lookupValueCache[cacheKey] = findLookupValues({
11571165
column,
11581166
containerPath,
11591167
forUpdate,
1160-
lookupValueFilters: columnMetadata?.lookupValueFilters,
1168+
lookupValueFilters: lookupFilters,
11611169
lookupValues: display,
11621170
});
11631171
}

packages/components/src/internal/components/entities/actions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1327,8 +1327,8 @@ export function getSingleSampleTypeQueryInfo(sampleIds: number[] | string[]): Pr
13271327
})
13281328
.then(result => {
13291329
const sampleTypes = result.values;
1330-
if (sampleTypes.length > 1) {
1331-
resolve(null); // multiple sample types found
1330+
if (sampleTypes.length !== 1) {
1331+
resolve(null);
13321332
return;
13331333
}
13341334
const sampleTypeSQ = new SchemaQuery(SCHEMAS.SAMPLE_SETS.SCHEMA, sampleTypes[0]);

0 commit comments

Comments
 (0)