Adding Prettier and fixing up eslint version
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / onboard / Onboard.js
index b13ccbb..a1e0018 100644 (file)
-/*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+/*
+ * Copyright © 2016-2018 European Support Limited
  *
  * 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.
+ * 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 { 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';
+import { tabsMapping } from './onboardingCatalog/OnboardingCatalogConstants.js';
+import { itemsType } from './filter/FilterConstants.js';
 
 export const mapStateToProps = ({
-       onboard: {onboardingCatalog, activeTab, searchValue}, licenseModelList, finalizedLicenseModelList, softwareProductList, finalizedSoftwareProductList
+    onboard: { onboardingCatalog, activeTab, searchValue, filter },
+    licenseModelList,
+    users,
+    archivedLicenseModelList,
+    archivedSoftwareProductList,
+    finalizedLicenseModelList,
+    softwareProductList,
+    finalizedSoftwareProductList
 }) => {
+    const fullSoftwareProducts = softwareProductList
+        .filter(
+            vsp =>
+                !finalizedSoftwareProductList.find(fvsp => fvsp.id === vsp.id)
+        )
+        .concat(finalizedSoftwareProductList);
 
-       const reduceLicenseModelList = (accum, vlm)=> {
-               let currentSoftwareProductList = sortByStringProperty(
-                       finalizedSoftwareProductList
-                               .filter(vsp => vsp.vendorId === vlm.id),
-                       'name'
-               );
-               accum.push({...vlm, softwareProductList: currentSoftwareProductList});
-               return accum;
-       };
+    const reduceLicenseModelList = (accum, vlm) => {
+        let currentSoftwareProductList = sortByStringProperty(
+            fullSoftwareProducts.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'
-       );
+    licenseModelList = sortByStringProperty(
+        licenseModelList.reduce(reduceLicenseModelList, []),
+        'name'
+    );
 
-       finalizedSoftwareProductList = sortByStringProperty(
-               softwareProductList
-                       .filter(vsp => finalizedSoftwareProductList.map(finalVsp => finalVsp.id).includes(vsp.id)),
-               'name'
-       );
+    finalizedLicenseModelList = sortByStringProperty(
+        finalizedLicenseModelList.reduce(reduceLicenseModelList, []),
+        'name'
+    );
 
+    const fullLicenseModelList = licenseModelList
+        .filter(
+            vlm => !finalizedLicenseModelList.find(fvlm => fvlm.id === vlm.id)
+        )
+        .concat(finalizedLicenseModelList);
 
-       let {activeTab: catalogActiveTab, vendorCatalog: {vspOverlay, selectedVendor}} = onboardingCatalog;
+    let {
+        activeTab: catalogActiveTab,
+        vendorCatalog: { vspOverlay, selectedVendor }
+    } = onboardingCatalog;
+    if (filter.byVendorView) {
+        catalogActiveTab = tabsMapping.BY_VENDOR;
+    } else if (filter.itemsType && filter.itemsType === itemsType.ARCHIVED) {
+        catalogActiveTab = tabsMapping.ARCHIVE;
+    }
 
-       return {
-               finalizedLicenseModelList,
-               finalizedSoftwareProductList,
-               licenseModelList,
-               softwareProductList,
-               activeTab,
-               catalogActiveTab,
-               searchValue,
-               vspOverlay,
-               selectedVendor
-       };
+    return {
+        finalizedLicenseModelList,
+        finalizedSoftwareProductList,
+        licenseModelList,
+        softwareProductList,
+        archivedLicenseModelList,
+        archivedSoftwareProductList,
+        fullLicenseModelList,
+        activeTab,
+        catalogActiveTab,
+        searchValue,
+        vspOverlay,
+        selectedVendor,
+        users: users.usersList
+    };
 };
 
-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)
-       };
+const mapActionsToProps = dispatch => {
+    return {
+        onSelectLicenseModel({ id: licenseModelId, name }, users, tab) {
+            OnboardActionHelper.loadVLMScreen(
+                dispatch,
+                { id: licenseModelId, name },
+                users,
+                tab
+            );
+        },
+        onSelectSoftwareProduct(softwareProduct, users, tab) {
+            OnboardActionHelper.loadVSPScreen(
+                dispatch,
+                softwareProduct,
+                users,
+                tab
+            );
+        },
+        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);