Filter table by buttons color in rows

Filter table by buttons color in rows

Elifnr17Elifnr17 Posts: 3Questions: 2Answers: 0

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

Sign In or Register to comment.