Filter table by buttons color in rows
Filter table by buttons color in rows
Elifnr17
Posts: 3Questions: 2Answers: 0
in DataTables
Hello. In my page i have a datatable and i want to filter this table by buttons in row cells by button's colors. I already have multiple date range filters and number filters so i want to use these 3 filters together. Here is my date range and number filter script
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var trueList = [];
for (var i = 0; i < list.length; i++) {
var index1 = list[i];
var min = $('#' + index1 + '_dateMin').val();
var max = $('#' + index1 + '_dateMax').val();
if (min != '') {
var dateText = $('#' + index1 + '_dateMin').val();
if (dateText == undefined) {
dateText = '01.01.2000';
}
var day = dateText.split('-')[2];
var month = dateText.split('-')[1];
var year = dateText.split('-')[0];
var x = month + "/" + day + "/" + year;
min = new Date(x);
}
if (max != '') {
var dateText = $('#' + index1 + '_dateMax').val();
if (dateText == undefined) {
dateText = '01.01.2999';
}
var day = dateText.split('-')[2];
var month = dateText.split('-')[1];
var year = dateText.split('-')[0];
var x = month + "/" + day + "/" + year;
max = new Date(x);
}
var date;
date = data[index1];
if (date == undefined) {
date = '01.01.1990';
}
var day = date.split('.')[0];
var month = date.split('.')[1];
var year = date.split('.')[2];
var x = month + "/" + day + "/" + year;
date = new Date(x);
var withinDates = (
(min == "" && max == "") ||
(min == "" && date <= max) ||
(min <= date && max == "") ||
(min <= date && date <= max)
);
trueList.push(withinDates);
}
for (var i = 0; i < listNumber.length; i++) {
var index1 = listNumber[i];
var min = Number($('#' + index1 + '_dateMin').val());
var max = Number( $('#' + index1 + '_dateMax').val());
var num;
num = Number(data[index1]);
if (num == '' || num == undefined) {
num = -1000;
}
var withinDates = (
(min == "" && max == "") ||
(min == "" && num <= max) ||
(min <= num && max == "") ||
(min <= num && num <= max)
);
trueList.push(withinDates);
}
for (var i = 0; i < trueList.length; i++) {
if (!trueList[i]) {
return false;
}
}
return true;
}
);
I really would appreciate some help. Thanks in advance.
Answers
I would look at using Orthogonal data and set the value for the
filter
operation based on the color of the button. You can use that value in the search plugin or by using thesearch()
orcolumn().search()
API.For more specific help please provide a test case showing how you build your buttons. Then we can help with more specific options.
https://datatables.net/manual/tech-notes/10#How-to-provide-a-test-case
Kevin