[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/featureGroups/FeatureGroupsActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsActionHelper.js
index 3776c01..a201578 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsActionHelper.js
@@ -1,23 +1,18 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
+/*!
  * 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
- * 
+ *
+ * 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.
- * ============LICENSE_END=========================================================
+ * 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 RestAPIUtil from 'nfvo-utils/RestAPIUtil.js';
 import Configuration from 'sdc-app/config/Configuration.js';
 import {actionTypes as featureGroupsActionConstants} from './FeatureGroupsConstants.js';
@@ -25,22 +20,22 @@
 import EntitlementPoolsActionHelper from 'sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js';
 import LicenseKeyGroupsActionHelper from 'sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsActionHelper.js';
 
-function baseUrl(licenseModelId) {
+function baseUrl(licenseModelId, version) {
 	const restPrefix = Configuration.get('restPrefix');
-	return `${restPrefix}/v1.0/vendor-license-models/${licenseModelId}/feature-groups`;
+	const {id: versionId} = version;
+	return `${restPrefix}/v1.0/vendor-license-models/${licenseModelId}/versions/${versionId}/feature-groups`;
 }
 
 function fetchFeatureGroupsList(licenseModelId, version) {
-	let versionQuery = version ? `?version=${version}` : '';
-	return RestAPIUtil.fetch(`${baseUrl(licenseModelId)}${versionQuery}`);
+	return RestAPIUtil.fetch(`${baseUrl(licenseModelId, version)}`);
 }
 
-function deleteFeatureGroup(licenseModelId, featureGroupId) {
-	return RestAPIUtil.destroy(`${baseUrl(licenseModelId)}/${featureGroupId}`);
+function deleteFeatureGroup(licenseModelId, featureGroupId, version) {
+	return RestAPIUtil.destroy(`${baseUrl(licenseModelId, version)}/${featureGroupId}`);
 }
 
-function addFeatureGroup(licenseModelId, featureGroup) {
-	return RestAPIUtil.create(baseUrl(licenseModelId), {
+function addFeatureGroup(licenseModelId, featureGroup, version) {
+	return RestAPIUtil.post(baseUrl(licenseModelId, version), {
 		name: featureGroup.name,
 		description: featureGroup.description,
 		partNumber: featureGroup.partNumber,
@@ -49,13 +44,13 @@
 	});
 }
 
-function updateFeatureGroup(licenseModelId, previousFeatureGroup, featureGroup) {
+function updateFeatureGroup(licenseModelId, previousFeatureGroup, featureGroup, version) {
 
 	const {licenseKeyGroupsIds = []} = featureGroup;
 	const {licenseKeyGroupsIds: prevLicenseKeyGroupsIds = []} = previousFeatureGroup;
 	const {entitlementPoolsIds = []} = featureGroup;
 	const {entitlementPoolsIds: prevEntitlementPoolsIds = []} = previousFeatureGroup;
-	return RestAPIUtil.save(`${baseUrl(licenseModelId)}/${featureGroup.id}`, {
+	return RestAPIUtil.put(`${baseUrl(licenseModelId, version)}/${featureGroup.id}`, {
 		name: featureGroup.name,
 		description: featureGroup.description,
 		partNumber: featureGroup.partNumber,
@@ -75,28 +70,37 @@
 		}));
 	},
 
-	deleteFeatureGroup(dispatch, {licenseModelId, featureGroupId}) {
-		return deleteFeatureGroup(licenseModelId, featureGroupId).then(() => dispatch({
+	deleteFeatureGroup(dispatch, {licenseModelId, featureGroupId, version}) {
+		return deleteFeatureGroup(licenseModelId, featureGroupId, version).then(() => dispatch({
 			type: featureGroupsActionConstants.DELETE_FEATURE_GROUPS,
 			featureGroupId
 		}));
 	},
 
-	saveFeatureGroup(dispatch, {licenseModelId, previousFeatureGroup, featureGroup}) {
+	saveFeatureGroup(dispatch, {licenseModelId, previousFeatureGroup, featureGroup, version}) {
 		if (previousFeatureGroup) {
-			return updateFeatureGroup(licenseModelId, previousFeatureGroup, featureGroup).then(() => dispatch({
-				type: featureGroupsActionConstants.EDIT_FEATURE_GROUPS,
-				featureGroup
-			}));
+			return updateFeatureGroup(licenseModelId, previousFeatureGroup, featureGroup, version).then(() =>{
+				dispatch({
+					type: featureGroupsActionConstants.EDIT_FEATURE_GROUPS,
+					featureGroup
+				});
+				EntitlementPoolsActionHelper.fetchEntitlementPoolsList(dispatch, {licenseModelId, version});
+				LicenseKeyGroupsActionHelper.fetchLicenseKeyGroupsList(dispatch, {licenseModelId, version});
+			});
 		}
 		else {
-			return addFeatureGroup(licenseModelId, featureGroup).then(response => dispatch({
-				type: featureGroupsActionConstants.ADD_FEATURE_GROUPS,
-				featureGroup: {
-					...featureGroup,
-					id: response.value
-				}
-			}));
+			return addFeatureGroup(licenseModelId, featureGroup, version).then(response => {
+				dispatch({
+					type: featureGroupsActionConstants.ADD_FEATURE_GROUPS,
+					featureGroup: {
+						...featureGroup,
+						id: response.value,
+						referencingLicenseAgreements: []
+					}
+				});
+				EntitlementPoolsActionHelper.fetchEntitlementPoolsList(dispatch, {licenseModelId, version});
+				LicenseKeyGroupsActionHelper.fetchLicenseKeyGroupsList(dispatch, {licenseModelId, version});
+			});
 		}
 	},
 
@@ -107,23 +111,9 @@
 		});
 	},
 
-	selectFeatureGroupsEditorEntitlementPoolsButtonTab(dispatch, {buttonTab}) {
-		dispatch({
-			type: featureGroupsActionConstants.featureGroupsEditor.SELECTED_ENTITLEMENT_POOLS_BUTTONTAB,
-			buttonTab
-		});
-	},
-
-	selectFeatureGroupsEditorLicenseKeyGroupsButtonTab(dispatch, {buttonTab}) {
-		dispatch({
-			type: featureGroupsActionConstants.featureGroupsEditor.SELECTED_LICENSE_KEY_GROUPS_BUTTONTAB,
-			buttonTab
-		});
-	},
-
-	openFeatureGroupsEditor(dispatch, {featureGroup, licenseModelId}) {
-		EntitlementPoolsActionHelper.fetchEntitlementPoolsList(dispatch, {licenseModelId});
-		LicenseKeyGroupsActionHelper.fetchLicenseKeyGroupsList(dispatch, {licenseModelId});
+	openFeatureGroupsEditor(dispatch, {featureGroup, licenseModelId, version}) {
+		EntitlementPoolsActionHelper.fetchEntitlementPoolsList(dispatch, {licenseModelId, version});
+		LicenseKeyGroupsActionHelper.fetchLicenseKeyGroupsList(dispatch, {licenseModelId, version});
 		dispatch({
 			type: featureGroupsActionConstants.featureGroupsEditor.OPEN,
 			featureGroup
@@ -136,26 +126,6 @@
 		});
 	},
 
-	featureGroupsEditorDataChanged(dispatch, {deltaData}) {
-		dispatch({
-			type: featureGroupsActionConstants.featureGroupsEditor.DATA_CHANGED,
-			deltaData
-		});
-	},
-
-	hideDeleteConfirm(dispatch) {
-		dispatch({
-			type: featureGroupsActionConstants.FEATURE_GROUPS_DELETE_CONFIRM,
-			featureGroupToDelete: false
-		});
-	},
-
-	openDeleteFeatureGroupConfirm(dispatch, {featureGroup}) {
-		dispatch({
-			type: featureGroupsActionConstants.FEATURE_GROUPS_DELETE_CONFIRM,
-			featureGroupToDelete: featureGroup
-		});
-	},
 
 	switchVersion(dispatch, {licenseModelId, version}) {
 		LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {