import React from 'react';
import i18n from 'nfvo-utils/i18n/i18n.js';
import ValidationForm from 'nfvo-components/input/validation/ValidationForm.jsx';
import ListEditorView from 'nfvo-components/listEditor/ListEditorView.jsx';
import ListEditorItemView from 'nfvo-components/listEditor/ListEditorItemView.jsx';
import ValidationInput from'nfvo-components/input/validation/ValidationInput.jsx';
import Modal from 'nfvo-components/modal/Modal.jsx';
import SoftwareProductComponentsNICEditor from './SoftwareProductComponentsNICEditor.js';
class SoftwareProductComponentsNetworkView extends React.Component {
state = {
localFilter: ''
};
render() {
let {qdata, qschema, onQDataChanged, isModalInEditMode, isDisplayModal, softwareProductId, componentId, isReadOnlyMode} = this.props;
return(
{i18n('Network Capacity')}
{this.renderNicList()}
{isModalInEditMode ? i18n('Edit NIC') : i18n('Create New NIC')}
{
}
);
}
renderNicList() {
const {localFilter} = this.state;
let {onAddNIC, manualMode, isReadOnlyMode} = this.props;
let onAdd = manualMode ? onAddNIC : false;
return (
this.setState({localFilter: filter})}>
{!manualMode && this.filterList().map(nic => this.renderNicListItem(nic, isReadOnlyMode))}
);
}
renderNicListItem(nic, isReadOnlyMode) {
let {id, name, description, networkName = ''} = nic;
let {onEditNicClick, version} = this.props;
return (
onEditNicClick(nic, version)}>
{i18n('Purpose of NIC')}
{description}
{i18n('Network')}
{networkName}
);
}
filterList() {
let {nicList} = this.props;
let {localFilter} = this.state;
if (localFilter.trim()) {
const filter = new RegExp(escape(localFilter), 'i');
return nicList.filter(({name = '', description = ''}) => {
return escape(name).match(filter) || escape(description).match(filter);
});
}
else {
return nicList;
}
}
save() {
let {onSubmit, qdata} = this.props;
return onSubmit({qdata});
}
}
export default SoftwareProductComponentsNetworkView;