diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 7924ca9639..126ca4aeaa 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "6.68.3", + "version": "6.68.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "6.68.3", + "version": "6.68.4", "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 2ec5c3a39c..01ed171d49 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "6.68.3", + "version": "6.68.4", "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 5b74511244..8eb45eb1b2 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -1,6 +1,11 @@ # @labkey/components Components, models, actions, and utility functions for LabKey applications and pages +### version 6.68.4 +*Released*: 18 November 2025 +- GitHub Issue 111: Query metadata editor indicates all fields as "New Field" + - use the field.lockExistingField property to determine if field is new or existing + ### version 6.68.3 *Released*: 4 November 2025 - Issue 53983: Sort fields by caption diff --git a/packages/components/src/internal/components/domainproperties/DomainForm.tsx b/packages/components/src/internal/components/domainproperties/DomainForm.tsx index 14b1faa9d7..794fad3cd9 100644 --- a/packages/components/src/internal/components/domainproperties/DomainForm.tsx +++ b/packages/components/src/internal/components/domainproperties/DomainForm.tsx @@ -140,6 +140,7 @@ const DomainFormToolbar: FC = memo(props => { (event: ChangeEvent) => onSearch(event.target.value), [onSearch] ); + return (
@@ -151,15 +152,16 @@ const DomainFormToolbar: FC = memo(props => { onClick={onAddField} /> )} - - Delete - - + {!domainFormDisplayOptions?.hideAddFieldsButton && ( + + Delete + + )} {shouldShowImportExport && ( {showToolbar && ( { ); }); + test('getDetailsTextArray, queryMetadata editor', () => { + // Issue 54226 + const field = DomainField.create({ propertyId: -1, name: 'test', lockExistingField: true }); + expect(field.getDetailsArray().join('')).toBe(''); + }); + test('serialize, name trim', () => { expect(DomainField.serialize(DomainField.create({})).name).toBe(undefined); expect(DomainField.serialize(DomainField.create({ name: '' })).name).toBe(''); diff --git a/packages/components/src/internal/components/domainproperties/models.tsx b/packages/components/src/internal/components/domainproperties/models.tsx index 901b6b9260..21a85a2481 100644 --- a/packages/components/src/internal/components/domainproperties/models.tsx +++ b/packages/components/src/internal/components/domainproperties/models.tsx @@ -1407,7 +1407,8 @@ export class DomainField const details = []; let period = ''; - if (this.isNew()) { + // Issue 54226: queryMetadata editor uses lockExistingField to mark existing fields + if (this.isNew() && !this.lockExistingField) { details.push('New Field'); period = '. '; } else if (this.updatedField) {