Add app name validating feature into APPM publisher UI

4.x.x
Shamalka Navod 5 years ago committed by Dharmakeerthi Lasantha
parent c36761baa6
commit 0629d5af71

@ -86,12 +86,52 @@ class NewAppDetailsForm extends React.Component {
application.type = 'WEB_CLIP'; application.type = 'WEB_CLIP';
application.deviceType = 'ALL'; application.deviceType = 'ALL';
} }
this.validateAppName(name, application.deviceType, application);
this.props.onSuccessApplicationData(application);
} }
}); });
}; };
validateAppName = (name, deviceType, application) => {
const config = this.props.context;
axios
.get(
window.location.origin +
config.serverConfig.invoker.uri +
config.serverConfig.invoker.publisher +
`/applications/device-type/${deviceType}/app-name/${name}`,
)
.then(res => {
if (res.status === 200) {
this.props.onSuccessApplicationData(application);
}
})
.catch(error => {
if (error.hasOwnProperty('response') && error.response.status === 403) {
this.setState({
loading: false,
});
} else if (
error.hasOwnProperty('response') &&
error.response.status === 409
) {
this.props.form.setFields({
name: {
value: name,
errors: [
new Error('App name already exists, Please try another'),
],
},
});
} else {
handleApiError(
error,
'Error occurred while trying to validate app name.',
true,
);
}
});
};
componentDidMount() { componentDidMount() {
this.getCategories(); this.getCategories();
this.getTags(); this.getTags();
@ -331,6 +371,18 @@ class NewAppDetailsForm extends React.Component {
)} )}
{/* app name*/} {/* app name*/}
<Authorized
permission="/permission/admin/app-mgt/publisher/application/view"
no={
<Alert
message="You don't have permission to compare application names. If you have update permission,
you still can add application but app name should be unique."
type="warning"
banner
closable
/>
}
/>
<Form.Item {...formItemLayout} label="App Name"> <Form.Item {...formItemLayout} label="App Name">
{getFieldDecorator('name', { {getFieldDecorator('name', {
rules: [ rules: [

Loading…
Cancel
Save