aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-ui/src/nfvo-components/listEditor/ListEditorView.jsx
blob: 1ee91f31f6ebc53439270e492ea50e3c5e73692c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import React from 'react';
import FontAwesome from 'react-fontawesome';
import Input from 'react-bootstrap/lib/Input.js';


class ListEditorView extends React.Component {

	static defaultProps = {
		className: ''
	};

	static propTypes = {
		title: React.PropTypes.string,
		plusButtonTitle: React.PropTypes.string,
		children: React.PropTypes.node,
		filterValue: React.PropTypes.string,
		onFilter: React.PropTypes.func,
		className: React.PropTypes.string,
		isReadOnlyMode: React.PropTypes.bool,
		placeholder: React.PropTypes.string
	};

	render() {
		let {title, plusButtonTitle, onAdd, children, filterValue, onFilter, className, placeholder, isReadOnlyMode} = this.props;
		return (
			<div className={`list-editor-view ${className}`}>
				{title && onAdd && <div className='list-editor-view-title'>{title}</div>}
				<div className='list-editor-view-actions'>
					{title && !onAdd && <div className='list-editor-view-title-inline'>{title}</div>}
					<div className={`list-editor-view-add-controller${isReadOnlyMode ? ' disabled' : ''}`} >
						{ onAdd &&
							<div onClick={onAdd}>
								<span className='plus-icon-button pull-left'/>
								<span>{plusButtonTitle}</span>
							</div>
						}
					</div>

					{
						onFilter &&
							<div className='list-editor-view-search search-wrapper'>
								<Input
									ref='filter'
									type='text'
									value={filterValue}
									name='list-editor-view-search'
									placeholder={placeholder}
									groupClassName='search-input-control'
									onChange={() => onFilter(this.refs.filter.getValue())}/>
								<FontAwesome name='filter' className='filter-icon'/>
							</div>
					}
				</div>
				<div className='list-editor-view-list-scroller'>
					<div className='list-editor-view-list'>
						{children}
					</div>
				</div>
			</div>
		);
	}

}
export default ListEditorView;