From 47570d74d0a764a7802bd67658feb3a5d64829c2 Mon Sep 17 00:00:00 2001 From: Markus Grigull Date: Thu, 13 Jul 2017 11:39:16 +0200 Subject: [PATCH] Ensure unique node and simulator names in dialogs Node names are checked to be unique in dialogs Simulator names are checked to be unique in dialogs on one node --- src/components/dialog/edit-node.js | 4 ++-- src/components/dialog/edit-simulator.js | 2 +- src/components/dialog/new-node.js | 4 ++-- src/components/dialog/new-simulator.js | 2 +- src/containers/simulators.js | 8 ++++---- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/components/dialog/edit-node.js b/src/components/dialog/edit-node.js index da72a4a..b6475c3 100644 --- a/src/components/dialog/edit-node.js +++ b/src/components/dialog/edit-node.js @@ -60,11 +60,11 @@ class NewNodeDialog extends React.Component { var endpoint = true; var name = true; - if (this.state.name === '') { + if (this.state.name === '' || this.props.nodes.find(node => node._id !== this.state._id && node.name === this.state.name) !== undefined) { name = false; } - if (this.state.endpoint === '') { + if (this.state.endpoint === '' || this.props.nodes.find(node => node._id !== this.state._id && node.endpoint === this.state.endpoint) !== undefined) { endpoint = false; } diff --git a/src/components/dialog/edit-simulator.js b/src/components/dialog/edit-simulator.js index ef8082a..159b45c 100644 --- a/src/components/dialog/edit-simulator.js +++ b/src/components/dialog/edit-simulator.js @@ -63,7 +63,7 @@ class EditSimulatorDialog extends Component { // check all controls var name = true; - if (this.state.name === '') { + if (this.state.name === '' || this.props.node.simulators.find(simulator => this.props.simulator.name !== this.state.name && simulator.name === this.state.name) !== undefined) { name = false; } diff --git a/src/components/dialog/new-node.js b/src/components/dialog/new-node.js index ae89a35..44afa9d 100644 --- a/src/components/dialog/new-node.js +++ b/src/components/dialog/new-node.js @@ -59,11 +59,11 @@ class NewNodeDialog extends React.Component { var endpoint = true; var name = true; - if (this.state.name === '') { + if (this.state.name === '' || this.props.nodes.find(node => node.name === this.state.name) !== undefined) { name = false; } - if (this.state.endpoint === '') { + if (this.state.endpoint === '' || this.props.nodes.find(node => node.endpoint === this.state.endpoint) !== undefined) { endpoint = false; } diff --git a/src/components/dialog/new-simulator.js b/src/components/dialog/new-simulator.js index 8e22e3d..f4c293d 100644 --- a/src/components/dialog/new-simulator.js +++ b/src/components/dialog/new-simulator.js @@ -60,7 +60,7 @@ class NewSimulatorDialog extends Component { // check all controls var name = true; - if (this.state.name === '') { + if (this.state.name === '' || this.props.node.simulators.find(simulator => simulator.name === this.state.name) !== undefined) { name = false; } diff --git a/src/containers/simulators.js b/src/containers/simulators.js index acaf5ad..3e258a6 100644 --- a/src/containers/simulators.js +++ b/src/containers/simulators.js @@ -200,12 +200,12 @@ class Simulators extends Component { this.onTreeDataChange(treeData)} onNodeDelete={(node) => this.showDeleteNodeModal(node)} onNodeEdit={(node) => this.showEditNodeModal(node)} onNodeAdd={(node) => this.showAddSimulatorModal(node)} onSimulatorEdit={(node, index) => this.showEditSimulatorModal(node, index)} onSimulatorDelete={(node, index) => this.showDeleteSimulatorModal(node, index)} /> - this.closeNewNodeModal(data)} /> - this.closeEditNodeModal(data)} /> - this.closeAddSimulatorModal(data)} /> + this.closeNewNodeModal(data)} nodes={this.state.nodes} /> + this.closeEditNodeModal(data)} nodes={this.state.nodes} /> + this.closeAddSimulatorModal(data)} node={this.state.modalData}/> {this.state.editSimulatorModal && - this.closeEditSimulatorModal(data)} /> + this.closeEditSimulatorModal(data)} node={this.state.modalData} /> }