vedmack/yadcf

text_data_delimiter on range_number_slider

Closed this issue · 6 comments

Hello!
I have a table containing a column with different numbers separated by comma (eg. 12,34,56,78). When I use the filter_type = "multi-select" and text_data_delimiter = "," it works but it's not working with the range number slider.

Is there any chance to make this filter working for selecting numeric values separated by comma?

Many thanks

Hi

Please provide a jsfiddle test page, use this for a start https://jsfiddle.net/vedmack/t09q871w/

Hi @vedmack, I reproduced the bug into this fiddle.

Latest versions of jquery, datatables and beta version of yadcf

https://jsfiddle.net/wynstep/nvoru7hc/

Thanks!

Hi

Please take a look at the following test page, and let me know what do you think

https://jsfiddle.net/vedmack/qko6nd4y/9/

@vedmack Hi and thanks for your kind help!
According to the jsfiddle, the filter still seems not working as expected. I would like the filter to work if any of the values in the row (comma-separated) are included in the numeric range.

Hi,

grab 0.9.4.beta.29,
I have added range_data_type: 'delimiter'

yadcf.init(tTable, [{
  column_number: 2,
  filter_type: "range_number_slider",
  text_data_delimiter: ",",
  range_data_type: 'delimiter'
}]);

https://jsfiddle.net/vedmack/qko6nd4y/

I need the delimiter for range_number as well and was able to get it to work by using this code change starting at like 1557 - not sure if this would break the range slider but it allows range_number to work with the deliminer.

else if (columnObj.range_data_type === 'delimiter') { if (columnObj.text_data_delimiter !== undefined) { let valSplitted = val.split(columnObj.text_data_delimiter); let anyNumberInRange = function (fromToObj) { return function (element, index, array) { if (min === "" && max === "") { retVal = true; } else if (min === "" && element <= max) { retVal = true; } else if (min <= element && "" === max) { retVal = true; } else if (min <= element && element <= max) { retVal = true; } return retVal; //return element >= fromToObj.from && element <= fromToObj.to; }; }; retVal = valSplitted.some(anyNumberInRange({ from: min, to: max })); } }