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} from './OnboardingCatalogConstants.js';
21 import {filterCatalogItemsByType} from './OnboardingCatalogUtils.js';
23 const VendorList = ({onAddVLM, onAddVSP, onSelectVSP, licenseModelList = [], vspOverlay: currentOverlay, onVspOverlayChange, onVendorSelect, filter, onMigrate, users}) => {
25 <CatalogList onAddVLM={onAddVLM} onAddVSP={onAddVSP}>
27 filterCatalogItemsByType({items: licenseModelList, filter}).map(vlm =>
31 onSelectVSP={(vsp) => onSelectVSP(vsp, users)}
32 shouldShowOverlay={currentOverlay === vlm.id}
33 onVSPButtonClick={(hasVSP) => onVspOverlayChange(vlm.id === currentOverlay || !hasVSP ? null : vlm)}
34 onVendorSelect={onVendorSelect}
42 const SoftwareProductListByVendor = ({onAddVSP, selectedVendor, onVendorSelect, onSelectVSP, onSelectVLM, filter, onMigrate, users}) => {
45 <CatalogList onAddVSP={()=>{onAddVSP(selectedVendor.id);}} vendorPageOptions={{selectedVendor, onBack: () => onVendorSelect(false)}}>
47 key={selectedVendor.id}
48 onSelect={() => onSelectVLM(selectedVendor, users)}
49 catalogItemTypeClass={catalogItemTypes.LICENSE_MODEL}
51 catalogItemData={selectedVendor}/>
53 filterCatalogItemsByType({items: selectedVendor.softwareProductList, filter}).map(vsp =>
56 catalogItemTypeClass={catalogItemTypes.SOFTWARE_PRODUCT}
58 onSelect={() => onSelectVSP(vsp, users)}
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;