Здравствуйте!
При сортировке столбцов в DataTable понадобилось создать отдельную функцию сортировки, для обеспечения сортировки по дробному числу, с разделителем - запятой.
Для неё в текущей реализации Webix требуется 3 параметра - строка1, строка2, столбец сортировки.
Однако передаётся только два параметра - две строки. В результате нельзя сделать универсальную сортировку по одному методу для разных столбцов, а приходится делать идентичные процедуры для каждого столбца, что очень нехорошо.
Вот непосредственный код вызова сортировки в вашей библиотеке:
if (typeof type == "function")
this.data.sort(type, direction);
else
this.data.sort(col_id, direction, type || "string");
Предлагаю вот такое изменение которое не повлияет на текущую работу старого кода:
if (typeof type == "function")
this.data.sort(type, direction,col_id); // добавлен параметр, который может не использоваться.
else
this.data.sort(col_id, direction, type || "string");
Весь новый код функции:
_sort:function(col_id, direction, type){
direction = direction || "asc";
this.markSorting(col_id, direction);
if (type == "server"){
this.loadNext(-1, 0, {
"before":function(){
var url = this.data.url;
this.clearAll();
this.data.url = url;
}
}, 0, 1);
} else {
if (type == "text"){
this.data.each(function(obj){ obj.$text = this.getText(obj.id, col_id); }, this);
type="string"; col_id = "$text";
}
if (typeof type == "function")
this.data.sort(type, direction,col_id); // добавлен параметр, который может не использоваться.
else
this.data.sort(col_id, direction, type || "string");
}
},