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

6 lines
20 KiB
JavaScript
Raw Normal View History

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