/* * 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 * * 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 classnames from 'classnames'; import DetailsCatalogView from 'sdc-app/onboarding/onboard/DetailsCatalogView.jsx'; import VendorCatalogView from './VendorCatalogView.jsx'; import { tabsMapping} from './OnboardingCatalogConstants.js'; import {tabsMapping as WCTabsMapping} from 'sdc-app/onboarding/onboard/OnboardConstants.js'; import featureToggle from 'sdc-app/features/featureToggle.js'; import {featureToggleNames} from 'sdc-app/features/FeaturesConstants.js'; const Separator = () => (
); const Tab = ({onTabPress, title, dataTestId, activeTab, tabMapping}) => (
onTabPress(tabMapping)} data-test-id={dataTestId}> {title}
); const ArchiveTab = featureToggle(featureToggleNames.ARCHIVE_ITEM)(Tab); const ArchiveTabSeparator = featureToggle(featureToggleNames.ARCHIVE_ITEM)(Separator); const CatalogHeaderTabs = (props) => (
); const CatalogHeader = ({activeTab, onTabPress}) => (
); const FilterCatalogHeader = () => (
{i18n('ONBOARD CATALOG')}
); const FeaturedCatalogHeader = featureToggle(featureToggleNames.FILTER)({AComp: FilterCatalogHeader, BComp: CatalogHeader}); class OnboardingCatalogView extends React.Component { renderViewByTab(activeTab){ const {finalizedLicenseModelList: licenseModelList, fullLicenseModelList, users, vspOverlay, finalizedSoftwareProductList: softwareProductList, onSelectLicenseModel, onSelectSoftwareProduct, onAddLicenseModelClick, onAddSoftwareProductClick, onVspOverlayChange, onVendorSelect, selectedVendor, searchValue, onMigrate, archivedSoftwareProductList, archivedLicenseModelList} = this.props; switch (activeTab){ case tabsMapping.ARCHIVE: return ( onSelectLicenseModel(item, users, WCTabsMapping.CATALOG)} onSelectVSP={(item, users) => onSelectSoftwareProduct(item, users, WCTabsMapping.CATALOG)} filter={searchValue} onMigrate={onMigrate}/> ); case tabsMapping.ACTIVE: return ( onSelectLicenseModel(item, users, WCTabsMapping.CATALOG)} onSelectVSP={(item, users) => onSelectSoftwareProduct(item, users, WCTabsMapping.CATALOG)} filter={searchValue} onMigrate={onMigrate}/> ); case tabsMapping.BY_VENDOR: default: return ( onSelectSoftwareProduct(item, users, WCTabsMapping.CATALOG)} onSelectVLM={(item, users) => onSelectLicenseModel(item, users, WCTabsMapping.CATALOG)} vspOverlay={vspOverlay} onVendorSelect={onVendorSelect} selectedVendor={selectedVendor} onVspOverlayChange={onVspOverlayChange} onMigrate={onMigrate} filter={searchValue}/> ); } } render() { const {selectedVendor, catalogActiveTab: activeTab, onCatalogTabClick, onSearch, searchValue} = this.props; return (
{!selectedVendor && onSearch(event.target.value)} activeTab={activeTab} onTabPress={tab => onCatalogTabClick(tab)} searchValue={searchValue}/>} {this.renderViewByTab(activeTab)}
); } } export default OnboardingCatalogView;