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

7 lines
8.0 KiB
JavaScript
Raw Normal View History

2013-02-17 19:23:36 +00:00
/*! Filter widget formatter functions - updated 2/17/2013
* 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
*/
2013-02-17 20:28:18 +00:00
;(function(f){f.tablesorter=f.tablesorter||{};f.tablesorter.filterFormatter={uiSpinner:function(b,e,d){var a=f.extend({min:0,max:100,step:1,value:1,addToggle:!0,disabled:!1,exactMatch:!0,numberFormat:"n"},d);d=f('<input class="filter" type="hidden">').appendTo(b);var c=function(g){var c=!0;g=g&&g.value||f("#spinner"+e).val()||a.value;a.addToggle&&(c=b.find(".toggle").is(":checked"));b.find(".filter").val(c?g+(a.exactMatch?"=":""):"").trigger("search").end().find("#spinner"+e).spinner(a.disabled||!c? "disable":"enable")};a.oldcreate=a.create;a.oldspin=a.spin;a.create=function(b,h){c();"function"===typeof a.oldcreate&&a.oldcreate(b,h)};a.spin=function(b,h){c(h);"function"===typeof a.oldspin&&a.oldspin(b,h)};a.addToggle&&f('<div class="button"><input id="button'+e+'" type="checkbox" class="toggle" /><label for="button'+e+'"></label></div>').appendTo(b).find(".toggle").bind("change",function(){c()});b.closest("thead").find("th[data-column="+e+"]").addClass("filter-parsed");f('<input id="spinner'+ e+'" />').val(a.value).appendTo(b).spinner(a).bind("change keyup",function(){c()});b.closest("table").bind("filterReset",function(){b.find(".toggle")[0].checked=!1;c()});c();return d},uiSlider:function(b,e,d){var a=f.extend({value:0,min:0,max:100,step:1,range:"min",valueToHeader:!1,exactMatch:!0,allText:"all"},d);d=f('<input class="filter" type="hidden">').appendTo(b);var c=function(g){g="undefined"!==typeof g?g.value:a.value;a.valueToHeader?b.closest("thead").find("th[data-column="+e+"]").find(".curvalue").html(" ("+ (g===a.min?a.allText:g)+")"):b.find(".ui-slider-handle").addClass("value-popup").attr("data-value",g===a.min?a.allText:g);b.find(".filter").val(g===a.min?"":g+(a.exactMatch?"=":"")).trigger("search")};b.closest("thead").find("th[data-column="+e+"]").addClass("filter-parsed");a.valueToHeader&&b.closest("thead").find("th[data-column="+e+"]").find(".tablesorter-header-inner").append('<span class="curvalue" />');a.oldcreate=a.create;a.oldslide=a.slide;a.create=function(b,h){c();"function"===typeof a.oldcreate&& a.oldcreate(b,h)};a.slide=function(b,h){c(h);"function"===typeof a.oldslide&&a.oldslide(b,h)};f('<div id="slider'+e+'"/>').appendTo(b).slider(a);b.closest("table").bind("filterReset",function(){b.find('div[id*="slider"]').slider("value",a.value);c()});return d},uiRange:function(b,e,d){var a=f.extend({values:[0,100],min:0,max:100,range:!0,valueToHeader:!1},d);d=f('<input class="filter" type="hidden">').appendTo(b);var c=function(c){c="undefined"!==typeof c&&c.values||a.values;var h=c[0]+" - "+c[1]; a.valueToHeader?b.closest("thead").find("th[data-column="+e+"]").find(".currange").html(" ("+h+")"):b.find(".ui-slider-handle").addClass("value-popup").eq(0).attr("data-value",c[0]).end().eq(1).attr("data-value",c[1]);b.find(".filter").val(h).trigger("search")};b.closest("thead").find("th[data-column="+e+"]").addClass("filter-parsed");a.valueToHeader&&b.closest("thead").find("th[data-column="+e+"]").find(".tablesorter-header-inner").append('<span class="currange"/>');a.oldcreate=a.create;a.oldslide= a.slide;a.create=function(b,h){c();"function"===typeof a.oldcreate&&a.oldcreate(b,h)};a.slide=function(b,h){c(h);"function"===typeof a.oldslide&&a.oldslide(b,h)};f('<div id="range'+e+'"/>').appendTo(b).slider(a);b.closest("table").bind("filterReset",function(){b.find('div[id*="range"]').slider("values",a.values);c()});return d},uiDatepicker:function(b,e,d){var a=f.extend({from:"",to:"",changeMonth:!0,changeYear:!0,numberOfMonths:1},d);d=f('<input class="dateRange" type="hidden">').appendTo(b);b.closest("thead").find("th[data-column="+ e+"]").addClass("filter-parsed");f('<label>From</label><input type="text" class="dateFrom" /><label>to</label><input type="text" class="dateTo" />').appendTo(b);a.oldonClose=a.onClose;a.defaultDate=a.defaultDate||a.from;a.onClose=function(c,d){var h=(new Date(c)).getTime()||"",e=(new Date(b.find(".dateTo").val())).getTime()||"";b.find(".dateTo").datepicker("option","minDate",c).end().find(".dateRange").val(h&&e?h+" - "+e:"").trigger("search");"function"===typeof a.oldonClose&&a.oldonClose(c,d)};b