tablesorter/js/jquery.tablesorter.widgets-filter-formatter.min.js
2013-05-27 08:53:35 -05:00

7 lines
9.3 KiB
JavaScript

/*! Filter widget formatter functions - updated 5/27/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
*/
;(function(g){g.tablesorter=g.tablesorter||{};g.tablesorter.filterFormatter={uiSpinner:function(b,e,d){var a=g.extend({min:0,max:100,step:1,value:1,delayed:!0,addToggle:!0,disabled:!1,exactMatch:!0,compare:""},d);d=g('<input class="filter" type="hidden">').appendTo(b);var c=function(h){var c=!0;h=h&&h.value||b.find(".spinner").val()||a.value;a.addToggle&&(c=b.find(".toggle").is(":checked"));b.find(".filter").val(c?(a.compare?a.compare:a.exactMatch?"=":"")+h:"").trigger("search",a.delayed).end().find(".spinner").spinner(a.disabled|| !c?"disable":"enable")};a.oldcreate=a.create;a.oldspin=a.spin;a.create=function(b,f){c();"function"===typeof a.oldcreate&&a.oldcreate(b,f)};a.spin=function(b,f){c(f);"function"===typeof a.oldspin&&a.oldspin(b,f)};a.addToggle&&g('<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");g('<input class="spinner 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=g.extend({value:0,min:0,max:100,step:1,range:"min",delayed:!0,valueToHeader:!1,exactMatch:!0,compare:"",allText:"all"},d);d=g('<input class="filter" type="hidden">').appendTo(b);var c=function(c){c="undefined"!==typeof c?c.value:a.value;var f=a.compare?c:c===a.min?a.allText:c;a.valueToHeader? b.closest("thead").find("th[data-column="+e+"]").find(".curvalue").html(" ("+a.compare+f+")"):b.find(".ui-slider-handle").addClass("value-popup").attr("data-value",a.compare+f);b.find(".filter").val(a.compare?a.compare+c:c===a.min?"":(a.exactMatch?"=":"")+c).trigger("search",a.delayed)};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,f){c();"function"===typeof a.oldcreate&&a.oldcreate(b,f)};a.slide=function(b,f){c(f);"function"===typeof a.oldslide&&a.oldslide(b,f)};g('<div class="slider slider'+e+'"/>').appendTo(b).slider(a);b.closest("table").bind("filterReset",function(){b.find(".slider").slider("value",a.value);c()});return d},uiRange:function(b,e,d){var a=g.extend({values:[0,100],min:0,max:100,range:!0,delayed:!0,valueToHeader:!1},d);d=g('<input class="filter" type="hidden">').appendTo(b); var c=function(c){c="undefined"!==typeof c&&c.values||a.values;var f=c[0]===a.min&&c[1]===a.max?"":c[0]+" - "+c[1];a.valueToHeader?b.closest("thead").find("th[data-column="+e+"]").find(".currange").html(" ("+c[0]+" - "+c[1]+")"):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(f).trigger("search",a.delayed)};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,f){c();"function"===typeof a.oldcreate&&a.oldcreate(b,f)};a.slide=function(b,f){c(f);"function"===typeof a.oldslide&&a.oldslide(b,f)};g('<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},uiDateCompare:function(b,e,d){var a=g.extend({defaultDate:"",cellText:"", changeMonth:!0,changeYear:!0,numberOfMonths:1,compare:""},d);e=b.closest("thead").find("th[data-column="+e+"]");d=g('<input class="dateCompare" type="hidden">').appendTo(b);e.addClass("filter-parsed");g("<span>"+a.cellText+'<input type="text" class="date" placeholder="'+(e.data("placeholder")||e.attr("data-placeholder")||"")+'" />').appendTo(b);a.oldonClose=a.onClose;a.defaultDate=a.defaultDate||new Date;a.onClose=function(c,d){var f=(new Date(c)).getTime()||"";b.find(".dateCompare").val(a.compare+ f).trigger("search");"function"===typeof a.oldonClose&&a.oldonClose(c,d)};b.find(".date").datepicker(a);b.closest("table").bind("filterReset",function(){b.find(".date").val("").datepicker("option","currentText","")});return d},uiDatepicker:function(b,e,d){var a=g.extend({from:"",to:"",textFrom:"from",textTo:"to",changeMonth:!0,changeYear:!0,numberOfMonths:1},d);d=g('<input class="dateRange" type="hidden">').appendTo(b);b.closest("thead").find("th[data-column="+e+"]").addClass("filter-parsed");g("<label>"+ a.textFrom+'</label><input type="text" class="dateFrom" /><label>'+a.textTo+'</label><input type="text" class="dateTo" />').appendTo(b);a.oldonClose=a.onClose;a.defaultDate=a.from||a.defaultDate||new Date;a.onClose=function(c,d){var f=(new Date(c)).getTime()||"",e=(new Date(b.find(".dateTo").val())).getTime()||"";b.find(".dateTo").datepicker("option","minDate",c).end().find(".dateRange").val(f?e?f+" - "+e:">="+f:e?"<="+e:"").trigger("search");"function"===typeof a.oldonClose&&a.oldonClose(c,d)};b.find(".dateFrom").datepicker(a); a.defaultDate=a.to||"+7d";a.onClose=function(c,e){var f=(new Date(b.find(".dateFrom").val())).getTime()||"",d=(new Date(c)).getTime()||"";b.find(".dateFrom").datepicker("option","maxDate",c).end().find(".dateRange").val(f?d?f+" - "+d:">="+f:d?"<="+d:"").trigger("search");"function"===typeof a.oldonClose&&a.oldonClose(c,e)};b.find(".dateTo").datepicker(a);b.closest("table").bind("filterReset",function(){b.find(".dateFrom, .dateTo").val("").datepicker("option","currentText","")});return d},html5Number:function(b, e,d){var a,c=g.extend({value:0,min:0,max:100,step:1,delayed:!0,disabled:!1,addToggle:!0,exactMatch:!0,compare:""},d);a=g('<input type="number" style="visibility:hidden;" value="test">').appendTo(b);d="number"===a.attr("type")&&"test"!==a.val();var h=function(){var a=b.find(".number").val(),d=c.addToggle?b.find(".toggle").is(":checked"):!0;b.find("input[type=hidden]").val(!c.addToggle||d?(c.compare?c.compare:c.exactMatch?"=":"")+a:"").trigger("search",c.delayed);b.find(".number").length&&(b.find(".number")[0].disabled= c.disabled||!d)};a.remove();d&&(a=c.addToggle?'<div class="button"><input id="button'+e+'" type="checkbox" class="toggle" /><label for="button'+e+'"></label></div>':"",a+='<input type="hidden"><input class="number" type="number" min="'+c.min+'" max="'+c.max+'" value="'+c.value+'" step="'+c.step+'" />',b.html(a).find(".toggle, .number").bind("change",function(){h()}).closest("thead").find("th[data-column="+e+"]").addClass("filter-parsed").closest("table").bind("filterReset",function(){b.find(".toggle")[0].checked= !1;h()}));h();return d?b.find('input[type="hidden"]'):g('<input type="search">')},html5Range:function(b,e,d){var a=g.extend({value:0,min:0,max:100,step:1,delayed:!0,valueToHeader:!0,exactMatch:!0,compare:"",allText:"all"},d);d=g('<input type="range" style="visibility:hidden;" value="test">').appendTo(b);var c="range"===d.attr("type")&&"test"!==d.val(),h=function(){var c=b.find(".range").val();b.find("input[type=hidden]").val(a.compare?a.compare+c:c==a.min?"":(a.exactMatch?"=":"")+c).trigger("search", a.delayed);b.closest("thead").find("th[data-column="+e+"]").find(".curvalue").html(" ("+(c==a.min?a.allText:a.compare+c)+")")};d.remove();c&&(b.html('<input type="hidden"><input class="range" type="range" min="'+a.min+'" max="'+a.max+'" value="'+a.value+'" />').closest("thead").find("th[data-column="+e+"]").addClass("filter-parsed").find(".tablesorter-header-inner").append('<span class="curvalue" />'),b.find(".range").bind("change",function(){h()}),b.closest("table").bind("filterReset",function(){b.find("input.range").val(a.value); h()}));h();return c?b.find('input[type="hidden"]'):g('<input type="search">')},html5Color:function(b,e,d){var a,c=g.extend({value:"#000000",disabled:!1,addToggle:!0,exactMatch:!0,valueToHeader:!1},d);a=g('<input type="color" style="visibility:hidden;" value="test">').appendTo(b);d="color"===a.attr("type")&&"test"!==a.val();var h=function(){var a=!0,d=b.find(".colorpicker").val();c.addToggle&&(a=b.find(".toggle").is(":checked"));b.find(".colorpicker").length&&(b.find(".colorpicker")[0].disabled=c.disabled|| !a);b.find("input[type=hidden]").val(a?d+(c.exactMatch?"=":""):"").trigger("search");c.valueToHeader?b.closest("thead").find("th[data-column="+e+"]").find(".curcolor").html(" ("+d+")"):b.find(".currentColor").html(" ("+d+")")};a.remove();d&&(a='<div class="color-controls-wrapper">'+(c.addToggle?'<div class="button"><input id="button'+e+'" type="checkbox" class="toggle" /><label for="button'+e+'"></label></div>':""),a=a+'<input type="hidden"><input class="colorpicker" type="color" />'+(c.valueToHeader? "":'<span class="currentColor">(#000000)</span>'),b.html(a+"</div>"),c.valueToHeader&&b.closest("thead").find("th[data-column="+e+"]").find(".tablesorter-header-inner").append('<span class="curcolor" />'),b.find(".toggle, .colorpicker").bind("change",function(){h()}),b.closest("table").bind("filterReset",function(){b.find(".toggle")[0].checked=!1;h()}));h();return d?b.find('input[type="hidden"]'):g('<input type="search">')}}})(jQuery);