[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/onboard/Onboard.js b/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js
new file mode 100644
index 0000000..b13ccbb
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js
@@ -0,0 +1,90 @@
+/*!
+ * 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 {connect} from 'react-redux';
+import OnboardView from './OnboardView.jsx';
+import OnboardingActionHelper from '../OnboardingActionHelper.js';
+import OnboardingCatalogActionHelper from './onboardingCatalog/OnboardingCatalogActionHelper.js';
+import OnboardActionHelper from './OnboardActionHelper.js';
+import LicenseModelCreationActionHelper from '../licenseModel/creation/LicenseModelCreationActionHelper.js';
+import SoftwareProductCreationActionHelper from '../softwareProduct/creation/SoftwareProductCreationActionHelper.js';
+import sortByStringProperty from 'nfvo-utils/sortByStringProperty.js';
+
+export const mapStateToProps = ({
+	onboard: {onboardingCatalog, activeTab, searchValue}, licenseModelList, finalizedLicenseModelList, softwareProductList, finalizedSoftwareProductList
+}) => {
+
+	const reduceLicenseModelList = (accum, vlm)=> {
+		let currentSoftwareProductList = sortByStringProperty(
+			finalizedSoftwareProductList
+				.filter(vsp => vsp.vendorId === vlm.id),
+			'name'
+		);
+		accum.push({...vlm, softwareProductList: currentSoftwareProductList});
+		return accum;
+	};
+
+	finalizedLicenseModelList = sortByStringProperty(
+		licenseModelList
+			.filter(vlm => finalizedLicenseModelList.map(finalVlm => finalVlm.id).includes(vlm.id))
+			.reduce(reduceLicenseModelList, []),
+		'vendorName'
+	);
+
+	finalizedSoftwareProductList = sortByStringProperty(
+		softwareProductList
+			.filter(vsp => finalizedSoftwareProductList.map(finalVsp => finalVsp.id).includes(vsp.id)),
+		'name'
+	);
+
+
+	let {activeTab: catalogActiveTab, vendorCatalog: {vspOverlay, selectedVendor}} = onboardingCatalog;
+
+	return {
+		finalizedLicenseModelList,
+		finalizedSoftwareProductList,
+		licenseModelList,
+		softwareProductList,
+		activeTab,
+		catalogActiveTab,
+		searchValue,
+		vspOverlay,
+		selectedVendor
+	};
+};
+
+const mapActionsToProps = (dispatch) => {
+	return {
+		onSelectLicenseModel({id: licenseModelId, version}) {
+			OnboardingActionHelper.navigateToLicenseModelOverview(dispatch, {licenseModelId, version});
+		},
+		onSelectSoftwareProduct(softwareProduct) {
+			let {id: softwareProductId, vendorId: licenseModelId, licensingVersion, version} = softwareProduct;
+			OnboardingActionHelper.navigateToSoftwareProductLandingPage(dispatch, {softwareProductId, version, licenseModelId, licensingVersion});
+		},
+		onAddSoftwareProductClick: (vendorId) => SoftwareProductCreationActionHelper.open(dispatch, vendorId),
+		onAddLicenseModelClick: () => LicenseModelCreationActionHelper.open(dispatch),
+		onVspOverlayChange: (vendor) => OnboardingCatalogActionHelper.changeVspOverlay(dispatch, vendor),
+		closeVspOverlay: () => OnboardingCatalogActionHelper.closeVspOverlay(dispatch),
+		onCatalogTabClick: (tab) => OnboardingCatalogActionHelper.changeActiveTab(dispatch, tab),
+		onTabClick: (tab) => OnboardActionHelper.changeActiveTab(dispatch, tab),
+		onSearch: (searchValue) => OnboardActionHelper.changeSearchValue(dispatch, searchValue),
+		onVendorSelect: (vendor) => OnboardingCatalogActionHelper.onVendorSelect(dispatch, {vendor}),
+		onMigrate: ({softwareProduct}) => OnboardingCatalogActionHelper.onMigrate(dispatch, softwareProduct)
+	};
+};
+
+export default connect(mapStateToProps, mapActionsToProps)(OnboardView);