Add saving + rework

Rework of the async calls to the backend + add saving of the properties
to backend + rework of the loop loading

Issue-ID: CLAMP-447
Change-Id: I126c88b3532613e6d4702e63c39a2735b98d132c
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
diff --git a/ui-react/src/components/dialogs/LoopProperties.js b/ui-react/src/components/dialogs/LoopProperties.js
index 1c0d015..dac7765 100644
--- a/ui-react/src/components/dialogs/LoopProperties.js
+++ b/ui-react/src/components/dialogs/LoopProperties.js
@@ -36,6 +36,7 @@
 	state = {
 		show: true,
 		loopCache: this.props.loopCache,
+		temporaryPropertiesJson: JSON.parse(JSON.stringify(this.props.loopCache.getGlobalProperties())),
 	};
 
 	constructor(props, context) {
@@ -43,6 +44,8 @@
 
 		this.handleClose = this.handleClose.bind(this);
 		this.handleSave = this.handleSave.bind(this);
+		this.handleChange = this.handleChange.bind(this);
+		
 		this.renderDcaeParameters = this.renderDcaeParameters.bind(this);
 		this.renderAllParameters = this.renderAllParameters.bind(this);
 		this.getDcaeParameters = this.getDcaeParameters.bind(this);
@@ -51,6 +54,8 @@
 	componentWillReceiveProps(newProps) {
 		this.setState({
 			loopCache: newProps.loopCache,
+			temporaryPropertiesJson: JSON.parse(JSON.stringify(newProps.loopCache.getGlobalProperties())),
+			
 		});
 	}
 
@@ -59,12 +64,15 @@
 	}
 
 	handleSave(event) {
-		// translate the deploymentParameter into jsonFormat at submit time
-
+		LoopService.updateGlobalProperties(this.state.loopCache.getLoopName(), this.state.temporaryPropertiesJson).then(resp => {
+			this.setState({ show: false });
+			this.props.history.push('/');
+			this.props.loadLoopFunction(this.state.loopCache.getLoopName());
+		});
 	}
 
-	saveAllProperties() {
-
+	handleChange(event) {
+		this.setState({temporaryPropertiesJson:{[event.target.name]: JSON.parse(event.target.value)}});
 	}
 
 	renderAllParameters() {
@@ -77,8 +85,8 @@
 	}
 
 	getDcaeParameters() {
-		if (typeof (this.state.loopCache.getGlobalProperties()) !== "undefined") {
-			return JSON.stringify(this.state.loopCache.getGlobalProperties()["dcaeDeployParameters"]);
+		if (typeof (this.state.temporaryPropertiesJson) !== "undefined") {
+			return JSON.stringify(this.state.temporaryPropertiesJson["dcaeDeployParameters"]);
 		} else {
 			return "";
 		}
@@ -89,7 +97,7 @@
 		return (
 			<Form.Group >
 				<Form.Label>Deploy Parameters</Form.Label>
-				<Form.Control as="textarea" rows="3" name="dcaeDeployParameters">{this.getDcaeParameters()}</Form.Control>
+				<Form.Control as="textarea" rows="3" name="dcaeDeployParameters" onChange={this.handleChange} defaultValue={this.getDcaeParameters()}></Form.Control>
 			</Form.Group>
 		);
 	}