tablesorter/js/jquery.tablesorter.widgets.min.js
2011-10-26 01:50:02 -05:00

9 lines
4.4 KiB
JavaScript

/* TableSorter 2.0 Widgets */
(function(c){
c.tablesorter.addWidget({id:"uitheme",format:function(f){var b,a,g,d=f.config,e=["ui-icon-arrowthick-2-n-s","ui-icon-arrowthick-1-s","ui-icon-arrowthick-1-n"];d.widgetUitheme&&d.widgetUitheme.hasOwnProperty("css")&&(e=d.widgetUitheme.css||e);g=e.join(" ");d.debug&&(b=new Date);c(f).is(".ui-theme")||(c(f).addClass("ui-widget ui-widget-content ui-corner-all ui-theme"),c.each(d.headerList,function(){c(this).addClass("ui-widget-header ui-corner-all").append('<span class="ui-icon"/>').hover(function(){c(this).addClass("ui-state-hover")}, function(){c(this).removeClass("ui-state-hover")})}));c.each(d.headerList,function(b){d.headers[b]&&d.headers[b].sorter===false?c(this).find("span.ui-icon").removeClass(g+" ui-icon"):(a=c(this).is("."+d.cssAsc)?e[1]:c(this).is("."+d.cssDesc)?e[2]:c(this).is("."+d.cssHeader)?e[0]:"",c(this)[a===e[0]?"removeClass":"addClass"]("ui-state-active").find("span.ui-icon").removeClass(g).addClass(a))});d.debug&&c.tablesorter.benchmark("Applying uitheme widget",b)}});
c.tablesorter.addWidget({id:"columns",format:function(f){var b,a,g,d,e=f.config,h=e.sortList,j=h.length,i=["primary","secondary","tertiary"];e.widgetColumns&&e.widgetColumns.hasOwnProperty("css")&&(i=e.widgetColumns.css||i);g=i.length-1;d=i.join(" ");e.debug&&(a=new Date);h&&h[0]&&c("tr:visible",f.tBodies[0]).each(function(a){b=c(this).children().removeClass(d);b.eq(h[0][0]).addClass(i[0]);if(j>1)for(a=1;a<j;a++)b.eq(h[a][0]).addClass(i[a]||i[g])});e.debug&&c.tablesorter.benchmark("Applying Columns widget",a)}});
c.tablesorter.addWidget({id:"filter",format:function(f){if(!f.config.filtering){var b, a,g,d,e=f.config,h=e.headerList.length,j=c(f),f='<tr class="filters">',i;e.debug&&(i=new Date);for(b=0;b<h;b++)f+='<td><input type="text" class="filter" data-col="'+b+'" style="',f+=e.headers[b]&&"filter"in e.headers[b]&&e.headers[b].filter===false||c(e.headerList[b]).is(".filter-false")?"visibility:hidden":"",f+='"></td>';j.find("thead").append(f+="</tr>").find(".filter").bind("keyup",function(){a=j.find(".filter").map(function(){return(c(this).val()||"").toLowerCase()}).get();a.join("")===""?j.find("tr").show(): j.find("tbody").find("tr").each(function(){g=true;d=c(this).find("td");for(b=0;b<h;b++)a[b]!==""&&d.eq(b).text().toLowerCase().indexOf(a[b])>=0?g=g?true:false:a[b]!==""&&(g=false);c(this)[g?"show":"hide"]()});j.trigger("applyWidgets")});e.filtering=true;e.debug&&c.tablesorter.benchmark("Applying Filter widget",i)}}});
c.tablesorter.addWidget({id:"stickyHeaders",format:function(f){if(!c(f).find(".stickyHeader").length){var b=c(window),a=c(f).find("thead"),g=a.find("tr").children(),d=parseInt(g.eq(0).css("border-left-width"), 10),e=a.find("tr").clone().addClass("stickyHeader").css({width:a.outerWidth()+d*2,position:"fixed",top:0,marginLeft:-d,visibility:"hidden"}),h=e.children();c(f).bind("sortEnd",function(a,e){var b=c(e).find("thead tr"),f=b.filter(".stickyHeader").children();b.filter(":not(.stickyHeader)").children().each(function(a){f.eq(a).attr("class",c(this).attr("class"))})});g.each(function(a){var b=c(this);h.eq(a).width(b.width()).bind("click",function(a){b.trigger(a)}).bind("mousedown",function(){this.onselectstart= function(){return false};return false})});a.prepend(e);b.scroll(function(){var a=c(f),d=a.offset(),g=b.scrollTop(),a=g>d.top&&g<d.top+a.find("tbody").height()?"visible":"hidden";e.css("visibility",a)}).resize(function(){e.css({width:a.outerWidth()+d*2});h.each(function(a){c(this).width(g.eq(a).width())})})}}});
c.tablesorter.addWidget({id:"resizable",format:function(f){if(!f.config.resizable){var b,a=f.config,g=a.headerList,d=g.length;a.resizable_target=null;a.resizable_position=0;for(b=1;b<d;b++)c(g[b]).append('<div style="cursor:w-resize;position:absolute;height:100%;width:20px;left:-20px;top:0;z-index:100;"></div>').wrapInner('<div style="position:relative;height:100%;width:100%"></div>').bind("mousedown", function(b){a.resizable_target=c(b.target);a.resizable_position=b.pageX}).bind("mousemove",function(b){if(!(a.resizable_position===0||typeof a.resizable_target===null)){var c=b.pageX-a.resizable_position,d=a.resizable_target.closest("th").prev();if(!(a.resizable_target.width()<-c||d&&d.width()<=c))d.width(d.width()+c),a.resizable_position=b.pageX}}).bind("mouseup",function(){a.resizable_position=0;a.resizable_target=null;return false});c(f).find("thead").bind("mouseup",function(){a.resizable_position= 0;a.resizable_target=null});a.resizable=true}}})
})(jQuery);