Add collaboration feature

Issue-ID: SDC-767
Change-Id: I14fb4c1f54086ed03a56a7ff7fab9ecd40381795
Signed-off-by: talig <talig@amdocs.com>
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreation.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreation.js
index 39b3c15..71f4171 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreation.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreation.js
@@ -14,34 +14,42 @@
  * permissions and limitations under the License.
  */
 import {connect} from 'react-redux';
-import OnboardingActionHelper from 'sdc-app/onboarding/OnboardingActionHelper.js';
 import LicenseModelCreationActionHelper from './LicenseModelCreationActionHelper.js';
 import LicenseModelCreationView from './LicenseModelCreationView.jsx';
 import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
 import LicenseModelActionHelper from 'sdc-app/onboarding/licenseModel/LicenseModelActionHelper.js';
+import VersionsPageActionHelper from 'sdc-app/onboarding/versionsPage/VersionsPageActionHelper.js';
+import {itemTypes as versionItemTypes} from 'sdc-app/onboarding/versionsPage/VersionsPageConstants.js';
+import ScreensHelper from 'sdc-app/common/helpers/ScreensHelper.js';
+import {enums, screenTypes} from 'sdc-app/onboarding/OnboardingConstants.js';
+import PermissionsActionHelper from 'sdc-app/onboarding/permissions/PermissionsActionHelper.js';
 
-export const mapStateToProps = ({licenseModelList, licenseModel: {licenseModelCreation}}) => {
+export const mapStateToProps = ({users: {usersList}, licenseModelList, licenseModel: {licenseModelCreation}}) => {
 	let {genericFieldInfo} = licenseModelCreation;
 	let isFormValid = ValidationHelper.checkFormValid(genericFieldInfo);
 
 	let VLMNames = {};
 	for (let i = 0; i < licenseModelList.length; i++) {
-		VLMNames[licenseModelList[i].vendorName.toLowerCase()] = licenseModelList[i].id;
+		VLMNames[licenseModelList[i].name.toLowerCase()] = licenseModelList[i].id;
 	}
 
-	return {...licenseModelCreation, isFormValid: isFormValid, VLMNames};
+	return {...licenseModelCreation, isFormValid: isFormValid, VLMNames, usersList};
 };
 
 export const mapActionsToProps = (dispatch) => {
 	return {
 		onDataChanged: (deltaData, formName, customValidations) => ValidationHelper.dataChanged(dispatch, {deltaData, formName, customValidations}),
 		onCancel: () => LicenseModelCreationActionHelper.close(dispatch),
-		onSubmit: (licenseModel) => {
+		onSubmit: (licenseModel, usersList) => {
 			LicenseModelCreationActionHelper.close(dispatch);
 			LicenseModelCreationActionHelper.createLicenseModel(dispatch, {licenseModel}).then(response => {
-				LicenseModelActionHelper.fetchLicenseModels(dispatch).then(() => {
-					OnboardingActionHelper.navigateToLicenseModelOverview(dispatch, {licenseModelId: response.value});
-				});
+				let {itemId, version} = response;
+				LicenseModelActionHelper.fetchLicenseModels(dispatch).then(() =>
+					PermissionsActionHelper.fetchItemUsers(dispatch, {itemId, allUsers: usersList}).then(() =>
+						VersionsPageActionHelper.fetchVersions(dispatch, {itemType: versionItemTypes.LICENSE_MODEL, itemId}).then(() =>
+							ScreensHelper.loadScreen(dispatch, {screen: enums.SCREEN.LICENSE_MODEL_OVERVIEW, screenType: screenTypes.LICENSE_MODEL,
+								props: {licenseModelId: itemId, version}})
+				)));
 			});
 		},
 		onValidateForm: (formName) => ValidationHelper.validateForm(dispatch, formName)
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationActionHelper.js
index 51f5b7f..87df138 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationActionHelper.js
@@ -61,7 +61,13 @@
 	},
 
 	createLicenseModel(dispatch, {licenseModel}){
-		return createLicenseModel(licenseModel);
+		return createLicenseModel(licenseModel).then(result => {
+			dispatch({
+				type: actionTypes.LICENSE_MODEL_CREATED,
+				result
+			});
+			return result;
+		});
 	}
 
 };
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationConstants.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationConstants.js
index 28f1175..e9b1c46 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationConstants.js
@@ -17,7 +17,8 @@
 
 export const actionTypes = keyMirror({
 	OPEN: null,
-	CLOSE: null
+	CLOSE: null,
+	LICENSE_MODEL_CREATED: null
 });
 
 export const LICENSE_MODEL_CREATION_FORM_NAME = 'LMCREATIONFORM';
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 8004046..948bdc1 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreationView.jsx
@@ -14,27 +14,29 @@
  * permissions and limitations under the License.
  */
 import React from 'react';
+import PropTypes from 'prop-types';
 import i18n from 'nfvo-utils/i18n/i18n.js';
 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,
-	vendorName: React.PropTypes.string,
-	description: React.PropTypes.string
+const LicenseModelPropType = PropTypes.shape({
+	id: PropTypes.string,
+	vendorName: PropTypes.string,
+	description: PropTypes.string
 });
 
 class LicenseModelCreationView extends React.Component {
 
 	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
+		VLMNames: PropTypes.object,
+		usersList: PropTypes.array,
+		onDataChanged: PropTypes.func.isRequired,
+		onSubmit: PropTypes.func.isRequired,
+		onValidateForm: PropTypes.func.isRequired,
+		onCancel: PropTypes.func.isRequired
 	};
 
 	render() {
@@ -46,6 +48,7 @@
 					ref='validationForm'
 					hasButtons={true}
 					onSubmit={ () => this.submit() }
+					submitButtonText={i18n('Create')}
 					onReset={ () => this.props.onCancel() }
 					labledButtons={true}
 					isValid={this.props.isFormValid}
@@ -79,8 +82,8 @@
 
 
 	submit() {
-		const {data:licenseModel} = this.props;
-		this.props.onSubmit(licenseModel);
+		const {data:licenseModel, usersList} = this.props;
+		this.props.onSubmit(licenseModel, usersList);
 	}
 
 	validateName(value) {