diff --git a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/group_selector.js b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/group_selector.js index 9adbd0e3b661..fbaab1584fc5 100644 --- a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/group_selector.js +++ b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/group_selector.js @@ -231,6 +231,7 @@ export class GroupSelector extends Component { @@ -254,5 +255,6 @@ export class GroupSelector extends Component { } GroupSelector.propTypes = { jobs: PropTypes.array.isRequired, + allJobIds: PropTypes.array.isRequired, refreshJobs: PropTypes.func.isRequired, }; diff --git a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/new_group_input/new_group_input.js b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/new_group_input/new_group_input.js index c9220ff8ced5..102544ee49f2 100644 --- a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/new_group_input/new_group_input.js +++ b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/new_group_input/new_group_input.js @@ -34,7 +34,16 @@ export class NewGroupInput extends Component { changeTempNewGroup = (e) => { const tempNewGroupName = e.target.value; - const groupsValidationError = (tempNewGroupName === '') ? '' : validateGroupNames([tempNewGroupName]).message; + let groupsValidationError = ''; + + if (tempNewGroupName === '') { + groupsValidationError = ''; + } else if (this.props.allJobIds.includes(tempNewGroupName)) { + groupsValidationError = 'A job with this ID already exists. Groups and jobs cannot use the same ID.'; + } else { + groupsValidationError = validateGroupNames([tempNewGroupName]).message; + } + this.setState({ tempNewGroupName, groupsValidationError, @@ -101,4 +110,5 @@ export class NewGroupInput extends Component { NewGroupInput.propTypes = { addNewGroup: PropTypes.func.isRequired, + allJobIds: PropTypes.array.isRequired, }; diff --git a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/multi_job_actions.js b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/multi_job_actions.js index 983815975272..ae521f1a4f9d 100644 --- a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/multi_job_actions.js +++ b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/multi_job_actions.js @@ -34,6 +34,7 @@ export class MultiJobActions extends Component { @@ -51,6 +52,7 @@ export class MultiJobActions extends Component { } MultiJobActions.propTypes = { selectedJobs: PropTypes.array.isRequired, + allJobIds: PropTypes.array.isRequired, showStartDatafeedModal: PropTypes.func.isRequired, showDeleteJobModal: PropTypes.func.isRequired, refreshJobs: PropTypes.func.isRequired,