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

7 lines
16 KiB
JavaScript
Raw Normal View History

2013-10-30 22:47:58 +00:00
/*! Filter widget formatter functions - updated 10/30/2013
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
*/
!function(a){"use strict";a.tablesorter=a.tablesorter||{},a.tablesorter.filterFormatter={uiSpinner:function(b,c,d){var e=a.extend({min:0,max:100,step:1,value:1,delayed:!0,addToggle:!0,disabled:!1,exactMatch:!0,compare:""},d),f=a('<input class="filter" type="hidden">').appendTo(b).bind("change.tsfilter",function(){i({value:this.value,delayed:!1})}),g=[],h=b.closest("table")[0].config,i=function(c){var f,d=!0,h=c&&c.value&&a.tablesorter.formatFloat((c.value+"").replace(/[><=]/g,""))||b.find(".spinner").val()||e.value;e.addToggle&&(d=b.find(".toggle").is(":checked")),f=e.disabled||!d?"disable":"enable",b.find(".filter").val(d?(e.compare?e.compare:e.exactMatch?"=":"")+h:"").trigger("search",c&&"boolean"==typeof c.delayed?c.delayed:e.delayed).end().find(".spinner").spinner(f).val(h),g.length&&(g.find(".spinner").spinner(f).val(h),e.addToggle&&(g.find(".toggle")[0].checked=d))};return e.oldcreate=e.create,e.oldspin=e.spin,e.create=function(a,b){i(),"function"==typeof e.oldcreate&&e.oldcreate(a,b)},e.spin=function(a,b){i(b),"function"==typeof e.oldspin&&e.oldspin(a,b)},e.addToggle&&a('<div class="button"><input id="uispinnerbutton'+c+'" type="checkbox" class="toggle" /><label for="uispinnerbutton'+c+'"></label></div>').appendTo(b).find(".toggle").bind("change",function(){i()}),b.closest("thead").find("th[data-column="+c+"]").addClass("filter-parsed"),a('<input class="spinner spinner'+c+'" />').val(e.value).appendTo(b).spinner(e).bind("change keyup",function(){i()}),h.$table.bind("stickyHeadersInit",function(){g=h.widgetOptions.$sticky.find(".tablesorter-filter-row").children().eq(c).empty(),e.addToggle&&a('<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,i()}),a('<input class="spinner spinner'+c+'" />').val(e.value).appendTo(g).spinner(e).bind("change keyup",function(){b.find(".spinner").val(this.value),i()})}),h.$table.bind("filterReset",function(){e.addToggle&&(b.find(".toggle")[0].checked=!1),i()}),i(),f},uiSlider:function(b,c,d){var e=a.extend({value:0,min:0,max:100,step:1,range:"min",delayed:!0,valueToHeader:!1,exactMatch:!0,compare:"",allText:"all"},d),f=a('<input class="filter" type="hidden">').appendTo(b).bind("change.tsfilter",function(){i({value:this.value})}),g=[],h=b.closest("table")[0].config,i=function(d){var f="undefined"!=typeof d?a.tablesorter.formatFloat((d.value+"").replace(/[><=]/g,""))||e.min:e.value,h=e.compare?f:f===e.min?e.allText:f,i=e.compare+h;e.valueToHeader?b.closest("thead").find("th[data-column="+c+"]").find(".curvalue").html(" ("+i+")"):b.find(".ui-slider-handle").addClass("value-popup").attr("data-value",i),b.find(".filter").val(e.compare?e.compare+f:f===e.min?"":(e.exactMatch?"=":"")+f).trigger("search",d&&"boolean"==typeof d.delayed?d.delayed:e.delayed).end().find(".slider").slider("value",f),g.length&&(g.find(".slider").slider("value",f),e.valueToHeader?g.closest("thead").find("th[data-column="+c+"]").find(".curvalue").html(" ("+i+")"):g.find(".ui-slider-handle").addClass("value-popup").attr("data-value",i))};return b.closest("thead").find("th[data-column="+c+"]").addClass("filter-parsed"),e.valueToHeader&&b.closest("thead").find("th[data-column="+c+"]").find(".tablesorter-header-inner").append('<span class="curvalue" />'),e.oldcreate=e.create,e.oldslide=e.slide,e.create=function(a,b){i(),"function"==typeof e.oldcreate&&e.oldcreate(a,b)},e.slide=function(a,b){i(b),"function"==typeof e.oldslide&&e.oldslide(a,b)},a('<div class="slider slider'+c+'"/>').appendTo(b).slider(e),h.$table.bind("filterReset",function(){b.find(".slider").slider("value",e.value),i()}),h.$table.bind("stickyHeadersInit",function(){g=h.widgetOptions.$sticky.find(".tablesorter-filter-row").children().eq(c).empty(),a('<div class="slider slider'+c+'"/>').val(e.value).appendTo(g).slider(e).bind("change keyup",function(){b.find(".slider").val(this.value),i()})}),f},uiRange:function(b,c,d){var e=a.extend({values:[0,100],min:0,max:100,ran