1 import React from 'react';
2 import i18n from 'nfvo-utils/i18n/i18n.js';
4 import ListEditorView from 'nfvo-components/listEditor/ListEditorView.jsx';
5 import ListEditorItemView from 'nfvo-components/listEditor/ListEditorItemView.jsx';
7 class SoftwareProductNetworksView extends React.Component {
10 networksList: React.PropTypes.arrayOf(React.PropTypes.shape({
11 id: React.PropTypes.string.isRequired,
12 name: React.PropTypes.string.isRequired,
13 dhcp: React.PropTypes.bool.isRequired
22 const {localFilter} = this.state;
25 <div className='vsp-networks-page'>
27 title={i18n('Networks')}
28 filterValue={localFilter}
29 placeholder={i18n('Filter Networks')}
30 onFilter={filter => this.setState({localFilter: filter})}>
31 {this.filterList().map(network => this.renderNetworksListItem(network))}
37 renderNetworksListItem(network) {
38 let {id, name, dhcp} = network;
42 className='list-editor-item-view'
43 isReadOnlyMode={true}>
45 <div className='list-editor-item-view-field'>
46 <div className='title'>{i18n('Name')}</div>
47 <div className='name'>{name}</div>
49 <div className='list-editor-item-view-field'>
50 <div className='title'>{i18n('DHCP')}</div>
51 <div className='artifact-name'>{dhcp ? i18n('YES') : i18n('NO')}</div>
58 let {networksList} = this.props;
60 let {localFilter} = this.state;
61 if (localFilter.trim()) {
62 const filter = new RegExp(escape(localFilter), 'i');
63 return networksList.filter(({name = ''}) => {
64 return escape(name).match(filter);
73 export default SoftwareProductNetworksView;