| /*! |
| * 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 React from 'react'; |
| import PropTypes from 'prop-types'; |
| import i18n from 'nfvo-utils/i18n/i18n.js'; |
| import Modal from 'nfvo-components/modal/Modal.jsx'; |
| import classNames from 'classnames'; |
| |
| import EntitlementPoolsEditor from '../entitlementPools/EntitlementPoolsEditor.js'; |
| import FeatureGroupEditor from '../featureGroups/FeatureGroupEditor.js'; |
| import LicenseAgreementEditor from '../licenseAgreement/LicenseAgreementEditor.js'; |
| import LicenseKeyGroupsEditor from '../licenseKeyGroups/LicenseKeyGroupsEditor.js'; |
| import { |
| overviewEditorHeaders, |
| selectedButton |
| } from './LicenseModelOverviewConstants.js'; |
| |
| import SummaryView from './SummaryView.jsx'; |
| import VLMListView from './VLMListView.jsx'; |
| import ListButtons from './summary/ListButtons.jsx'; |
| |
| const setModalClassName = modalHeader => { |
| switch (modalHeader) { |
| case overviewEditorHeaders.ENTITLEMENT_POOL: |
| return 'entitlement-pools-modal'; |
| case overviewEditorHeaders.LICENSE_AGREEMENT: |
| return 'license-agreement-modal'; |
| case overviewEditorHeaders.FEATURE_GROUP: |
| return 'feature-group-modal'; |
| case overviewEditorHeaders.LICENSE_KEY_GROUP: |
| return 'license-key-groups-modal'; |
| default: |
| return ''; |
| } |
| }; |
| |
| class LicenseModelOverviewView extends React.Component { |
| static propTypes = { |
| isDisplayModal: PropTypes.bool, |
| isReadOnlyMode: PropTypes.bool, |
| licenseModelId: PropTypes.string, |
| licensingDataList: PropTypes.array, |
| orphanDataList: PropTypes.array, |
| modalHeader: PropTypes.string, |
| selectedTab: PropTypes.string, |
| onTabSelect: PropTypes.func, |
| onCallVCAction: PropTypes.func, |
| onClose: PropTypes.func |
| }; |
| |
| render() { |
| let { |
| isDisplayModal, |
| modalHeader, |
| licensingDataList, |
| selectedTab, |
| onTabSelect, |
| orphanDataList, |
| isReadOnlyMode |
| } = this.props; |
| let selectedInUse = selectedTab !== selectedButton.NOT_IN_USE; |
| let dataList = selectedInUse ? licensingDataList : orphanDataList; |
| return ( |
| <div className="license-model-overview"> |
| <SummaryView isReadOnlyMode={isReadOnlyMode} /> |
| <div |
| className={classNames( |
| 'overview-list-section ', |
| !selectedInUse ? 'overview-list-orphans' : '' |
| )}> |
| <div className="vlm-list-tab-panel"> |
| <ListButtons |
| onTabSelect={onTabSelect} |
| selectedTab={selectedTab} |
| hasOrphans={orphanDataList.length > 0} |
| hasLicensing={licensingDataList.length > 0} |
| /> |
| </div> |
| <VLMListView |
| licensingDataList={dataList} |
| showInUse={selectedInUse} |
| /> |
| </div> |
| {isDisplayModal && ( |
| <Modal |
| show={isDisplayModal} |
| bsSize="large" |
| animation={true} |
| className={classNames( |
| 'onborading-modal license-model-modal', |
| setModalClassName(modalHeader) |
| )}> |
| <Modal.Header> |
| <Modal.Title>{`${i18n('Create New ')}${i18n( |
| modalHeader |
| )}`}</Modal.Title> |
| </Modal.Header> |
| <Modal.Body> |
| {this.renderModalBody(modalHeader)} |
| </Modal.Body> |
| </Modal> |
| )} |
| </div> |
| ); |
| } |
| |
| renderModalBody(modalHeader) { |
| let { licenseModelId, version, isReadOnlyMode } = this.props; |
| switch (modalHeader) { |
| case overviewEditorHeaders.ENTITLEMENT_POOL: |
| return ( |
| <EntitlementPoolsEditor |
| version={version} |
| licenseModelId={licenseModelId} |
| isReadOnlyMode={isReadOnlyMode} |
| /> |
| ); |
| case overviewEditorHeaders.LICENSE_AGREEMENT: |
| return ( |
| <LicenseAgreementEditor |
| version={version} |
| licenseModelId={licenseModelId} |
| isReadOnlyMode={isReadOnlyMode} |
| /> |
| ); |
| case overviewEditorHeaders.FEATURE_GROUP: |
| return ( |
| <FeatureGroupEditor |
| version={version} |
| licenseModelId={licenseModelId} |
| isReadOnlyMode={isReadOnlyMode} |
| /> |
| ); |
| case overviewEditorHeaders.LICENSE_KEY_GROUP: |
| return ( |
| <LicenseKeyGroupsEditor |
| version={version} |
| licenseModelId={licenseModelId} |
| isReadOnlyMode={isReadOnlyMode} |
| /> |
| ); |
| } |
| } |
| } |
| |
| export default LicenseModelOverviewView; |