lib/javascripts/pagy.js in pagy-1.1.0 vs lib/javascripts/pagy.js in pagy-1.2.0

- old
+ new

@@ -12,32 +12,32 @@ // … and when pressing enter inside the input input.addEventListener('keyup', function(e){ if (e.which === 13) handler() }.bind(this)); }; Pagy.compact = function(id, marker, page, trim){ - var pagyNav = document.getElementById('pagy-nav-'+id), - input = pagyNav.getElementsByTagName('input')[0], - link = pagyNav.getElementsByTagName('a')[0], - linkP1 = pagyNav.getElementsByTagName('a')[1], - go = function(){ - if (page !== input.value) { - if (trim === true && input.value === '1') { linkP1.click() } - else { - var href = link.getAttribute('href').replace(marker, input.value); - link.setAttribute('href', href); - link.click(); - } - } - }; + var pagyEl = document.getElementById(id), + input = pagyEl.getElementsByTagName('input')[0], + link = pagyEl.getElementsByTagName('a')[0], + linkP1 = pagyEl.getElementsByTagName('a')[1], + go = function(){ + if (page !== input.value) { + if (trim === true && input.value === '1') { linkP1.click() } + else { + var href = link.getAttribute('href').replace(marker, input.value); + link.setAttribute('href', href); + link.click(); + } + } + }; Pagy.addInputEventListeners(input, go); }; Pagy.items = function(id, marker, from){ - var pagyNav = document.getElementById('pagy-items-'+id), - input = pagyNav.getElementsByTagName('input')[0], + var pagyEl = document.getElementById(id), + input = pagyEl.getElementsByTagName('input')[0], current = input.value, - link = pagyNav.getElementsByTagName('a')[0], + link = pagyEl.getElementsByTagName('a')[0], go = function(){ var items = input.value; if (current !== items) { var page = Math.max(Math.ceil(from / items),1); var href = link.getAttribute('href').replace(marker+'-page-', page).replace(marker+'-items-', items); @@ -47,22 +47,22 @@ }; Pagy.addInputEventListeners(input, go); }; Pagy.responsive = function(id, tags, widths, series){ - var pagyNav = document.getElementById('pagy-nav-'+id), - pagyParent = pagyNav.parentElement, + var pagyEl = document.getElementById(id), + pagyParent = pagyEl.parentElement, lastWidth = undefined, render = function(){ var parentWidth = parseInt(pagyParent.clientWidth), width = widths.find(function(w){return parentWidth > w}); if (width !== lastWidth) { - while (pagyNav.firstChild) { pagyNav.removeChild(pagyNav.firstChild) } + while (pagyEl.firstChild) { pagyEl.removeChild(pagyEl.firstChild) } var html = tags['before']; series[width].forEach(function(item){html += tags[item]}); html += tags['after']; - pagyNav.insertAdjacentHTML('beforeend', html); + pagyEl.insertAdjacentHTML('beforeend', html); lastWidth = width; } }.bind(this); window.addEventListener('resize', render, true); Pagy.windowListeners.push(render); @@ -71,12 +71,22 @@ Pagy.init = function(){ // we need to explicitly remove the window listeners because turbolinks persists the window object Pagy.windowListeners.forEach(function(l){window.removeEventListener('resize', l, true)}); Pagy.windowListeners = []; + var json = document.getElementsByClassName('pagy-json'); + for (var i = 0, len = json.length; i < len; i++) { + var args = JSON.parse(json[i].innerHTML); + Pagy[args.shift()].apply(null, args); + } + // Support for legacy overridden helpers. It will be removed in 2.0 ['compact', 'items', 'responsive'].forEach(function(name){ var json = document.getElementsByClassName("pagy-"+name+"-json"); for (var i = 0, len = json.length; i < len; i++) { Pagy[name].apply(null, JSON.parse(json[i].innerHTML)) } }) }; + +function PagyInit(){} + +Pagy.applyInit = function(name, payload){ PagyInit[name].apply(null, [payload]) };