diff --git a/assets/components/pdotools/js/jquery.pdopage.js b/assets/components/pdotools/js/jquery.pdopage.js index 885407a9..4da7b46c 100644 --- a/assets/components/pdotools/js/jquery.pdopage.js +++ b/assets/components/pdotools/js/jquery.pdopage.js @@ -126,7 +126,7 @@ addPage: function () { var _this = this; var params = this.hashGet(); - var current = params[this.key] || 1; + var current = params[this.key] || _this.page || 1; $(this.settings.link).each(function () { var href = $(this).prop('href'); var match = href.match(new RegExp(_this.key + '=(\\d+)')); @@ -169,10 +169,13 @@ $.get(window.location.pathname, params, function (response) { if (response) { _this.wrapper.find(pagination).replaceWith(response.pagination); - if (mode == 'append') { + if (!_this.history) { + $(_this.settings.pagination).hide(); + } + if (mode === 'append') { _this.wrapper.find(rows).append(response.output); if (_this.mode == 'button') { - if (response.pages == response.page) { + if (response.pages == response.page || response.pages == 0) { $(_this.settings.more).hide(); } else { $(_this.settings.more).show(); @@ -183,8 +186,18 @@ waitAnimation.remove(); } else { _this.wrapper.find(rows).html(response.output); - if (mode == 'force' && _this.history) { - _this.hashSet(params); + if (mode === 'force') { + _this.page = response.page || 1; + if (_this.settings.mode == 'button') { + if (response.pages == response.page || response.pages == 0) { + $(_this.settings.more).hide(); + } else { + $(_this.settings.more).show(); + } + } + if (_this.history) { + _this.hashSet(params); + } } } _this.wrapper.trigger('afterLoad', [_this, _this.settings, response]); @@ -319,7 +332,7 @@ } } if (!this.oldBrowser) { - if (hash.length != 0) { + if (hash.length !== 0) { hash = '?' + hash.substr(1); } window.history.pushState({pdoPage: window.location.pathname + hash}, '', window.location.pathname + hash); diff --git a/assets/components/pdotools/js/jquery.pdopage.min.js b/assets/components/pdotools/js/jquery.pdopage.min.js index 02415ff5..67e24bca 100644 --- a/assets/components/pdotools/js/jquery.pdopage.min.js +++ b/assets/components/pdotools/js/jquery.pdopage.min.js @@ -1 +1 @@ -!function(a,b,c,d){"use strict";function e(c,d){this.element=c,this.settings=a.extend({},g,d),this._defaults=g,this._name=f,this.key=this.settings.pageVarKey,this.wrapper=a(this.settings.wrapper),this.mode=this.settings.mode,this.reached=!1,this.history=this.settings.history,this.oldBrowser=!(b.history&&history.pushState),this.init()}var f="pdoPage",g={wrapper:"#pdopage",rows:"#pdopage .row",pagination:"#pdopage .pagination",link:"#pdopage .pagination a",more:"#pdopage .btn-more",pdoTitle:"#pdopage .title",moreTpl:'',waitAnimation:'
',mode:"scroll",pageVarKey:"page",pageLimit:12,assetsUrl:"/assets/components/pdotools/",scrollTop:!0};a.extend(e.prototype,{init:function(){var b=this;if(void 0==this.page){var c=this.hashGet(),d=void 0==c[this.key]?1:c[this.key];this.page=Number(d)}switch(this.mode){case"default":this.initDefault();break;case"scroll":case"button":if(this.history){if(void 0===jQuery().sticky)return void a.getScript(this.settings.assetsUrl+"js/lib/jquery.sticky.js",function(){b.init(b.settings)});this.stickyPagination()}else a(this.settings.pagination).hide();"button"==this.mode?this.initButton():this.initScroll()}},initDefault:function(){var d=this;a(c).on("click",this.settings.link,function(b){b.preventDefault();var c=a(this).prop("href"),e=c.match(new RegExp(d.key+"=(\\d+)")),f=e?e[1]:1;d.page!=f&&(d.history&&d.hashAdd(d.key,f),d.loadPage(c))}),this.history&&(a(b).on("popstate",function(a){a.originalEvent.state&&a.originalEvent.state.pdoPage&&d.loadPage(a.originalEvent.state.pdoPage)}),history.replaceState({pdoPage:b.location.href},""))},initButton:function(){var b=this;a(this.settings.rows).after(this.settings.moreTpl);var d=!1;a(this.settings.link).each(function(){var c=a(this).prop("href"),e=c.match(new RegExp(b.key+"=(\\d+)"));if((e?e[1]:1)>b.page)return d=!0,!1}),d||a(this.settings.more).hide(),a(c).on("click",this.settings.more,function(a){a.preventDefault(),b.addPage()})},initScroll:function(){var c=this,d=a(b);d.on("scroll",function(){!c.reached&&d.scrollTop()>c.wrapper.height()-d.height()&&(c.reached=!0,c.addPage())})},addPage:function(){var b=this,c=this.hashGet(),d=c[this.key]||1;a(this.settings.link).each(function(){var c=a(this).prop("href"),e=c.match(new RegExp(b.key+"=(\\d+)")),f=e?Number(e[1]):1;if(f>d)return b.history&&b.hashAdd(b.key,f),b.page=d,b.loadPage(c,"append"),!1})},loadPage:function(c,d){var e=this,f=a(this.settings.rows),g=a(this.settings.pagination),h=c.match(new RegExp(this.key+"=(\\d+)")),i=h?Number(h[1]):1;if(d||(d="replace"),this.page!=i||"force"==d){this.wrapper.trigger("beforeLoad",[this,this.settings]),"scroll"!=this.mode&&this.wrapper.css({opacity:.3}),this.page=i;var j=a(this.settings.waitAnimation);"append"==d?this.wrapper.find(f).append(j):this.wrapper.find(f).empty().append(j);var k=this.getUrlParameters(c);k[this.key]=this.page,a.get(b.location.pathname,k,function(b){b&&(e.wrapper.find(g).replaceWith(b.pagination),"append"==d?(e.wrapper.find(f).append(b.output),"button"==e.mode?b.pages==b.page?a(e.settings.more).hide():a(e.settings.more).show():"scroll"==e.mode&&(e.reached=!1),j.remove()):(e.wrapper.find(f).html(b.output),"force"==d&&e.history&&e.hashSet(k)),e.wrapper.trigger("afterLoad",[e,e.settings,b]),"scroll"!=e.mode&&(e.wrapper.css({opacity:1}),"default"==e.mode&&e.settings.scrollTop&&a("html, body").animate({scrollTop:e.wrapper.position().top-50||0},0)),e.updateTitle(b))},"json")}},stickyPagination:function(){var b=a(this.settings.pagination);b.is(":visible")&&(b.sticky({wrapperClassName:"sticky-pagination",getWidthFrom:this.settings.pagination,responsiveWidth:!0}),this.wrapper.trigger("scroll"))},updateTitle:function(b){if("undefined"!=typeof pdoTitle){for(var c=a("title"),d=pdoTitle.separator||" / ",e=pdoTitle.tpl,f=[],g=c.text().split(d),h=new RegExp("^"+e.split(" ")[0]+" "),i=0;i1&&f.push(e.replace("{page}",b.page).replace("{pageCount}",b.pages)),g[i].match(h)||f.push(g[i]);c.text(f.join(d))}},getUrlParameters:function(a){var b={},c=a.indexOf("?");return-1!==c&&(b=this.deparam(a.substring(c+1))),b},deparam:function(b){var c,d,e=/^\d+$/,f=/([^\[\]]+)|(\[\])/g,g=/([^?#]*)(#.*)?$/,h=function(a){return decodeURIComponent(a.replace(/\+/g," "))},i={};return b&&g.test(b)&&(c=b.split("&"),a.each(c,function(a,b){var c=b.split("="),g=h(c.shift()),j=h(c.join("=")),k=i;if(g){c=g.match(f);for(var l=0,m=c.length-1;lLoad more',waitAnimation:'
',mode:"scroll",pageVarKey:"page",pageLimit:12,assetsUrl:"/assets/components/pdotools/",scrollTop:!0};function o(i,s){this.element=i,this.settings=t.extend({},n,s),this._defaults=n,this._name=a,this.key=this.settings.pageVarKey,this.wrapper=t(this.settings.wrapper),this.mode=this.settings.mode,this.reached=!1,this.history=this.settings.history,this.oldBrowser=!(e.history&&history.pushState),this.init()}t.extend(o.prototype,{init:function(){var e=this;if(null==this.page){var i=this.hashGet(),s=null==i[this.key]?1:i[this.key];this.page=Number(s)}switch(this.mode){case"default":this.initDefault();break;case"scroll":case"button":if(this.history){if(void 0===jQuery().sticky)return void t.getScript(this.settings.assetsUrl+"js/lib/jquery.sticky.js",function(){e.init(e.settings)});this.stickyPagination()}else t(this.settings.pagination).hide();"button"==this.mode?this.initButton():this.initScroll()}},initDefault:function(){var s=this;t(i).on("click",this.settings.link,function(e){e.preventDefault();var i=t(this).prop("href"),a=i.match(new RegExp(s.key+"=(\\d+)")),n=a?a[1]:1;s.page!=n&&(s.history&&s.hashAdd(s.key,n),s.loadPage(i))}),this.history&&(t(e).on("popstate",function(t){t.originalEvent.state&&t.originalEvent.state.pdoPage&&s.loadPage(t.originalEvent.state.pdoPage)}),history.replaceState({pdoPage:e.location.href},""))},initButton:function(){var e=this;t(this.settings.rows).after(this.settings.moreTpl);var s=!1;t(this.settings.link).each(function(){var i=t(this).prop("href").match(new RegExp(e.key+"=(\\d+)"));if((i?i[1]:1)>e.page)return s=!0,!1}),s||t(this.settings.more).hide(),t(i).on("click",this.settings.more,function(t){t.preventDefault(),e.addPage()})},initScroll:function(){var i=this,s=t(e);s.on("scroll",function(){!i.reached&&s.scrollTop()>i.wrapper.height()-s.height()&&(i.reached=!0,i.addPage())})},addPage:function(){var e=this,i=this.hashGet()[this.key]||e.page||1;t(this.settings.link).each(function(){var s=t(this).prop("href"),a=s.match(new RegExp(e.key+"=(\\d+)")),n=a?Number(a[1]):1;if(n>i)return e.history&&e.hashAdd(e.key,n),e.page=i,e.loadPage(s,"append"),!1})},loadPage:function(i,s){var a=this,n=t(this.settings.rows),o=t(this.settings.pagination),r=i.match(new RegExp(this.key+"=(\\d+)")),p=r?Number(r[1]):1;if(s||(s="replace"),this.page!=p||"force"==s){this.wrapper.trigger("beforeLoad",[this,this.settings]),"scroll"!=this.mode&&this.wrapper.css({opacity:.3}),this.page=p;var h=t(this.settings.waitAnimation);"append"==s?this.wrapper.find(n).append(h):this.wrapper.find(n).empty().append(h);var l=this.getUrlParameters(i);l[this.key]=this.page,t.get(e.location.pathname,l,function(e){e&&(a.wrapper.find(o).replaceWith(e.pagination),a.history||t(a.settings.pagination).hide(),"append"===s?(a.wrapper.find(n).append(e.output),"button"==a.mode?e.pages==e.page||0==e.pages?t(a.settings.more).hide():t(a.settings.more).show():"scroll"==a.mode&&(a.reached=!1),h.remove()):(a.wrapper.find(n).html(e.output),"force"===s&&(a.page=1,"button"==a.settings.mode&&(e.pages==e.page||0==e.pages?t(a.settings.more).hide():t(a.settings.more).show()),a.history&&a.hashSet(l))),a.wrapper.trigger("afterLoad",[a,a.settings,e]),"scroll"!=a.mode&&(a.wrapper.css({opacity:1}),"default"==a.mode&&a.settings.scrollTop&&t("html, body").animate({scrollTop:a.wrapper.position().top-50||0},0)),a.updateTitle(e))},"json")}},stickyPagination:function(){var e=t(this.settings.pagination);e.is(":visible")&&(e.sticky({wrapperClassName:"sticky-pagination",getWidthFrom:this.settings.pagination,responsiveWidth:!0}),this.wrapper.trigger("scroll"))},updateTitle:function(e){if("undefined"!=typeof pdoTitle){for(var i=t("title"),s=pdoTitle.separator||" / ",a=pdoTitle.tpl,n=[],o=i.text().split(s),r=new RegExp("^"+a.split(" ")[0]+" "),p=0;p1&&n.push(a.replace("{page}",e.page).replace("{pageCount}",e.pages)),o[p].match(r)||n.push(o[p]);i.text(n.join(s))}},getUrlParameters:function(t){var e={},i=t.indexOf("?");return-1!==i&&(e=this.deparam(t.substring(i+1))),e},deparam:function(e){var i,s,a=/^\d+$/,n=/([^\[\]]+)|(\[\])/g,o=function(t){return decodeURIComponent(t.replace(/\+/g," "))},r={};return e&&/([^?#]*)(#.*)?$/.test(e)&&(i=e.split("&"),t.each(i,function(t,e){var i=e.split("="),p=o(i.shift()),h=o(i.join("=")),l=r;if(p){for(var g=0,d=(i=p.match(n)).length-1;g