1 import React from 'react';
2 import i18n from 'nfvo-utils/i18n/i18n.js';
3 import ValidationForm from 'nfvo-components/input/validation/ValidationForm.jsx';
5 import ListEditorView from 'nfvo-components/listEditor/ListEditorView.jsx';
6 import ListEditorItemView from 'nfvo-components/listEditor/ListEditorItemView.jsx';
7 import ValidationInput from'nfvo-components/input/validation/ValidationInput.jsx';
8 import Modal from 'nfvo-components/modal/Modal.jsx';
10 import SoftwareProductComponentsNICEditor from './SoftwareProductComponentsNICEditor.js';
12 class SoftwareProductComponentsNetworkView extends React.Component {
19 let {qdata, qschema, onQDataChanged, isModalInEditMode, isDisplayModal, softwareProductId, componentId, isReadOnlyMode} = this.props;
22 <div className='vsp-components-network'>
23 <div className='network-data'>
26 onDataChanged={onQDataChanged}
28 isReadOnlyMode={isReadOnlyMode}
31 <h3 className='section-title'>{i18n('Network Capacity')}</h3>
32 <div className='rows-section'>
33 <div className='row-flex-components input-row'>
34 <div className='single-col'>
36 label={i18n('Protocol with Highest Traffic Profile across all NICs')}
38 pointer='/network/networkCapacity/protocolWithHighestTrafficProfileAcrossAllNICs'/>
40 <div className='single-col add-line-break'>
42 label={i18n('Network Transactions per Second')}
44 pointer='/network/networkCapacity/networkTransactionsPerSecond'/>
46 <div className='empty-two-col' />
52 {this.renderNicList()}
54 <Modal show={isDisplayModal} bsSize='large' animation={true} className='network-nic-modal'>
56 <Modal.Title>{isModalInEditMode ? i18n('Edit NIC') : i18n('Create New NIC')}</Modal.Title>
60 <SoftwareProductComponentsNICEditor
61 softwareProductId={softwareProductId}
62 componentId={componentId}
63 isReadOnlyMode={isReadOnlyMode}/>
72 const {localFilter} = this.state;
73 let {onAddNIC, manualMode, isReadOnlyMode} = this.props;
74 let onAdd = manualMode ? onAddNIC : false;
77 title={i18n('Interfaces')}
78 plusButtonTitle={i18n('Add NIC')}
79 filterValue={localFilter}
80 placeholder={i18n('Filter NICs by Name')}
82 isReadOnlyMode={isReadOnlyMode}
83 onFilter={filter => this.setState({localFilter: filter})}>
84 {!manualMode && this.filterList().map(nic => this.renderNicListItem(nic, isReadOnlyMode))}
89 renderNicListItem(nic, isReadOnlyMode) {
90 let {id, name, description, networkName = ''} = nic;
91 let {onEditNicClick, version} = this.props;
95 className='list-editor-item-view'
96 isReadOnlyMode={isReadOnlyMode}
97 onSelect={() => onEditNicClick(nic, version)}>
99 <div className='list-editor-item-view-field'>
100 <div className='title'>{i18n('Name')}</div>
101 <div className='name'>{name}</div>
103 <div className='list-editor-item-view-field'>
104 <div className='title'>{i18n('Purpose of NIC')}</div>
105 <div className='description'>{description}</div>
107 <div className='list-editor-item-view-field'>
108 <div className='title'>{i18n('Network')}</div>
109 <div className='artifact-name'>{networkName}</div>
112 </ListEditorItemView>
117 let {nicList} = this.props;
118 let {localFilter} = this.state;
119 if (localFilter.trim()) {
120 const filter = new RegExp(escape(localFilter), 'i');
121 return nicList.filter(({name = '', description = ''}) => {
122 return escape(name).match(filter) || escape(description).match(filter);
131 let {onSubmit, qdata} = this.props;
132 return onSubmit({qdata});
136 export default SoftwareProductComponentsNetworkView;