Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions src/js/modules/ColumnCalcs/ColumnCalcs.js
Original file line number Diff line number Diff line change
Expand Up @@ -449,13 +449,14 @@ export default class ColumnCalcs extends Module{

var cells = [];

this.table.columnManager.columnsByIndex.forEach((column) => {
const hasFormatModule = this.table.modExists("format");
for (const column of this.table.columnManager.columnsByIndex){

//set field name of mock column
this.genColumn.setField(column.getField());
this.genColumn.hozAlign = column.hozAlign;

if(column.definition[pos + "CalcFormatter"] && this.table.modExists("format")){
if(hasFormatModule && column.definition[pos + "CalcFormatter"]){
this.genColumn.modules.format = {
formatter: this.table.modules.format.lookupFormatter(column.definition[pos + "CalcFormatter"]),
params: column.definition[pos + "CalcFormatterParams"] || {},
Expand All @@ -482,7 +483,7 @@ export default class ColumnCalcs extends Module{
if(!column.visible){
cell.hide();
}
});
}

row.cells = cells;
};
Expand All @@ -492,25 +493,24 @@ export default class ColumnCalcs extends Module{

//generate stats row
generateRowData(pos, data){
var rowData = {},
const rowData = {},
calcs = pos == "top" ? this.topCalcs : this.botCalcs,
type = pos == "top" ? "topCalc" : "botCalc",
params, paramKey;
paramKey = type + "Params";

calcs.forEach(function(column){
var values = [];

if(column.modules.columnCalcs && column.modules.columnCalcs[type]){
data.forEach(function(item){
for(const column of calcs){
const colCalcs = column.modules.columnCalcs;
if(colCalcs && colCalcs[type]){
const values = [];
for(const item of data ){
values.push(column.getFieldValue(item));
});

paramKey = type + "Params";
params = typeof column.modules.columnCalcs[paramKey] === "function" ? column.modules.columnCalcs[paramKey](values, data) : column.modules.columnCalcs[paramKey];
}

column.setFieldValue(rowData, column.modules.columnCalcs[type](values, data, params));
const colCalc = colCalcs[paramKey];
const params = typeof colCalc === "function" ? colCalc(values, data) : colCalc;
column.setFieldValue(rowData, colCalcs[type](values, data, params));
}
});
}

return rowData;
}
Expand Down
41 changes: 17 additions & 24 deletions src/js/modules/Filter/Filter.js
Original file line number Diff line number Diff line change
Expand Up @@ -841,22 +841,19 @@ export default class Filter extends Module{

if(this.table.options.filterMode !== "remote" && (this.filterList.length || Object.keys(this.headerFilters).length)){

rowList.forEach((row) => {
for(const row of rowList){
if(this.filterRow(row)){
activeRows.push(row);
}
});

}
}else{
activeRows = rowList.slice(0);
}

if(this.subscribedExternal("dataFiltered")){

activeRows.forEach((row) => {
for(const row of activeRows){
activeRowComponents.push(row.getComponent());
});

}
this.dispatchExternal("dataFiltered", this.getFilters(true), activeRowComponents);
}

Expand All @@ -865,38 +862,34 @@ export default class Filter extends Module{

//filter individual row
filterRow(row, filters){
var match = true,
data = row.getData();

this.filterList.forEach((filter) => {
const data = row.getData();

for(const filter of this.filterList){
if(!this.filterRecurse(filter, data)){
match = false;
return false;
}
});

}

for(var field in this.headerFilters){
for(const field in this.headerFilters){
if(!this.headerFilters[field].func(data)){
match = false;
return false;
}
}

return match;
return true;
}

filterRecurse(filter, data){
var match = false;

if(Array.isArray(filter)){
filter.forEach((subFilter) => {
for(const subFilter of filter){
if(this.filterRecurse(subFilter, data)){
match = true;
return true;
}
});
}
}else{
match = filter.func(data);
return filter.func(data);
}

return match;
return false;
}
}
Loading