diff --git a/src/common/table-column.js b/src/common/table-column.js
index 748035a..53b99e5 100644
--- a/src/common/table-column.js
+++ b/src/common/table-column.js
@@ -29,6 +29,7 @@ class TableColumn extends Component {
linkKey: '',
dataIndex: false,
inlineEditable: false,
+ inputType: 'text',
clickable: false,
labelKey: null,
checkbox: false,
diff --git a/src/common/table.js b/src/common/table.js
index b4edea3..d68191a 100644
--- a/src/common/table.js
+++ b/src/common/table.js
@@ -205,7 +205,7 @@ class CustomTable extends Component {
return (
{(this.state.editCell[0] === cellIndex && this.state.editCell[1] === rowIndex ) ? (
- children[cellIndex].props.onInlineChange(event, rowIndex, cellIndex)} ref={ref => { this.activeInput = ref; }} />
+ children[cellIndex].props.onInlineChange(event, rowIndex, cellIndex)} ref={ref => { this.activeInput = ref; }} />
) : (
{cell.map((element, elementIndex) => (
diff --git a/src/signal/edit-signal-mapping.js b/src/signal/edit-signal-mapping.js
index cf5ac2e..0c64108 100644
--- a/src/signal/edit-signal-mapping.js
+++ b/src/signal/edit-signal-mapping.js
@@ -39,7 +39,8 @@ class EditSignalMapping extends React.Component {
this.state = {
dir,
- signals: []
+ signals: [],
+ modifiedSignalIDs : []
};
}
@@ -51,46 +52,60 @@ class EditSignalMapping extends React.Component {
});
return {
- signals: signals
+ signals: signals,
};
}
onClose(canceled) {
+
+ for (let signalID of this.state.modifiedSignalIDs){
+
+ let sig = this.state.signals.find(s => s.id === signalID);
+
+ //dispatch changes to signal
+ AppDispatcher.dispatch({
+ type: 'signals/start-edit',
+ data: sig,
+ token: this.props.sessionToken,
+ });
+ }
+
this.props.onCloseEdit(this.state.dir)
}
handleMappingChange = (event, row, column) => {
- let sig = {}
+
+ let signals = this.state.signals;
+ let modifiedSignals = this.state.modifiedSignalIDs;
+
if (column === 1) { // Name change
- if (event.target.value !== '') {
- sig = this.state.signals[row];
- sig.name = event.target.value;
- }
+ signals[row].name = event.target.value;
+ if (modifiedSignals.find(id => id === signals[row].id) === undefined){
+ modifiedSignals.push(signals[row].id);
+ }
} else if (column === 2) { // unit change
- if (event.target.value !== '') {
- sig = this.state.signals[row];
- sig.unit = event.target.value;
- }
+ signals[row].unit = event.target.value;
+ if (modifiedSignals.find(id => id === signals[row].id) === undefined){
+ modifiedSignals.push(signals[row].id);
+ }
} else if (column === 3) { // scaling factor change
- if (parseFloat(event.target.value) !== 0.0) {
- sig = this.state.signals[row];
- sig.scalingFactor = parseFloat(event.target.value);
+ signals[row].scalingFactor = parseFloat(event.target.value);
+ if (modifiedSignals.find(id => id === signals[row].id) === undefined){
+ modifiedSignals.push(signals[row].id);
}
} else if (column === 0) { //index change
- sig = this.state.signals[row];
- sig.index = parseInt(event.target.value, 10);
+ signals[row].index =parseInt(event.target.value, 10);
+ if (modifiedSignals.find(id => id === signals[row].id) === undefined){
+ modifiedSignals.push(signals[row].id);
+ }
}
- if (sig !== {}){
- //dispatch changes to signal
- AppDispatcher.dispatch({
- type: 'signals/start-edit',
- data: sig,
- token: this.props.sessionToken,
- });
- }
+ this.setState({
+ signals: signals,
+ modifiedSignalIDs: modifiedSignals
+ })
};
@@ -145,7 +160,7 @@ class EditSignalMapping extends React.Component {
|