diff --git a/webui/src/components/Shared/Form.js b/webui/src/components/Shared/Form.js index 469dc73d3..a9edf2228 100644 --- a/webui/src/components/Shared/Form.js +++ b/webui/src/components/Shared/Form.js @@ -165,14 +165,15 @@ class Form extends Component { const { formData, status, errors } = data; const { disableSubmitButton } = this.state; - // I think there is a library bug React or Jsonschema - // For workaround, I'll simply add 'formData' in setState - this.setState({ - disableSubmitButton: status !== 'editing' || errors.length !== 0, - formData - }); - - console.log(data); + let check = (status !== 'editing' || errors.length !== 0); + if (check !== disableSubmitButton) { + // I think there is a library bug React or Jsonschema + // For workaround, I'll simply add 'formData' in setState + this.setState({ + disableSubmitButton: check, + formData + }); + } } render() { @@ -191,6 +192,7 @@ class Form extends Component { schema, uiSchema, formData, + validate, onHide, onSubmit } = this.props; @@ -211,6 +213,7 @@ class Form extends Component { fields={fields} FieldTemplate={CustomFieldTemplate} liveValidate + validate={validate} showErrorList={false} transformErrors={transformErrors} autocomplete="off" diff --git a/webui/src/components/Subscriber/Edit.js b/webui/src/components/Subscriber/Edit.js index 931752358..08bfd4c8c 100644 --- a/webui/src/components/Subscriber/Edit.js +++ b/webui/src/components/Subscriber/Edit.js @@ -164,19 +164,35 @@ class Edit extends Component { onSubmit: PropTypes.func, } + validate = (formData, errors) => { + const { subscribers } = this.props; + const { imsi } = formData; + + if (subscribers.filter(subscriber => subscriber.imsi === imsi).length > 0) { + errors.imsi.addError("IMSI has already been registered"); + } + + return errors; + } + render() { + const { + validate, + } = this; + const { visible, onHide, - onSubmit + onSubmit, } = this.props; return (
diff --git a/webui/src/containers/SubscriberContainer.js b/webui/src/containers/SubscriberContainer.js index 79da685ba..de632525a 100644 --- a/webui/src/containers/SubscriberContainer.js +++ b/webui/src/containers/SubscriberContainer.js @@ -141,6 +141,7 @@ class SubscriberContainer extends Component { />