From 8a50af80333c7b50dcbb0dc91440b2bac56518ed Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Fri, 11 Jun 2021 14:32:56 -0700 Subject: [PATCH] Fixed SHIBUI-1960 --- .../main/resources/i18n/messages.properties | 2 ++ ui/src/app/metadata/domain/transform.js | 25 +++++++++++++++++++ .../app/metadata/editor/MetadataEditorForm.js | 6 +---- .../app/metadata/wizard/MetadataWizardForm.js | 15 +---------- 4 files changed, 29 insertions(+), 19 deletions(-) create mode 100644 ui/src/app/metadata/domain/transform.js diff --git a/backend/src/main/resources/i18n/messages.properties b/backend/src/main/resources/i18n/messages.properties index 2c6a85bbb..50049f5cb 100644 --- a/backend/src/main/resources/i18n/messages.properties +++ b/backend/src/main/resources/i18n/messages.properties @@ -471,6 +471,8 @@ 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.array-items-must-be-unique=Items in list must be unique. +message.valid-duration=Must be a valid duration. +message.required=Missing required property. message.org-name-required=Organization Name is required. message.org-displayName-required=Organization Name is required. diff --git a/ui/src/app/metadata/domain/transform.js b/ui/src/app/metadata/domain/transform.js new file mode 100644 index 000000000..1a3f3f973 --- /dev/null +++ b/ui/src/app/metadata/domain/transform.js @@ -0,0 +1,25 @@ +const invisErrors = ['const', 'oneOf']; + +export const transformErrors = (errors) => { + + let list = [ + ...errors.filter(e => invisErrors.indexOf(e.name) === -1) + ].map(e => { + if (e.name === 'pattern') { + if (e.property.includes('email')) { + e.message = 'message.valid-email'; + } else { + e.message = 'message.valid-duration'; + } + } + + if (e.name === 'type') { + if (e.message === 'should be string') { + e.message = 'message.required' + } + } + return e; + }); + + return list; +} \ No newline at end of file diff --git a/ui/src/app/metadata/editor/MetadataEditorForm.js b/ui/src/app/metadata/editor/MetadataEditorForm.js index eecd61530..46ee851de 100644 --- a/ui/src/app/metadata/editor/MetadataEditorForm.js +++ b/ui/src/app/metadata/editor/MetadataEditorForm.js @@ -8,7 +8,7 @@ import { templates } from '../../form/component'; import { useUiSchema } from '../hooks/schema'; import Alert from 'react-bootstrap/Alert'; -const invisErrors = ['const', 'oneOf'] +import { transformErrors } from '../domain/transform'; function ErrorListTemplate () { return (<>); @@ -26,10 +26,6 @@ export function MetadataEditorForm({ metadata, definition, schema, current, onCh const onSubmit = () => {}; - const transformErrors = (errors) => { - return errors.filter(e => invisErrors.indexOf(e.name) === -1); - } - const onFormChange = (form) => { onChange(definition.bindings ? { ...form, formData: definition.bindings(data, form.formData) }: form); }; diff --git a/ui/src/app/metadata/wizard/MetadataWizardForm.js b/ui/src/app/metadata/wizard/MetadataWizardForm.js index 2ca584438..c508bd267 100644 --- a/ui/src/app/metadata/wizard/MetadataWizardForm.js +++ b/ui/src/app/metadata/wizard/MetadataWizardForm.js @@ -6,7 +6,7 @@ import { fields, widgets } from '../../form/component'; import { templates } from '../../form/component'; import { useUiSchema } from '../hooks/schema'; -const invisErrors = ['const', 'oneOf'] +import { transformErrors } from '../domain/transform'; function ErrorListTemplate () { return (<>); @@ -22,19 +22,6 @@ export function MetadataWizardForm ({ metadata, definition, schema, current, onC const onSubmit = () => {}; - const transformErrors = (errors) => { - let list = [ - ...errors.filter(e => invisErrors.indexOf(e.name) === -1) - ].map(e => { - if (e.name === 'pattern' && e.property.includes('email')) { - e.message = 'message.valid-email'; - } - return e; - }); - - return list; - } - const onFormChange = (form) => { onChange(definition.bindings ? { ...form, formData: definition.bindings(data, form.formData) } : form); };