Rev 128 | Blame | Compare with Previous | Last modification | View Log | RSS feed
!function(t){t.fn.paginate=function(e){var n={paginateElement:"li",hashPage:"page",elementsPerPage:10,maxPageButtons:5,firstButton:!0,firstButtonText:"<<",lastButton:!0,lastButtonText:">>",prevButton:!0,prevButtonText:"<",nextButton:!0,nextButtonText:">",extraButtonClasses:"",functionOnNav:null};return this.each(function(){"undefined"==typeof plugin?(plugin={},newPlugin=!0):newPlugin=!1,newPlugin&&(plugin.el=t(this),plugin.el.addClass("paginateList"),plugin.settings={pages:0,objElements:Object,currentPage:1});var s=function(){return Math.ceil(plugin.objElements.length/plugin.settings.elementsPerPage)},a=function(){for(htmlNav='<div class="paginateNav text-center'+(plugin.settings.pages<=1?" invisible":"")+'">',plugin.settings.firstButton&&(htmlNav+='<a href="#'+plugin.settings.hashPage+':1" title="First page" rel="1" class="first mr-1 '+plugin.settings.extraButtonClasses+'">'+plugin.settings.firstButtonText+"</a>"),plugin.settings.prevButton&&(htmlNav+='<a href="" title="Previous Page" rel="" class="prev mr-
1 '+plugin.settings.extraButtonClasses+'">'+plugin.settings.prevButtonText+"</a>"),pagesLeft=plugin.settings.pages-plugin.settings.currentPage+1,plugin.settings.pages>plugin.settings.maxPageButtons&&pagesLeft>=plugin.settings.maxPageButtons?(startPage=plugin.settings.currentPage-Math.floor((plugin.settings.maxPageButtons-2)/2),showPages=plugin.settings.maxPageButtons-2):(startPage=plugin.settings.pages-plugin.settings.maxPageButtons+1,showPages=plugin.settings.maxPageButtons),startPage=startPage<1?1:startPage,j=1,i=startPage;j<=showPages&&i<=plugin.settings.pages;j++,i++)htmlNav+='<a href="#'+plugin.settings.hashPage+":"+i+'" title="Page '+i+'" rel="'+i+'" class="pageNoNav'+i+" page mx-1 "+plugin.settings.extraButtonClasses+'">'+i+"</a>";plugin.settings.pages>plugin.settings.maxPageButtons&&pagesLeft>=plugin.settings.maxPageButtons&&(htmlNav+='<span class="btn-sm mx-1 '+plugin.settings.extraButtonClasses+'">...</span>',htmlNav+='<a href="#'+plugin.settings.hashPage+":"+plugin.settings.pages+'" title="Page '+
plugin.settings.pages+'" rel="'+plugin.settings.pages+'" class="pageNoNav'+plugin.settings.pages+" page mx-1 "+plugin.settings.extraButtonClasses+'">'+plugin.settings.pages+"</a>"),plugin.settings.nextButton&&(htmlNav+='<a href="" title="Next Page" rel="" class="next ml-1 '+plugin.settings.extraButtonClasses+'">'+plugin.settings.nextButtonText+"</a>"),plugin.settings.lastButton&&(htmlNav+='<a href="#'+plugin.settings.hashPage+":"+plugin.settings.pages+'" title="Last page" rel="'+plugin.settings.pages+'" class="last ml-1 '+plugin.settings.extraButtonClasses+'">'+plugin.settings.lastButtonText+"</a>"),htmlNav+="</div>",plugin.nav=t(htmlNav),t(".paginateNav").remove(),plugin.el.after(plugin.nav);var e="#"+plugin.el.get(0).id+" + ";t(e+" .paginateNav a.page,"+e+" .paginateNav a.first,"+e+" .paginateNav a.last").on("click",function(e){e.preventDefault(),g(t(this).attr("rel")),plugin.settings.functionOnNav&&plugin.settings.functionOnNav()}),t(e+" .paginateNav a.prev").on("click",function(t){t.preventDefault(),page
=plugin.settings.currentPage>1?parseInt(plugin.settings.currentPage)-1:1,g(page),plugin.settings.functionOnNav&&plugin.settings.functionOnNav()}),t(e+" .paginateNav a.next").on("click",function(t){t.preventDefault(),page=plugin.settings.currentPage<plugin.settings.pages?parseInt(plugin.settings.currentPage)+1:plugin.settings.pages,g(page),plugin.settings.functionOnNav&&plugin.settings.functionOnNav()})},g=function(e){switch(plugin.settings.currentPage=parseInt(e),a(),offsetStart=(e-1)*plugin.settings.elementsPerPage,offsetEnd=e*plugin.settings.elementsPerPage,l(offsetStart,offsetEnd),void 0!==plugin.nav&&(plugin.nav.find(".current").removeClass("current"),plugin.nav.find("a.pageNoNav"+e).addClass("current")),plugin.settings.currentPage){case 1:t(".paginateNav a",plugin).removeClass("disabled"),t(".paginateNav a.first, .paginateNav a.prev",plugin).addClass("disabled");break;case plugin.settings.pages:t(".paginateNav a",plugin).removeClass("disabled"),t(".paginateNav a.last, .paginateNav a.next",plugin).addCla
ss("disabled");break;default:t(".paginateNav a",plugin).removeClass("disabled")}},l=function(t,e){plugin.currentElements.addClass("d-none"),plugin.currentElements=plugin.objElements.slice(t,e).clone(),plugin.el.html(plugin.currentElements),plugin.currentElements.removeClass("d-none")};plugin.settings=t.extend({},n,e),plugin.settings.currentPage=1,plugin.currentElements=t([]),newPlugin?plugin.objElements=plugin.el.find(plugin.settings.paginateElement):t(".paginateNav").remove(),plugin.settings.pages=s(),plugin.el.html(),a(),page=1,-1!=document.location.hash.indexOf("#"+plugin.settings.hashPage+":")&&(page=parseInt(document.location.hash.replace("#"+plugin.settings.hashPage+":","")),(page.length<=0||page<1||page>plugin.settings.pages)&&(page=1)),g(page)})}}(jQuery);