/* * 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 PropTypes from 'prop-types'; import classnames from 'classnames'; import Dropzone from 'react-dropzone'; import i18n from 'nfvo-utils/i18n/i18n.js'; import Configuration from 'sdc-app/config/Configuration.js'; import DraggableUploadFileBox from 'nfvo-components/fileupload/DraggableUploadFileBox.jsx'; import VnfRepositorySearchBox from 'nfvo-components/vnfMarketPlace/VnfRepositorySearchBox.jsx'; import { SVGIcon } from 'onap-ui-react'; import SoftwareProductComponentsList from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponents.js'; const SoftwareProductPropType = PropTypes.shape({ name: PropTypes.string, description: PropTypes.string, version: PropTypes.string, id: PropTypes.string, categoryId: PropTypes.string, vendorId: PropTypes.string, licenseType: PropTypes.string, status: PropTypes.string, licensingData: PropTypes.object, validationData: PropTypes.object }); const ComponentPropType = PropTypes.shape({ id: PropTypes.string, name: PropTypes.string, displayName: PropTypes.string, description: PropTypes.string }); class SoftwareProductLandingPageView extends React.Component { state = { fileName: '', dragging: false, files: [] }; constructor(props) { super(props); this.getExternalLicenceFeatureState = this.getExternalLicenceFeatureState.bind( this ); } static propTypes = { currentSoftwareProduct: SoftwareProductPropType, isReadOnlyMode: PropTypes.bool, componentsList: PropTypes.arrayOf(ComponentPropType), version: PropTypes.object, onLicenseChange: PropTypes.func, onUpload: PropTypes.func, onUploadConfirmation: PropTypes.func, onInvalidFileSizeUpload: PropTypes.func, onComponentSelect: PropTypes.func, onAddComponent: PropTypes.func }; componentDidMount() { const { onCandidateInProcess, currentSoftwareProduct, isCertified } = this.props; if (currentSoftwareProduct.candidateOnboardingOrigin && !isCertified) { onCandidateInProcess(currentSoftwareProduct.id); } } licenceChange = (e, currentSoftwareProduct, onLicenseChange) => { currentSoftwareProduct.licenseType = e.target.value ? e.target.value : 'INTERNAL'; onLicenseChange(currentSoftwareProduct); }; getExternalLicenceFeatureState() { var licenseFeature = this.props.features.find( feature => feature.name === 'EXTERNAL_LICENCE' ); return licenseFeature ? licenseFeature.active : true; } render() { let { currentSoftwareProduct, isReadOnlyMode, isManual, onLicenseChange } = this.props; let licenceChange = this.licenceChange; return (