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'; import {optionsInputValues as licenseKeyGroupOptionsInputValues} from './LicenseKeyGroupsConstants.js'; import {other as optionInputOther} from 'nfvo-components/input/inputOptions/InputOptions.jsx'; const LicenseKeyGroupPropType = React.PropTypes.shape({ id: React.PropTypes.string, name: React.PropTypes.string, description: React.PropTypes.string, operationalScope: React.PropTypes.shape({ choices: React.PropTypes.array, other: React.PropTypes.string }), type: React.PropTypes.string }); class LicenseKeyGroupsEditorView extends React.Component { static propTypes = { data: LicenseKeyGroupPropType, previousData: LicenseKeyGroupPropType, isReadOnlyMode: React.PropTypes.bool, onDataChanged: React.PropTypes.func.isRequired, onSubmit: React.PropTypes.func.isRequired, onCancel: React.PropTypes.func.isRequired }; static defaultProps = { data: {} }; render() { let {data = {}, onDataChanged, isReadOnlyMode} = this.props; let {name, description, operationalScope, type} = data; return ( this.submit() } onReset={ () => this.props.onCancel() } labledButtons={true} isReadOnlyMode={isReadOnlyMode} className='license-key-groups-form'>
onDataChanged({name})} ref='name' label={i18n('Name')} value={name} validations={{maxLength: 120, required: true}} type='text'/> onDataChanged({operationalScope:{choices: operationalScope, other: ''}})} onOtherChange={operationalScope => onDataChanged({operationalScope:{choices: [optionInputOther.OTHER], other: operationalScope}})} label={i18n('Operational Scope')} validations={{required: true}} multiSelectedEnum={operationalScope && operationalScope.choices} otherValue={operationalScope && operationalScope.other} values={licenseKeyGroupOptionsInputValues.OPERATIONAL_SCOPE}/>
onDataChanged({description})} ref='description' label={i18n('Description')} value={description} validations={{maxLength: 1000, required: true}} type='textarea'/> onDataChanged({type})} selectedEnum={type} label={i18n('Type')} type='select' validations={{required: true}} values={licenseKeyGroupOptionsInputValues.TYPE}/>
); } submit() { const {data: licenseKeyGroup, previousData: previousLicenseKeyGroup} = this.props; this.props.onSubmit({licenseKeyGroup, previousLicenseKeyGroup}); } } export default LicenseKeyGroupsEditorView;