tablesorter/js/jquery.tablesorter.widgets-filter-formatter.min.js

7 lines
20 KiB
JavaScript
Raw Normal View History

2014-02-19 19:27:23 +00:00
/*! Filter widget formatter functions - updated 2/19/2014 (v2.15.0)
2013-02-17 19:23:36 +00:00
* requires: tableSorter 2.7.7+ and jQuery 1.4.3+
* jQuery UI spinner, silder, range slider & datepicker (range)
* HTML5 number (spinner), range slider & color selector
*/
2014-02-19 19:27:23 +00:00
;(function(h){var s=h.tablesorter||{},p=s.filterFormatter={addCompare:function(b,c,f){if(f.compare&&h.isArray(f.compare)&&1<f.compare.length){var a="",e=[".compare-select".slice(1)," "+".compare-select".slice(1),""],g=f.cellText?'<label class="'+e.join("-label")+c+'">'+f.cellText+"</label>":"";h.each(f.compare,function(b,d){a+="<option "+(f.selected===b?"selected":"")+">"+d+"</option>"});b.wrapInner('<div class="'+e.join("-wrapper")+c+'" />').prepend(g+'<select class="'+e.join("")+c+'" />').find("select").append(a)}}, updateCompare:function(b,c,f){c=c.val()||"";var a=c.replace(/\s*?[><=]\s*?/g,""),e=c.match(/[><=]/g)||"";f.compare&&(h.isArray(f.compare)&&(e=(e||[]).join("")||f.compare[f.selected||0]),b.find(".compare-select").val(e));return[c,a]},uiSpinner:function(b,c,f){var a=h.extend({delayed:!0,addToggle:!0,exactMatch:!0,value:1,cellText:"",compare:"",min:0,max:100,step:1,disabled:!1},f),e=h('<input class="filter" type="hidden">').appendTo(b).bind("change.tsfilter",function(){d({value:this.value,delayed:!1})}), g=[],k=b.closest("table")[0].config,d=function(d,e){var q=!0,c,r=d&&d.value&&s.formatFloat((d.value+"").replace(/[><=]/g,""))||b.find(".spinner").val()||a.value,t=(h.isArray(a.compare)?b.find(".compare-select").val()||a.compare[a.selected||0]:a.compare)||"",f=d&&"boolean"===typeof d.delayed?d.delayed:k.$table[0].hasInitialized?a.delayed:!0;a.addToggle&&(q=b.find(".toggle").is(":checked"));c=a.disabled||!q?"disable":"enable";b.find(".filter").val(q?(t?t:a.exactMatch?"=":"")+r:"").trigger(e?"":"search", f).end().find(".spinner").spinner(c).val(r);g.length&&(g.find(".spinner").spinner(c).val(r).end().find(".compare-select").val(t),a.addToggle&&(g.find(".toggle")[0].checked=q))};a.oldcreate=a.create;a.oldspin=a.spin;a.create=function(b,e){d();"function"===typeof a.oldcreate&&a.oldcreate(b,e)};a.spin=function(b,e){d(e);"function"===typeof a.oldspin&&a.oldspin(b,e)};a.addToggle&&h('<div class="button"><input id="uispinnerbutton'+c+'" type="checkbox" class="toggle" /><label for="uispinnerbutton'+c+'"></label></div>').appendTo(b).find(".toggle").bind("change", function(){d()});b.closest("thead").find("th[data-column="+c+"]").addClass("filter-parsed");h('<input class="spinner spinner'+c+'" />').val(a.value).appendTo(b).spinner(a).bind("change keyup",function(){d()});k.$table.bind("filterFomatterUpdate",function(){var c=p.updateCompare(b,e,a)[0];b.find(".spinner").val(c);d({value:c},!0)});a.compare&&(p.addCompare(b,c,a),b.find(".compare-select").bind("change",function(){d()}));k.$table.bind("stickyHeadersInit",function(){g=k.widgetOptions.$sticky.find(".tablesorter-filter-row").children().eq(c).empty(); a.addToggle&&h('<div class="button"><input id="stickyuispinnerbutton'+c+'" type="checkbox" class="toggle" /><label for="stickyuispinnerbutton'+c+'"></label></div>').appendTo(g).find(".toggle").bind("change",function(){b.find(".toggle")[0].checked=this.checked;d()});h('<input class="spinner spinner'+c+'" />').val(a.value).appendTo(g).spinner(a).bind("change keyup",function(){b.find(".spinner").val(this.value);d()});a.compare&&(p.addCompare(g,c,a),g.find(".compare-select").bind("change",function(){b.find(".compare-select").val(h(this).val()); d()}))});k.$table.bind("filterReset",function(){h.isArray(a.compare)&&b.add(g).find(".compare-select").val(a.compare[a.selected||0]);a.addToggle&&(b.find(".toggle")[0].checked=!1);b.find(".spinner").spinner("value",a.value);setTimeout(function(){d()},0)});d();return e},uiSlider:function(b,c,f){var a=h.extend({delayed:!0,valueToHeader:!1,exactMatch:!0,cellText:"",compare:"",allText:"all",value:0,min:0,max:100,step:1,range:"min"},f),e=h('<input class="filter" type="hidden">').appendTo(b).bind("change.tsfilter", function(){d({value:this.value})}),g=[],k=b.closest("table")[0].config,d=function(d,e){var q="undefined"!==typeof d?s.formatFloat((d.value+"").replace(/[><=]/g,""))||a.value:a.value,n=a.compare?q:q===a.min?a.allText:q,r=(h.isArray(a.compare)?b.find(".compare-select").val()||a.compare[a.selected||0]:a.compare)||"",n=r+n,f=d&&"boolean"===typeof d.delayed?d.delayed:k.$table[0].hasI