1 import React from 'react';
2 import i18n from 'nfvo-utils/i18n/i18n.js';
4 import ValidationForm from 'nfvo-components/input/validation/ValidationForm.jsx';
5 import ValidationInput from'nfvo-components/input/validation/ValidationInput.jsx';
8 class SoftwareProductComponentsGeneralView extends React.Component {
11 let {qdata, qschema, onQDataChanged, onDataChanged, componentData: {displayName, description}, isReadOnlyMode} = this.props;
13 <div className='vsp-components-general'>
14 <div className='general-data'>
16 isReadOnlyMode={isReadOnlyMode}
19 <h3 className='section-title'>{i18n('General')}</h3>
20 <div className='rows-section'>
21 <div className='row-flex-components input-row'>
22 {/** disabled until backend will be ready to implement it
23 <div className='validation-input-wrapper'>
24 <div className='form-group'>
25 <label className='control-label'>{i18n('Name')}</label>
31 <div className='single-col'>
32 <ValidationInput label={i18n('Name')} value={displayName} disabled={true} type='text'/>
34 <div className='two-col'>
36 label={i18n('Description')}
37 onChange={description => onDataChanged({description})}
38 disabled={isReadOnlyMode}
42 <div className='empty-col' />
50 onDataChanged={onQDataChanged}
53 isReadOnlyMode={isReadOnlyMode}
55 <h3 className='section-title additional-validation-form'>{i18n('Hypervisor')}</h3>
56 <div className='rows-section'>
57 <div className='row-flex-components input-row'>
58 <div className='single-col'>
60 label={i18n('Supported Hypervisors')}
62 pointer='/general/hypervisor/hypervisor'/>
64 <div className='two-col'>
66 label={i18n('Hypervisor Drivers')}
68 pointer='/general/hypervisor/drivers'/>
70 <div className='empty-col' />
72 <div className='row-flex-components input-row'>
73 <div className='three-col'>
75 label={i18n('Describe Container Features')}
77 pointer='/general/hypervisor/containerFeaturesDescription'/>
79 <div className='empty-col' />
82 <h3 className='section-title'>{i18n('Image')}</h3>
83 <div className='rows-section'>
84 <div className='row-flex-components input-row'>
85 <div className='single-col'>
87 label={i18n('Image format')}
89 pointer='/general/image/format'/>
91 <div className='single-col'>
93 label={i18n('Image provided by')}
95 pointer='/general/image/providedBy'/>
97 <div className='single-col'>
99 label={i18n('Size of boot disk per VM (GB)')}
101 pointer='/general/image/bootDiskSizePerVM'/>
104 label={i18n('Size of ephemeral disk per VM (GB)')}
106 pointer='/general/image/ephemeralDiskSizePerVM'/>
109 <h3 className='section-title'>{i18n('Recovery')}</h3>
110 <div className='rows-section'>
111 <div className='row-flex-components input-row'>
112 <div className='single-col'>
114 label={i18n('VM Recovery Point Objective (Minutes)')}
116 pointer='/general/recovery/pointObjective'/>
119 label={i18n('VM Recovery Time Objective (Minutes)')}
121 pointer='/general/recovery/timeObjective'/>
122 <div className='empty-two-col' />
126 <div className='row-flex-components input-row'>
127 <div className='two-col'>
130 label={i18n('How are in VM process failures handled?')}
132 pointer='/general/recovery/vmProcessFailuresHandling'/>
134 <div className='empty-two-col' />
136 /** disabled until backend will be ready to implement it
137 <div className='row'>
138 <div className='col-md-3'>
140 label={i18n('VM Recovery Document')}
142 pointer='/general/recovery/VMRecoveryDocument'/>
149 <h3 className='section-title'>{i18n('DNS Configuration')}</h3>
150 <div className='rows-section'>
151 <div className='row-flex-components input-row'>
152 <div className='two-col'>
154 label={i18n('Do you have a need for DNS as a Service? Please describe.')}
156 pointer='/general/dnsConfiguration'/>
158 <div className='empty-two-col' />
161 <h3 className='section-title'>{i18n('Clone')}</h3>
162 <div className='rows-section'>
163 <div className='row-flex-components input-row'>
164 <div className='two-col'>
166 label={i18n('Describe VM Clone Use')}
168 pointer='/general/vmCloneUsage'/>
170 <div className='empty-two-col' />
181 let {onSubmit, componentData, qdata} = this.props;
182 return onSubmit({componentData, qdata});
186 export default SoftwareProductComponentsGeneralView;