diff --git a/backend/src/main/resources/i18n/messages.properties b/backend/src/main/resources/i18n/messages.properties index a40305df3..0d76aff03 100644 --- a/backend/src/main/resources/i18n/messages.properties +++ b/backend/src/main/resources/i18n/messages.properties @@ -541,6 +541,7 @@ message.must-be-number=Must be a number. message.name-must-be-unique=Name must be unique. message.uri-valid-format=URI must be valid format. message.id-unique=ID must be unique. +message.name-unique=Service provider name must be unique. message.array-items-must-be-unique=Items in list must be unique. message.valid-duration=Must be a valid duration. message.valid-name=No special characters or whitespace allowed. diff --git a/ui/src/app/metadata/domain/source/definition/SourceDefinition.js b/ui/src/app/metadata/domain/source/definition/SourceDefinition.js index 70e686ed7..a448d2d03 100644 --- a/ui/src/app/metadata/domain/source/definition/SourceDefinition.js +++ b/ui/src/app/metadata/domain/source/definition/SourceDefinition.js @@ -24,6 +24,7 @@ export const SourceBase = { const sources = current ? data.filter(s => s.id !== current.id) : data; const entityIds = sources.map(s => s.entityId); + const names = sources.map(s => s.serviceProviderName); const pattern = group?.validationRegex ? new RegExp(group?.validationRegex) : null; return (formData, errors) => { @@ -32,6 +33,10 @@ export const SourceBase = { errors.entityId.addError('message.id-unique'); } + if (names.indexOf(formData.serviceProviderName) > -1) { + errors.serviceProviderName.addError('message.name-unique'); + } + if (pattern && !pattern?.test(formData.entityId)) { errors.entityId.addError(translator('message.group-pattern-fail', {regex: group?.validationRegex})); }