Skip to content

Commit bbcd82e

Browse files
committed
Merge branch 'eitansela-master'
2 parents 8d847fd + b76faaf commit bbcd82e

File tree

3 files changed

+55
-2
lines changed

3 files changed

+55
-2
lines changed

examples/js/column-filter/demo.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import ProgrammaticallyTextFilter from './text-filter-programmatically';
66
import RegexFilter from './regex-filter';
77
import ProgrammaticallyRegexFilter from './regex-filter-programmatically';
88
import SelectFilter from './select-filter';
9+
import SelectFilterWithCustomText from './select-filter-with-select-text';
910
import SelectFilterWithDefaultValue from './select-filter-with-default-value';
1011
import ProgrammaticallySelectFilter from './select-filter-programmatically';
1112
import SelectFilterWithSort from './select-filter-with-sort';
@@ -79,6 +80,15 @@ class Demo extends React.Component {
7980
</div>
8081
</div>
8182
</div>
83+
<div className='col-md-offset-1 col-md-8'>
84+
<div className='panel panel-default'>
85+
<div className='panel-heading'>Select Filter with Custom Text Example</div>
86+
<div className='panel-body'>
87+
<h5>Source in /examples/js/column-filter/select-filter-with-select-text.js</h5>
88+
<SelectFilterWithCustomText />
89+
</div>
90+
</div>
91+
</div>
8292
<div className='col-md-offset-1 col-md-8'>
8393
<div className='panel panel-default'>
8494
<div className='panel-heading'>Select Filter With Default Value Example</div>
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/* eslint max-len: 0 */
2+
import React from 'react';
3+
import { BootstrapTable, TableHeaderColumn } from 'react-bootstrap-table';
4+
5+
const products = [];
6+
7+
const qualityType = {
8+
0: 'good',
9+
1: 'Bad',
10+
2: 'unknown'
11+
};
12+
13+
function addProducts(quantity) {
14+
const startId = products.length;
15+
for (let i = 0; i < quantity; i++) {
16+
const id = startId + i;
17+
products.push({
18+
id: id,
19+
name: 'Item name ' + id,
20+
quality: i % 3
21+
});
22+
}
23+
}
24+
25+
addProducts(5);
26+
27+
function enumFormatter(cell, row, enumObject) {
28+
return enumObject[cell];
29+
}
30+
31+
export default class SelectFilter extends React.Component {
32+
render() {
33+
return (
34+
<BootstrapTable data={ products }>
35+
<TableHeaderColumn dataField='id' isKey={ true }>Product ID</TableHeaderColumn>
36+
<TableHeaderColumn dataField='name'>Product Name</TableHeaderColumn>
37+
<TableHeaderColumn dataField='quality' filterFormatted dataFormat={ enumFormatter } formatExtraData={ qualityType }
38+
filter={ { type: 'SelectFilter', options: qualityType, selectText: 'Choose' } }>Product Quality</TableHeaderColumn>
39+
</BootstrapTable>
40+
);
41+
}
42+
}

src/filters/Select.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@ class SelectFilter extends Component {
3434

3535
getOptions() {
3636
const optionTags = [];
37-
const { options, placeholder, columnName } = this.props;
37+
const { options, placeholder, columnName, selectText } = this.props;
38+
const selectTextValue = (selectText !== undefined) ? selectText : 'Select';
3839
optionTags.push((
39-
<option key='-1' value=''>{ placeholder || `Select ${columnName}...` }</option>
40+
<option key='-1' value=''>{ placeholder || `${selectTextValue} ${columnName}...` }</option>
4041
));
4142
Object.keys(options).map(key => {
4243
optionTags.push(<option key={ key } value={ key }>{ options[key] + '' }</option>);

0 commit comments

Comments
 (0)