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]) };