Skip to content

Commit f4dd1ad

Browse files
committed
merge from development
2 parents a25d6ad + 51e3015 commit f4dd1ad

File tree

3 files changed

+90
-36
lines changed

3 files changed

+90
-36
lines changed

example/dist/index.js

Lines changed: 45 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23901,12 +23901,14 @@ var UserList = function (_Component) {
2390123901
_createClass(UserList, [{
2390223902
key: 'componentDidMount',
2390323903
value: function componentDidMount() {
23904-
// setTimeout(() => {
23905-
this.setState({
23906-
loading: false,
23907-
users: _data2.default
23908-
});
23909-
// }, 5000);
23904+
var _this2 = this;
23905+
23906+
setTimeout(function () {
23907+
_this2.setState({
23908+
loading: false,
23909+
users: _data2.default
23910+
});
23911+
}, 3000);
2391023912
}
2391123913
}, {
2391223914
key: 'editUser',
@@ -23930,6 +23932,7 @@ var UserList = function (_Component) {
2393023932
'div',
2393123933
null,
2393223934
_react2.default.createElement(_index2.default, {
23935+
className: 'table table-bordered table-striped custom-class',
2393323936
config: this.config,
2393423937
records: this.state.users,
2393523938
columns: this.columns,
@@ -24245,8 +24248,21 @@ var ReactDatatable = function (_Component) {
2424524248
tableHtml += "</tr>";
2424624249
tableHtml += "</thead>";
2424724250
tableHtml += "<tbody>";
24248-
for (var i in this.props.records) {
24249-
var record = this.props.records[i];
24251+
24252+
// Filter records before export
24253+
var filterRecords = this.props.records;
24254+
if (this.props.dynamic === false) {
24255+
var records = this.sortRecords(),
24256+
filterValue = this.state.filter_value;
24257+
filterRecords = records;
24258+
24259+
if (filterValue) {
24260+
filterRecords = this.filterData(records);
24261+
}
24262+
}
24263+
24264+
for (var i in filterRecords) {
24265+
var record = filterRecords[i];
2425024266
tableHtml += "<tr>";
2425124267
var _iteratorNormalCompletion2 = true;
2425224268
var _didIteratorError2 = false;
@@ -24300,7 +24316,6 @@ var ReactDatatable = function (_Component) {
2430024316
var filename = this.config.filename ? this.config.filename + '.xls' : 'table.xls';
2430124317
// Create download link element
2430224318
downloadLink = document.createElement("a");
24303-
// document.body.appendChild(downloadLink);
2430424319
if (navigator.msSaveOrOpenBlob) {
2430524320
var blob = new Blob(['\uFEFF', tableHtml], {
2430624321
type: dataType
@@ -24355,7 +24370,7 @@ var ReactDatatable = function (_Component) {
2435524370
}
2435624371
}, {
2435724372
key: 'exportToCSV',
24358-
value: function exportToCSV(headers, items, fileTitle) {
24373+
value: function exportToCSV() {
2435924374
var headers = {};
2436024375
// add columns in sheet array
2436124376
var _iteratorNormalCompletion3 = true;
@@ -24368,6 +24383,8 @@ var ReactDatatable = function (_Component) {
2436824383

2436924384
headers[column.key] = '"' + column.text + '"';
2437024385
}
24386+
24387+
// Filter records before export
2437124388
} catch (err) {
2437224389
_didIteratorError3 = true;
2437324390
_iteratorError3 = err;
@@ -24383,10 +24400,21 @@ var ReactDatatable = function (_Component) {
2438324400
}
2438424401
}
2438524402

24403+
var filterRecords = this.props.records;
24404+
if (this.props.dynamic === false) {
24405+
var _records = this.sortRecords(),
24406+
filterValue = this.state.filter_value;
24407+
filterRecords = _records;
24408+
24409+
if (filterValue) {
24410+
filterRecords = this.filterData(_records);
24411+
}
24412+
}
24413+
2438624414
var records = [];
2438724415
// add data rows in sheet array
24388-
for (var i in this.props.records) {
24389-
var record = this.props.records[i],
24416+
for (var i in filterRecords) {
24417+
var record = filterRecords[i],
2439024418
newRecord = {};
2439124419
var _iteratorNormalCompletion4 = true;
2439224420
var _didIteratorError4 = false;
@@ -24431,23 +24459,23 @@ var ReactDatatable = function (_Component) {
2443124459
// Convert Object to JSON
2443224460
var jsonObject = JSON.stringify(records);
2443324461
var csv = this.convertToCSV(jsonObject);
24434-
var exportedFilenmae = this.config.filename + '.csv' || 'export.csv';
24462+
var exportedFilename = this.config.filename + '.csv' || 'export.csv';
2443524463
var blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
2443624464
if (navigator.msSaveBlob) {
2443724465
// IE 10+
24438-
navigator.msSaveBlob(blob, exportedFilenmae);
24466+
navigator.msSaveBlob(blob, exportedFilename);
2443924467
} else {
2444024468
var link = document.createElement("a");
2444124469
if (link.download !== undefined) {
2444224470
// feature detection
2444324471
// Browsers that support HTML5 download attribute
2444424472
var url = URL.createObjectURL(blob);
2444524473
link.setAttribute("href", url);
24446-
link.setAttribute("download", exportedFilenmae);
24474+
link.setAttribute("download", exportedFilename);
2444724475
link.style.visibility = 'hidden';
2444824476
document.body.appendChild(link);
2444924477
link.click();
24450-
document.body.removeChild(link);
24478+
link.remove();
2445124479
}
2445224480
}
2445324481
}
@@ -24651,7 +24679,7 @@ var ReactDatatable = function (_Component) {
2465124679
_react2.default.createElement(
2465224680
'td',
2465324681
{ colSpan: this.props.columns.length, align: 'center' },
24654-
this.config.no_data_text
24682+
this.config.language.no_data_text
2465524683
)
2465624684
)
2465724685
)

example/src/UserList.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,12 @@ class UserList extends Component {
138138
}
139139

140140
componentDidMount () {
141-
// setTimeout(() => {
141+
setTimeout(() => {
142142
this.setState({
143143
loading: false,
144144
users: users
145145
})
146-
// }, 5000);
146+
}, 3000);
147147
}
148148

149149
editUser(user) {
@@ -162,6 +162,7 @@ class UserList extends Component {
162162
return (
163163
<div>
164164
<ReactDatatable
165+
className="table table-bordered table-striped custom-class"
165166
config={this.config}
166167
records={this.state.users}
167168
columns={this.columns}

src/index.js

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ class ReactDatatable extends Component {
190190
}
191191

192192
strip(html){
193-
var doc = new DOMParser().parseFromString(html, 'text/html');
193+
let doc = new DOMParser().parseFromString(html, 'text/html');
194194
return doc.body.textContent || "";
195195
}
196196

@@ -204,8 +204,21 @@ class ReactDatatable extends Component {
204204
tableHtml += "</tr>";
205205
tableHtml += "</thead>";
206206
tableHtml += "<tbody>";
207-
for (let i in this.props.records) {
208-
let record = this.props.records[i];
207+
208+
// Filter records before export
209+
let filterRecords = this.props.records;
210+
if(this.props.dynamic === false){
211+
let records = this.sortRecords(),
212+
filterValue = this.state.filter_value;
213+
filterRecords = records;
214+
215+
if (filterValue) {
216+
filterRecords = this.filterData(records);
217+
}
218+
}
219+
220+
for (let i in filterRecords) {
221+
let record = filterRecords[i];
209222
tableHtml += "<tr>";
210223
for (let column of this.props.columns) {
211224
if (column.cell && typeof column.cell === "function") {
@@ -235,9 +248,8 @@ class ReactDatatable extends Component {
235248
let filename = this.config.filename ? this.config.filename + '.xls':'table.xls';
236249
// Create download link element
237250
downloadLink = document.createElement("a");
238-
// document.body.appendChild(downloadLink);
239251
if(navigator.msSaveOrOpenBlob){
240-
var blob = new Blob(['\ufeff', tableHtml], {
252+
let blob = new Blob(['\ufeff', tableHtml], {
241253
type: dataType
242254
});
243255
navigator.msSaveOrOpenBlob(blob, filename);
@@ -254,13 +266,13 @@ class ReactDatatable extends Component {
254266
exportToPDF() {
255267
let tableHtml = this.getExportHtml();
256268

257-
var style = "<style>";
269+
let style = "<style>";
258270
style = style + "table {width: 100%;font: 17px Calibri;}";
259271
style = style + "table, th, td {border: solid 1px #DDD; border-collapse: collapse;";
260272
style = style + "padding: 2px 3px;text-align:left;}";
261273
style = style + "</style>";
262274

263-
var win = window.open('', '_blank');
275+
let win = window.open('', '_blank');
264276
win.document.write('<html><head>');
265277
win.document.write('<title>' + this.config.filename + '</title>');
266278
win.document.write(style);
@@ -287,16 +299,29 @@ class ReactDatatable extends Component {
287299
return str;
288300
}
289301

290-
exportToCSV(headers, items, fileTitle){
291-
var headers = {};
302+
exportToCSV(){
303+
let headers = {};
292304
// add columns in sheet array
293305
for (let column of this.props.columns) {
294306
headers[column.key] = '"' + column.text + '"';
295307
}
296-
var records = [];
308+
309+
// Filter records before export
310+
let filterRecords = this.props.records;
311+
if(this.props.dynamic === false){
312+
let records = this.sortRecords(),
313+
filterValue = this.state.filter_value;
314+
filterRecords = records;
315+
316+
if (filterValue) {
317+
filterRecords = this.filterData(records);
318+
}
319+
}
320+
321+
let records = [];
297322
// add data rows in sheet array
298-
for (let i in this.props.records) {
299-
let record = this.props.records[i],
323+
for (let i in filterRecords) {
324+
let record = filterRecords[i],
300325
newRecord = {};
301326
for (let column of this.props.columns) {
302327
if (column.cell && typeof column.cell === "function") {
@@ -319,21 +344,21 @@ class ReactDatatable extends Component {
319344
// Convert Object to JSON
320345
let jsonObject = JSON.stringify(records);
321346
let csv = this.convertToCSV(jsonObject);
322-
let exportedFilenmae = this.config.filename + '.csv' || 'export.csv';
347+
let exportedFilename = this.config.filename + '.csv' || 'export.csv';
323348
let blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
324349
if (navigator.msSaveBlob) { // IE 10+
325-
navigator.msSaveBlob(blob, exportedFilenmae);
350+
navigator.msSaveBlob(blob, exportedFilename);
326351
} else {
327352
let link = document.createElement("a");
328353
if (link.download !== undefined) { // feature detection
329354
// Browsers that support HTML5 download attribute
330355
let url = URL.createObjectURL(blob);
331356
link.setAttribute("href", url);
332-
link.setAttribute("download", exportedFilenmae);
357+
link.setAttribute("download", exportedFilename);
333358
link.style.visibility = 'hidden';
334359
document.body.appendChild(link);
335360
link.click();
336-
document.body.removeChild(link);
361+
link.remove();
337362
}
338363
}
339364
}
@@ -497,7 +522,7 @@ class ReactDatatable extends Component {
497522
(
498523
<tr>
499524
<td colSpan={this.props.columns.length} align="center">
500-
{this.config.no_data_text}
525+
{this.config.language.no_data_text}
501526
</td>
502527
</tr>
503528
)

0 commit comments

Comments
 (0)