summaryrefslogtreecommitdiffstats
path: root/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general
diff options
context:
space:
mode:
authorMichael Lando <ml636r@att.com>2017-02-19 12:57:33 +0200
committerMichael Lando <ml636r@att.com>2017-02-19 13:47:13 +0200
commitefa037d34be7b1570efdc767c79fad8d4005f10e (patch)
treecf1036ba2728dea8a61492b678fa91954e629403 /openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general
parentf5f13c4f6b6fe3b4d98e349dfd7db59339803436 (diff)
Add new code new version
Change-Id: Ic02a76313503b526f17c3df29eb387a29fe6a42a Signed-off-by: Michael Lando <ml636r@att.com>
Diffstat (limited to 'openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general')
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneral.js52
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneralView.jsx186
2 files changed, 238 insertions, 0 deletions
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneral.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneral.js
new file mode 100644
index 0000000000..e4c330bec8
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneral.js
@@ -0,0 +1,52 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+import {connect} from 'react-redux';
+import SoftwareProductComponentsGeneralView from './SoftwareProductComponentsGeneralView.jsx';
+import SoftwareProductComponentsActionHelper from '../SoftwareProductComponentsActionHelper.js';
+import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
+
+export const mapStateToProps = ({softwareProduct}) => {
+ let {softwareProductEditor: {data: currentVSP}, softwareProductComponents} = softwareProduct;
+ let {componentEditor: {data: componentData = {} , qdata, qschema}} = softwareProductComponents;
+
+ let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentVSP);
+
+ return {
+ componentData,
+ qdata,
+ qschema,
+ isReadOnlyMode
+ };
+};
+
+
+const mapActionsToProps = (dispatch, {softwareProductId, componentId}) => {
+ return {
+ onDataChanged: deltaData => SoftwareProductComponentsActionHelper.componentDataChanged(dispatch, {deltaData}),
+ onQDataChanged: ({data}) => SoftwareProductComponentsActionHelper.componentQuestionnaireUpdated(dispatch, {data}),
+ onSubmit: ({componentData, qdata}) => { return SoftwareProductComponentsActionHelper.updateSoftwareProductComponent(dispatch,
+ {softwareProductId, vspComponentId: componentId, componentData, qdata});
+ }
+ };
+
+};
+
+export default connect(mapStateToProps, mapActionsToProps, null, {withRef: true})(SoftwareProductComponentsGeneralView);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneralView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneralView.jsx
new file mode 100644
index 0000000000..5d11e42cd3
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneralView.jsx
@@ -0,0 +1,186 @@
+import React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+
+import ValidationForm from 'nfvo-components/input/validation/ValidationForm.jsx';
+import ValidationInput from'nfvo-components/input/validation/ValidationInput.jsx';
+
+
+class SoftwareProductComponentsGeneralView extends React.Component {
+
+ render() {
+ let {qdata, qschema, onQDataChanged, onDataChanged, componentData: {displayName, description}, isReadOnlyMode} = this.props;
+ return(
+ <div className='vsp-components-general'>
+ <div className='general-data'>
+ <ValidationForm
+ isReadOnlyMode={isReadOnlyMode}
+ hasButtons={false}>
+ <div className=''>
+ <h3 className='section-title'>{i18n('General')}</h3>
+ <div className='rows-section'>
+ <div className='row-flex-components input-row'>
+ {/** disabled until backend will be ready to implement it
+ <div className='validation-input-wrapper'>
+ <div className='form-group'>
+ <label className='control-label'>{i18n('Name')}</label>
+ <div>{name}</div>
+ </div>
+ </div>
+
+ */}
+ <div className='single-col'>
+ <ValidationInput label={i18n('Name')} value={displayName} disabled={true} type='text'/>
+ </div>
+ <div className='two-col'>
+ <ValidationInput
+ label={i18n('Description')}
+ onChange={description => onDataChanged({description})}
+ disabled={isReadOnlyMode}
+ value={description}
+ type='textarea'/>
+ </div>
+ <div className='empty-col' />
+ </div>
+ </div>
+ </div>
+ </ValidationForm>
+ {
+ qschema &&
+ <ValidationForm
+ onDataChanged={onQDataChanged}
+ data={qdata}
+ schema={qschema}
+ isReadOnlyMode={isReadOnlyMode}
+ hasButtons={false}>
+ <h3 className='section-title additional-validation-form'>{i18n('Hypervisor')}</h3>
+ <div className='rows-section'>
+ <div className='row-flex-components input-row'>
+ <div className='single-col'>
+ <ValidationInput
+ label={i18n('Supported Hypervisors')}
+ type='select'
+ pointer='/general/hypervisor/hypervisor'/>
+ </div>
+ <div className='two-col'>
+ <ValidationInput
+ label={i18n('Hypervisor Drivers')}
+ type='text'
+ pointer='/general/hypervisor/drivers'/>
+ </div>
+ <div className='empty-col' />
+ </div>
+ <div className='row-flex-components input-row'>
+ <div className='three-col'>
+ <ValidationInput
+ label={i18n('Describe Container Features')}
+ type='textarea'
+ pointer='/general/hypervisor/containerFeaturesDescription'/>
+ </div>
+ <div className='empty-col' />
+ </div>
+ </div>
+ <h3 className='section-title'>{i18n('Image')}</h3>
+ <div className='rows-section'>
+ <div className='row-flex-components input-row'>
+ <div className='single-col'>
+ <ValidationInput
+ label={i18n('Image format')}
+ type='select'
+ pointer='/general/image/format'/>
+ </div>
+ <div className='single-col'>
+ <ValidationInput
+ label={i18n('Image provided by')}
+ type='select'
+ pointer='/general/image/providedBy'/>
+ </div>
+ <div className='single-col'>
+ <ValidationInput
+ label={i18n('Size of boot disk per VM (GB)')}
+ type='text'
+ pointer='/general/image/bootDiskSizePerVM'/>
+ </div>
+ <ValidationInput
+ label={i18n('Size of ephemeral disk per VM (GB)')}
+ type='text'
+ pointer='/general/image/ephemeralDiskSizePerVM'/>
+ </div>
+ </div>
+ <h3 className='section-title'>{i18n('Recovery')}</h3>
+ <div className='rows-section'>
+ <div className='row-flex-components input-row'>
+ <div className='single-col'>
+ <ValidationInput
+ label={i18n('VM Recovery Point Objective (Minutes)')}
+ type='text'
+ pointer='/general/recovery/pointObjective'/>
+ </div>
+ <ValidationInput
+ label={i18n('VM Recovery Time Objective (Minutes)')}
+ type='text'
+ pointer='/general/recovery/timeObjective'/>
+ <div className='empty-two-col' />
+ </div>
+
+
+ <div className='row-flex-components input-row'>
+ <div className='two-col'>
+ <ValidationInput
+ className='textarea'
+ label={i18n('How are in VM process failures handled?')}
+ type='textarea'
+ pointer='/general/recovery/vmProcessFailuresHandling'/>
+ </div>
+ <div className='empty-two-col' />
+ {
+ /** disabled until backend will be ready to implement it
+ <div className='row'>
+ <div className='col-md-3'>
+ <ValidationInput
+ label={i18n('VM Recovery Document')}
+ type='text'
+ pointer='/general/recovery/VMRecoveryDocument'/>
+ </div>
+ </div>
+ */
+ }
+ </div>
+ </div>
+ <h3 className='section-title'>{i18n('DNS Configuration')}</h3>
+ <div className='rows-section'>
+ <div className='row-flex-components input-row'>
+ <div className='two-col'>
+ <ValidationInput
+ label={i18n('Do you have a need for DNS as a Service? Please describe.')}
+ type='textarea'
+ pointer='/general/dnsConfiguration'/>
+ </div>
+ <div className='empty-two-col' />
+ </div>
+ </div>
+ <h3 className='section-title'>{i18n('Clone')}</h3>
+ <div className='rows-section'>
+ <div className='row-flex-components input-row'>
+ <div className='two-col'>
+ <ValidationInput
+ label={i18n('Describe VM Clone Use')}
+ type='textarea'
+ pointer='/general/vmCloneUsage'/>
+ </div>
+ <div className='empty-two-col' />
+ </div>
+ </div>
+ </ValidationForm>
+ }
+ </div>
+ </div>
+ );
+ }
+
+ save() {
+ let {onSubmit, componentData, qdata} = this.props;
+ return onSubmit({componentData, qdata});
+ }
+}
+
+export default SoftwareProductComponentsGeneralView;