/*! * tablesorter pager plugin * updated 10/25/2012 */ ;(function($){$.extend({tablesorterPager:new function(){this.defaults={container:null,ajaxUrl:null,ajaxProcessing:function(ajax){return[0,[],null]},output:"{startRow} to {endRow} of {totalRows} rows",updateArrows:true,page:0,size:10,fixedHeight:false,removeRows:false,cssFirst:".first",cssPrev:".prev",cssNext:".next",cssLast:".last",cssGoto:".gotoPage",cssPageDisplay:".pagedisplay",cssPageSize:".pagesize",cssDisabled:"disabled",totalRows:0,totalPages:0,filteredRows:0,filteredPages:0};var $this=this,pagerArrows=function(c,disable){var a="addClass",r="removeClass",d=c.cssDisabled,dis=!!disable,tp=Math.min(c.totalPages,c.filteredPages);if(c.updateArrows){$(c.cssFirst+","+c.cssPrev,c.container)[(dis||c.page===0)?a:r](d);$(c.cssNext+","+c.cssLast,c.container)[(dis||c.page===tp-1)?a:r](d)}},updatePageDisplay=function(table,c){var i,p,s,t,out,f=$(table).hasClass("hasFilters");c.filteredRows=(f)?$(table).find("tbody tr:not(.filtered)").length:c.totalRows;c.filteredPages=(f)?Math.ceil(c.filteredRows/c.size):c.totalPages;if(Math.min(c.totalPages,c.filteredPages)>0){t=(c.size*c.page>c.filteredRows);c.startRow=(t)?1:(c.size*c.page)+1;c.page=(t)?0:c.page;c.endRow=Math.min(c.filteredRows,c.totalRows,c.size*(c.page+1));out=$(c.cssPageDisplay,c.container);s=c.output.replace(/\{(page|filteredRows|filteredPages|totalPages|startRow|endRow|totalRows)\}/gi,function(m){return{"{page}":c.page+1,"{filteredRows}":c.filteredRows,"{filteredPages}":c.filteredPages,"{totalPages}":c.totalPages,"{startRow}":c.startRow,"{endRow}":c.endRow,"{totalRows}":c.totalRows}[m]});if(out[0]){out[(out[0].tagName==="INPUT")?"val":"html"](s);if($(c.cssGoto,c.container).length){t="";p=Math.min(c.totalPages,c.filteredPages);for(i=1;i<=p;i++){t+=""}$(c.cssGoto,c.container).html(t).val(c.page+1)}}}pagerArrows(c);if(c.initialized){$(table).trigger("pagerComplete",c)}},fixHeight=function(table,c){var d,h,$b=$(table.tBodies[0]);if(c.fixedHeight){$b.find("tr.pagerSavedHeightSpacer").remove();h=$.data(table,"pagerSavedHeight");if(h){d=h-$b.height();if(d>5&&$.data(table,"pagerLastSize")===c.size&&$b.find("tr:visible").length')}}}},changeHeight=function(table,c){var $b=$(table.tBodies[0]);$b.find("tr.pagerSavedHeightSpacer").remove();$.data(table,"pagerSavedHeight",$b.height());fixHeight(table,c);$.data(table,"pagerLastSize",c.size)},hideRows=function(table,c){if(!c.ajaxUrl){var i,rows=$("tr:not(."+table.config.cssChildRow+")",table.tBodies),l=rows.length,s=(c.page*c.size),e=s+c.size,j=0;for(i=0;i=s&&j'+(exception?exception.message+" ("+exception.name+")":"No rows found")+"",result=c.ajaxProcessing(data)||[0,[]],d=result[1]||[],l=d.length,th=result[2];if(l>0){for(i=0;i";for(j=0;j"+d[i][j]+""}tds+=""}}if(th&&th.length===hl){hsh=$t.hasClass("hasStickyHeaders");$sh=$t.find("."+((tc.widgetOptions&&tc.widgetOptions.stickyHeaders)||"tablesorter-stickyheader"));$f=$t.find("tfoot tr:first").children();$t.find("th."+tc.cssHeader).each(function(j){var $t=$(this),icn;if($t.find("."+tc.cssIcon).length){icn=$t.find("."+tc.cssIcon).clone(true);$t.find(".tablesorter-header-inner").html(th[j]).append(icn);if(hsh&&$sh.length){icn=$sh.find("th").eq(j).find("."+tc.cssIcon).clone(true);$sh.find("th").eq(j).find(".tablesorter-header-inner").html(th[j]).append(icn)}}else{$t.find(".tablesorter-header-inner").html(th[j]);$sh.find("th").eq(j).find(".tablesorter-header-inner").html(th[j])}$f.eq(j).html(th[j])})}if(exception){$t.find("thead").append(err)}else{$b.html(tds)}c.temp.remove();$t.trigger("update");c.totalRows=result[0]||0;c.totalPages=Math.ceil(c.totalRows/c.size);updatePageDisplay(table,c);fixHeight(table,c);if(c.initialized){$t.trigger("pagerChange",c)}}if(!c.initialized){c.initialized=true;$(table).trigger("pagerInitialized",c)}},getAjax=function(table,c){var $t=$(table),url=(c.ajaxUrl)?c.ajaxUrl.replace(/\{page\}/g,c.page).replace(/\{size\}/g,c.size):"",arry=[],sl=table.config.sortList,col=url.match(/\{sortList[\s+]?:[\s+]?(.*)\}/);if(col){col=col[1];$.each(sl,function(i,v){arry.push(col+"["+v[0]+"]="+v[1])});url=url.replace(/\{sortList[\s+]?:[\s+]?(.*)\}/g,arry.length?arry.join("&"):col)}if(url!==""){c.temp=$("
",{"class":"tablesorter-processing",width:$t.outerWidth(true),height:$t.outerHeight(true)});$t.before(c.temp);$(document).ajaxError(function(e,xhr,settings,exception){renderAjax(null,table,c,exception)});$.getJSON(url,function(data){renderAjax(data,table,c)})}},renderTable=function(table,rows,c){var i,j,o,f=document.createDocumentFragment(),l=rows.length,s=(c.page*c.size),e=(s+c.size);if(l<1){return}if(c.initialized){$(table).trigger("pagerChange",c)}if(!c.removeRows){hideRows(table,c)}else{if(e>rows.length){e=rows.length}$(table.tBodies[0]).addClass("tablesorter-hidden");$.tablesorter.clearTableBody(table);for(i=s;i=c.totalPages){moveToLastPage(table,c)}updatePageDisplay(table,c);if(!c.isDisabled){fixHeight(table,c)}$(table).trigger("applyWidgets")},showAllRows=function(table,c){if(c.ajax){pagerArrows(c,true)}else{c.isDisabled=true;$.data(table,"pagerLastPage",c.page);$.data(table,"pagerLastSize",c.size);c.page=0;c.size=c.totalRows;c.totalPages=1;$("tr.pagerSavedHeightSpacer",table.tBodies[0]).remove();renderTable(table,table.config.rowsCopy,c)}$(c.container).find(c.cssPageSize+","+c.cssGoto).each(function(){$(this).addClass(c.cssDisabled)[0].disabled=true})},moveToPage=function(table,c){if(c.isDisabled){return}var p=Math.min(c.totalPages,c.filteredPages);if(c.page<0||c.page>(p-1)){c.page=0}$.data(table,"pagerLastPage",c.page);if(c.ajax){getAjax(table,c)}else{renderTable(table,table.config.rowsCopy,c)}if(c.initialized){$(table).trigger("pageMoved",c)}},setPageSize=function(table,size,c){c.size=size;$.data(table,"pagerLastPage",c.page);$.data(table,"pagerLastSize",c.size);c.totalPages=Math.ceil(c.totalRows/c.size);moveToPage(table,c)},moveToFirstPage=function(table,c){c.page=0;moveToPage(table,c)},moveToLastPage=function(table,c){c.page=(Math.min(c.totalPages,c.filteredPages)-1);moveToPage(table,c)},moveToNextPage=function(table,c){c.page++;if(c.page>=(Math.min(c.totalPages,c.filteredPages)-1)){c.page=(Math.min(c.totalPages,c.filteredPages)-1)}moveToPage(table,c)},moveToPrevPage=function(table,c){c.page--;if(c.page<=0){c.page=0}moveToPage(table,c)},destroyPager=function(table,c){showAllRows(table,c);$(c.container).hide();table.config.appender=null;$(table).unbind("destroy.pager sortEnd.pager filterEnd.pager enable.pager disable.pager")},enablePager=function(table,c,triggered){var p=$(c.cssPageSize,c.container).removeClass(c.cssDisabled).removeAttr("disabled");c.isDisabled=false;c.page=$.data(table,"pagerLastPage")||c.page||0;c.size=$.data(table,"pagerLastSize")||parseInt(p.find("option[selected]").val(),10)||c.size;p.val(c.size);c.totalPages=Math.ceil(Math.min(c.totalPages,c.filteredPages)/c.size);if(triggered){$(table).trigger("update");setPageSize(table,c.size,c);hideRowsSetup(table,c);fixHeight(table,c)}};$this.appender=function(table,rows){var c=table.config.pager;if(!c.ajax){table.config.rowsCopy=rows;c.totalRows=rows.length;c.size=$.data(table,"pagerLastSize")||c.size;c.totalPages=Math.ceil(c.totalRows/c.size);renderTable(table,rows,c)}};$this.construct=function(settings){return this.each(function(){var config=this.config,c=config.pager=$.extend({},$.tablesorterPager.defaults,settings),table=this,$t=$(table),pager=$(c.container).addClass("tablesorter-pager").show();config.appender=$this.appender;c.initialized=false;enablePager(table,c,false);if(typeof(c.ajaxUrl)==="string"){c.ajax=true;getAjax(table,c)}else{c.ajax=false;$(this).trigger("appendCache",true);hideRowsSetup(table,c)}$(table).unbind("filterEnd.pager updateComplete.pager ").bind("filterEnd.pager updateComplete.pager",function(){c.page=0;updatePageDisplay(table,c);moveToPage(table,c);changeHeight(table,c)});if($(c.cssGoto,pager).length){$(c.cssGoto,pager).bind("change",function(){c.page=$(this).val()-1;moveToPage(table,c)});updatePageDisplay(table,c)}$(c.cssFirst,pager).unbind("click.pager").bind("click.pager",function(){if(!$(this).hasClass(c.cssDisabled)){moveToFirstPage(table,c)}return false});$(c.cssNext,pager).unbind("click.pager").bind("click.pager",function(){if(!$(this).hasClass(c.cssDisabled)){moveToNextPage(table,c)}return false});$(c.cssPrev,pager).unbind("click.pager").bind("click.pager",function(){if(!$(this).hasClass(c.cssDisabled)){moveToPrevPage(table,c)}return false});$(c.cssLast,pager).unbind("click.pager").bind("click.pager",function(){if(!$(this).hasClass(c.cssDisabled)){moveToLastPage(table,c)}return false});$(c.cssPageSize,pager).unbind("change.pager").bind("change.pager",function(){$(c.cssPageSize,pager).val($(this).val());if(!$(this).hasClass(c.cssDisabled)){setPageSize(table,parseInt($(this).val(),10),c);changeHeight(table,c)}return false});$t.unbind("disable.pager enable.pager destroy.pager update.pager").bind("disable.pager",function(){showAllRows(table,c)}).bind("enable.pager",function(){enablePager(table,c,true)}).bind("destroy.pager",function(){destroyPager(table,c)}).bind("update.pager",function(){hideRows(table,c)});if(!c.ajax){c.initialized=true;$(table).trigger("pagerInitialized",c)}})}}()});$.fn.extend({tablesorterPager:$.tablesorterPager.construct})})(jQuery);