/* * 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 Input from 'nfvo-components/input/validation/Input.jsx'; import Form from 'nfvo-components/input/validation/Form.jsx'; import GridSection from 'nfvo-components/grid/GridSection.jsx'; import GridItem from 'nfvo-components/grid/GridItem.jsx'; const GeneralSection = ({ onDataChanged, displayName, description, isReadOnlyMode, genericFieldInfo, isManual, dataMap, onQDataChanged, qgenericFieldInfo }) => ( {/* disabled until backend will be ready to implement it
{name}
*/} {!isManual && ( onQDataChanged({ 'general/nfcNamingCode': nfcFunction }) } isValid={qgenericFieldInfo['general/nfcNamingCode'].isValid} errorText={ qgenericFieldInfo['general/nfcNamingCode'].errorText } value={dataMap['general/nfcNamingCode']} /> )} onQDataChanged({ 'general/nfcFunction': nfcFunction }) } isValid={qgenericFieldInfo['general/nfcFunction'].isValid} errorText={qgenericFieldInfo['general/nfcFunction'].errorText} value={dataMap['general/nfcFunction']} /> onDataChanged({ description })} disabled={isReadOnlyMode} value={description} groupClassName="multi-line-textarea" data-test-id="description" type="textarea" />
); const HypervisorSection = ({ dataMap, onQDataChanged, qgenericFieldInfo }) => ( { const selectedIndex = e.target.selectedIndex; const val = e.target.options[selectedIndex].value; onQDataChanged({ 'general/hypervisor/hypervisor': val }); }}> {qgenericFieldInfo['general/hypervisor/hypervisor'].enum.map( hv => ( ) )} onQDataChanged({ 'general/hypervisor/drivers': driver }) } label={i18n('Hypervisor Drivers')} type="text" isValid={ qgenericFieldInfo['general/hypervisor/drivers'].isValid } errorText={ qgenericFieldInfo['general/hypervisor/drivers'].errorText } value={dataMap['general/hypervisor/drivers']} /> onQDataChanged({ 'general/hypervisor/containerFeaturesDescription': containerFeaturesDescription }) } isValid={ qgenericFieldInfo[ 'general/hypervisor/containerFeaturesDescription' ].isValid } errorText={ qgenericFieldInfo[ 'general/hypervisor/containerFeaturesDescription' ].errorText } value={ dataMap['general/hypervisor/containerFeaturesDescription'] } /> ); const ImageSection = ({ dataMap, onQDataChanged, qgenericFieldInfo }) => ( onQDataChanged({ 'general/disk/bootDiskSizePerVM': bootDiskSizePerVM }) } label={i18n('Size of boot disk per VM (GB)')} type="number" isValid={ qgenericFieldInfo['general/disk/bootDiskSizePerVM'].isValid } errorText={ qgenericFieldInfo['general/disk/bootDiskSizePerVM'] .errorText } value={dataMap['general/disk/bootDiskSizePerVM']} /> onQDataChanged({ 'general/disk/ephemeralDiskSizePerVM': ephemeralDiskSizePerVM }) } label={i18n('Size of ephemeral disk per VM (GB)')} type="number" isValid={ qgenericFieldInfo['general/disk/ephemeralDiskSizePerVM'] .isValid } errorText={ qgenericFieldInfo['general/disk/ephemeralDiskSizePerVM'] .errorText } value={dataMap['general/disk/ephemeralDiskSizePerVM']} /> ); const RecoverySection = ({ dataMap, onQDataChanged, qgenericFieldInfo }) => ( onQDataChanged({ 'general/recovery/pointObjective': pointObjective }) } isValid={ qgenericFieldInfo['general/recovery/pointObjective'].isValid } errorText={ qgenericFieldInfo['general/recovery/pointObjective'] .errorText } value={dataMap['general/recovery/pointObjective']} /> onQDataChanged({ 'general/recovery/timeObjective': timeObjective }) } isValid={ qgenericFieldInfo['general/recovery/timeObjective'].isValid } errorText={ qgenericFieldInfo['general/recovery/timeObjective'] .errorText } value={dataMap['general/recovery/timeObjective']} />
onQDataChanged({ 'general/recovery/vmProcessFailuresHandling': vmProcessFailuresHandling }) } isValid={ qgenericFieldInfo[ 'general/recovery/vmProcessFailuresHandling' ].isValid } errorText={ qgenericFieldInfo[ 'general/recovery/vmProcessFailuresHandling' ].errorText } value={dataMap['general/recovery/vmProcessFailuresHandling']} />
{/** disabled until backend will be ready to implement it
*/} ); const DNSConfigurationSection = ({ dataMap, onQDataChanged, qgenericFieldInfo }) => ( onQDataChanged({ 'general/dnsConfiguration': dnsConfiguration }) } isValid={qgenericFieldInfo['general/dnsConfiguration'].isValid} errorText={ qgenericFieldInfo['general/dnsConfiguration'].errorText } value={dataMap['general/dnsConfiguration']} /> ); const CloneSection = ({ dataMap, onQDataChanged, qgenericFieldInfo }) => ( onQDataChanged({ 'general/vmCloneUsage': vmCloneUsage }) } isValid={qgenericFieldInfo['general/vmCloneUsage'].isValid} errorText={qgenericFieldInfo['general/vmCloneUsage'].errorText} value={dataMap['general/vmCloneUsage']} /> ); class SoftwareProductComponentsGeneralView extends React.Component { render() { let { isManual, onQDataChanged, onDataChanged, genericFieldInfo, dataMap, qGenericFieldInfo, componentData: { displayName, vfcCode, description }, isReadOnlyMode } = this.props; return (
{genericFieldInfo && qGenericFieldInfo && (
this.props.onValidityChanged(isValidityData) } hasButtons={false}> )}
); } save() { let { onSubmit, componentData, qdata } = this.props; return onSubmit({ componentData, qdata }); } } export default SoftwareProductComponentsGeneralView;