[SDC-29] Amdocs OnBoard 1707 initial commit.

Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370
Signed-off-by: AviZi <avi.ziv@amdocs.com>
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationView.jsx
index 4dccc9e..8004046 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationView.jsx
@@ -1,7 +1,24 @@
+/*!
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
 import React from 'react';
 import i18n from 'nfvo-utils/i18n/i18n.js';
-import ValidationInput from 'nfvo-components/input/validation/ValidationInput.jsx';
-import ValidationForm from 'nfvo-components/input/validation/ValidationForm.jsx';
+import Validator from 'nfvo-utils/Validator.js';
+import Input from 'nfvo-components/input/validation/Input.jsx';
+import Form from 'nfvo-components/input/validation/Form.jsx';
+import {LICENSE_MODEL_CREATION_FORM_NAME} from './LicenseModelCreationConstants.js';
 
 const LicenseModelPropType = React.PropTypes.shape({
 	id: React.PropTypes.string,
@@ -13,39 +30,49 @@
 
 	static propTypes = {
 		data: LicenseModelPropType,
+		VLMNames: React.PropTypes.object,
 		onDataChanged: React.PropTypes.func.isRequired,
 		onSubmit: React.PropTypes.func.isRequired,
+		onValidateForm: React.PropTypes.func.isRequired,
 		onCancel: React.PropTypes.func.isRequired
 	};
 
 	render() {
-		let {data = {}, onDataChanged} = this.props;
+		let {data = {}, onDataChanged, genericFieldInfo} = this.props;
 		let {vendorName, description} = data;
 		return (
 			<div>
-				<ValidationForm
+				{genericFieldInfo && <Form
 					ref='validationForm'
 					hasButtons={true}
 					onSubmit={ () => this.submit() }
 					onReset={ () => this.props.onCancel() }
-					labledButtons={true}>
-					<ValidationInput
+					labledButtons={true}
+					isValid={this.props.isFormValid}
+					formReady={this.props.formReady}
+					onValidateForm={() => this.validate() }>
+					<Input
 						value={vendorName}
 						label={i18n('Vendor Name')}
-						ref='vendor-name'
-						onChange={vendorName => onDataChanged({vendorName})}
-						validations={{maxLength: 25, required: true}}
+						data-test-id='vendor-name'
+						onChange={vendorName => onDataChanged({vendorName}, LICENSE_MODEL_CREATION_FORM_NAME, {vendorName: name => this.validateName(name)})}
+						isValid={genericFieldInfo.vendorName.isValid}
+						errorText={genericFieldInfo.vendorName.errorText}
 						type='text'
+						isRequired={true}
 						className='field-section'/>
-					<ValidationInput
+					<Input
+						isRequired={true}
 						value={description}
 						label={i18n('Description')}
-						ref='description'
-						onChange={description => onDataChanged({description})}
-						validations={{maxLength: 1000, required: true}}
+						data-test-id='vendor-description'
+						overlayPos='bottom'
+						onChange={description => onDataChanged({description}, LICENSE_MODEL_CREATION_FORM_NAME)}
+						isValid={genericFieldInfo.description.isValid}
+						errorText={genericFieldInfo.description.errorText}
 						type='textarea'
 						className='field-section'/>
-				</ValidationForm>
+				</Form>}
 			</div>
 		);
 	}
@@ -55,6 +82,18 @@
 		const {data:licenseModel} = this.props;
 		this.props.onSubmit(licenseModel);
 	}
+
+	validateName(value) {
+		const {data: {id}, VLMNames} = this.props;
+		const isExists = Validator.isItemNameAlreadyExistsInList({itemId: id, itemName: value, list: VLMNames});
+
+		return !isExists ?  {isValid: true, errorText: ''} :
+			{isValid: false, errorText: i18n('License model by the name \'' + value + '\' already exists. License model name must be unique')};
+	}
+
+	validate() {
+		this.props.onValidateForm(LICENSE_MODEL_CREATION_FORM_NAME);
+	}
 }
 
 export default LicenseModelCreationView;