/* * Find html tag and parse options for filter */ function getElementWithOptions(name, hasMany){ var attr = "fjs-"+ name; var $eles = $("[" + attr + "]"); var options = []; if(!$eles.length){ return; } $.each($eles, function(){ var $ele = $(this); var option = { ele: $ele }; var optionStr = $ele.attr(attr); options.push(option); if(!optionStr){ return options; } $.each(optionStr.split(','), function(i, opt){ var kv = opt.split("="); option[kv[0]] = kv[1]; }) }) return hasMany ? options : options[0]; }; FilterJS.auto = function(records, callbacks){ var options = {}; var container = getElementWithOptions("items"); var fjs, search, template, criterias; if(!container || !container.template){ return; } options.template = container.template search = getElementWithOptions("search"); if(search){ if(search.fields){ search.fields = search.fields.split(','); } options.search = search; } if(callbacks){ options.callbacks = callbacks; } fjs = FilterJS(records, container.ele, options) criterias = getElementWithOptions("criteria", true); if(criterias){ fjs.addCriteria(criterias); } return fjs };