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

7 lines
20 KiB
JavaScript
Raw Normal View History

2014-04-27 16:01:58 +00:00
/*! Filter widget formatter functions - updated 4/27/2014 (v2.16.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-04-27 16:01:58 +00:00
;(function(g){var r=g.tablesorter||{},n=r.filterFormatter={addCompare:function(b,f,d){if(d.compare&&g.isArray(d.compare)&&1<d.compare.length){var a="",c=[".compare-select".slice(1)," "+".compare-select".slice(1),""],l=d.cellText?'<label class="'+c.join("-label")+f+'">'+d.cellText+"</label>":"";g.each(d.compare,function(b,c){a+="<option "+(d.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,d){f=f.val()||"";var a=f.replace(/\s*?[><=]\s*?/g,""),c=f.match(/[><=]/g)||"";d.compare&&(g.isArray(d.compare)&&(c=(c||[]).join("")||d.compare[d.selected||0]),b.find(".compare-select").val(c));return[f,a]},uiSpinner:function(b,f,d){var a=g.extend({delayed:!0,addToggle:!0,exactMatch:!0,value:1,cellText:"",compare:"",min:0,max:100,step:1,disabled:!1},d),c=b.closest("table")[0].config,l=g('<input class="filter" type="hidden">').appendTo(b).bind("change"+c.namespace+"filter", function(){e({value:this.value,delayed:!1})}),h=[],e=function(f,k){var q=!0,e,p=f&&f.value&&r.formatFloat((f.value+"").replace(/[><=]/g,""))||b.find(".spinner").val()||a.value,d=(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&&(q=b.find(".toggle").is(":checked"));e=a.disabled||!q?"disable":"enable";b.find(".filter").val(q?(d?d:a.exactMatch?"=":"")+p:"").trigger(k? "":"search",l).end().find(".spinner").spinner(e).val(p);h.length&&(h.find(".spinner").spinner(e).val(p).end().find(".compare-select").val(d),a.addToggle&&(h.find(".toggle")[0].checked=q))};a.oldcreate=a.create;a.oldspin=a.spin;a.create=function(b,k){e();"function"===typeof a.oldcreate&&a.oldcreate(b,k)};a.spin=function(b,k){e(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(){e()});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(){e()});c.$table.bind("filterFomatterUpdate",function(){var c=n.updateCompare(b,l,a)[0];b.find(".spinner").val(c);e({value:c},!0)});a.compare&&(n.addCompare(b,f,a),b.find(".compare-select").bind("change",function(){e()}));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;e()});g('<input class="spinner spinner'+f+'" />').val(a.value).appendTo(h).spinner(a).bind("change keyup",function(){b.find(".spinner").val(this.value); e()});a.compare&&(n.addCompare(h,f,a),h.find(".compare-select").bind("change",function(){b.find(".compare-select").val(g(this).val());e()}))});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(){e()},0)});e();return l},uiSlider:function(b,f,d){var a=g.extend({delayed:!0,valueToHeader:!1,exactMatch:!0,cellText:"",compare:"", allText:"all",value:0,min:0,max:100,step:1,range:"min"},d),c=b.closest("table")[0].config,l=g('<input class="filter" type="hidden">').appendTo(b).bind("change"+c.namespace+"filter",function(){e({value:this.value})}),h=[],e=function(e,k){var q="undefined"!==typeof e?r.formatFloat((e.value+"").replace(/[><=]/g,""))||a.value:a.value,d=a.compare?q:q===a.min?a.allText:q,p=(g.isArray(a.compare)?b.find(".compare-select").val()||a.compare[a.selected||0]:a.compare)||"",d=p+d,l=e&&"boolean"===typeof e.delaye