2 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13 * or implied. See the License for the specific language governing
14 * permissions and limitations under the License.
16 import React from 'react';
17 import VendorItem from './VendorItem.jsx';
18 import CatalogList from '../CatalogList.jsx';
19 import CatalogItemDetails from '../CatalogItemDetails.jsx';
20 import {catalogItemTypes, catalogItemTypeClasses} from './OnboardingCatalogConstants.js';
21 import {filterCatalogItemsByType} from './OnboardingCatalogUtils.js';
23 const VendorList = ({onAddVLM, onAddVSP, onSelectVSP, licenseModelList = [], vspOverlay: currentOverlay, onVspOverlayChange, onVendorSelect, filter, onMigrate}) => {
25 <CatalogList onAddVLM={onAddVLM} onAddVSP={onAddVSP}>
27 filterCatalogItemsByType(licenseModelList, catalogItemTypes.LICENSE_MODEL, filter).map(vlm =>
31 onSelectVSP={onSelectVSP}
32 shouldShowOverlay={currentOverlay === vlm.id}
33 onVSPIconClick={(hasVSP) => onVspOverlayChange(vlm.id === currentOverlay || !hasVSP ? null : vlm)}
34 onVendorSelect={onVendorSelect}
42 const SoftwareProductListByVendor = ({onAddVSP, selectedVendor, onVendorSelect, onSelectVSP, onSelectVLM, filter, onMigrate}) => {
45 <CatalogList onAddVSP={()=>{onAddVSP(selectedVendor.id);}} vendorPageOptions={{selectedVendor, onBack: () => onVendorSelect(false)}}>
47 key={selectedVendor.id}
48 onSelect={() => onSelectVLM(selectedVendor)}
49 catalogItemTypeClass={catalogItemTypeClasses.LICENSE_MODEL}
51 catalogItemData={{...selectedVendor, name: selectedVendor.vendorName}}/>
53 filterCatalogItemsByType(selectedVendor.softwareProductList, catalogItemTypes.SOFTWARE_PRODUCT, filter).map(vsp =>
56 catalogItemTypeClass={catalogItemTypeClasses.SOFTWARE_PRODUCT}
58 onSelect={() => onSelectVSP(vsp)}
59 catalogItemData={vsp}/>
67 class VendorCatalogView extends React.Component {
69 let {selectedVendor} = this.props;
70 return( selectedVendor ? <SoftwareProductListByVendor {...this.props}/> : <VendorList {...this.props}/>);
74 export default VendorCatalogView;