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

7 lines
20 KiB
JavaScript
Raw Normal View History

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