Skip to content

Commit cb877bd

Browse files
committed
Fix #68: Reinstated server-side support for checkboxes.selected() API method
1 parent b6e0683 commit cb877bd

File tree

2 files changed

+31
-18
lines changed

2 files changed

+31
-18
lines changed

js/dataTables.checkboxes.js

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1123,30 +1123,43 @@
11231123

11241124
Api.registerPlural( 'columns().checkboxes.selected()', 'column().checkboxes.selected()', function () {
11251125
return this.iterator( 'column-rows', function ( ctx, colIdx, i, j, rowsIdx ) {
1126+
11261127
// If Checkboxes extension is enabled for this column
11271128
if(ctx.aoColumns[colIdx].checkboxes){
1128-
// Prepare a list of all cells
1129-
var selector = [];
1130-
$.each(rowsIdx, function(index, rowIdx){
1131-
selector.push({ row: rowIdx, column: colIdx });
1132-
});
1133-
1134-
// Get all cells data
1135-
var cells = this.cells(selector);
1136-
var cellsData = cells.data();
1137-
11381129
var data = [];
11391130

1140-
// Enumerate all cells data
1141-
$.each(cellsData, function(index, cellData){
1142-
// If checkbox is checked
1143-
if(ctx.checkboxes.s.data[colIdx].hasOwnProperty(cellData)){
1144-
// If checkbox in the cell can be selected
1131+
// If server-side processing mode is enabled
1132+
if(ctx.oFeatures.bServerSide){
1133+
$.each(ctx.checkboxes.s.data[colIdx], function(cellData){
1134+
// If checkbox in the cell can be checked
11451135
if(ctx.checkboxes.isCellSelectable(colIdx, cellData)){
11461136
data.push(cellData);
11471137
}
1148-
}
1149-
});
1138+
});
1139+
1140+
// Otherwise, if server-side processing mode is not enabled
1141+
} else {
1142+
// Prepare a list of all cells
1143+
var selector = [];
1144+
$.each(rowsIdx, function(index, rowIdx){
1145+
selector.push({ row: rowIdx, column: colIdx });
1146+
});
1147+
1148+
// Get all cells data
1149+
var cells = this.cells(selector);
1150+
var cellsData = cells.data();
1151+
1152+
// Enumerate all cells data
1153+
$.each(cellsData, function(index, cellData){
1154+
// If checkbox is checked
1155+
if(ctx.checkboxes.s.data[colIdx].hasOwnProperty(cellData)){
1156+
// If checkbox in the cell can be selected
1157+
if(ctx.checkboxes.isCellSelectable(colIdx, cellData)){
1158+
data.push(cellData);
1159+
}
1160+
}
1161+
});
1162+
}
11501163

11511164
return data;
11521165

0 commit comments

Comments
 (0)