pagy 0.11.2 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/locales/pagy.yml +22 -0
- data/lib/pagy.rb +1 -1
- data/lib/pagy/extras/bulma.rb +27 -0
- data/lib/pagy/extras/compact.rb +17 -0
- data/lib/pagy/extras/initializer_example.rb +14 -11
- data/lib/pagy/extras/javascripts/pagy.js +16 -11
- data/lib/pagy/extras/responsive.rb +32 -9
- data/lib/pagy/extras/templates/nav_bulma.html.erb +24 -0
- data/lib/pagy/extras/templates/nav_bulma.html.haml +32 -0
- data/lib/pagy/extras/templates/nav_bulma.html.slim +32 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b8d6cfce02eec245f179798d265ceecf15461806e45d254ad12fbce2472ed92
|
4
|
+
data.tar.gz: 11515e85f3c0281155cbaddb1b30e2849da61b7ee469eaab7e82b5809c1bc99c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cc64afce98144eaa7d6e289a12b6be726c593d1f0f60f2d32b12123d64c44a51e43b2a5e48a6e33a5630a173a98dd27e27a53cda46c27da48f490ed98c51e09
|
7
|
+
data.tar.gz: e213157c371571deb954235a07950144c61f406b7f47c7b99f137b7951bb73f7f978c4606d6d584d7b7f41df8c0bfed95d68720e06aea97b8fb14254ccc3d908
|
data/lib/locales/pagy.yml
CHANGED
@@ -22,5 +22,27 @@ en:
|
|
22
22
|
items:
|
23
23
|
show: "Show"
|
24
24
|
items: "items per page"
|
25
|
+
tr:
|
26
|
+
pagy:
|
27
|
+
nav:
|
28
|
+
prev: "‹ Önceki"
|
29
|
+
next: "Sonraki ›"
|
30
|
+
gap: "…"
|
31
|
+
info:
|
32
|
+
single_page:
|
33
|
+
zero: "Hiç %{item_name} bulunamadı."
|
34
|
+
one: "<b>1</b> %{item_name} gösteriliyor."
|
35
|
+
other: "Toplam <b>%{count}</b> %{item_name} gösteriliyor."
|
36
|
+
multiple_pages: "<b>%{count}</b> %{item_name} içerisinden <b>%{from}-%{to}</b> kadarı gösteriliyor."
|
37
|
+
item_name:
|
38
|
+
zero: "kayıt"
|
39
|
+
one: "kayıt"
|
40
|
+
other: "kayıt"
|
41
|
+
compact:
|
42
|
+
page: "Sayfa"
|
43
|
+
of: "/"
|
44
|
+
items:
|
45
|
+
show: "Göster"
|
46
|
+
items: "sayfa başı"
|
25
47
|
|
26
48
|
# PR for other languages are very welcome. Thanks!
|
data/lib/pagy.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
# See the Pagy documentation: https://ddnexus.github.io/pagy/extras/bulma
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
class Pagy
|
5
|
+
# Add nav helper for Bulma pagination
|
6
|
+
module Frontend
|
7
|
+
|
8
|
+
def pagy_nav_bulma(pagy)
|
9
|
+
html, link, p_prev, p_next = +'', pagy_link_proc(pagy), pagy.prev, pagy.next
|
10
|
+
|
11
|
+
html << (p_prev ? link.call(p_prev, pagy_t('pagy.nav.prev'), 'class="pagination-previous" aria-label="previous page"')
|
12
|
+
: %(<a class="pagination-previous" disabled>#{pagy_t('pagy.nav.prev')}</a>))
|
13
|
+
html << (p_next ? link.call(p_next, pagy_t('pagy.nav.next'), 'class="pagination-next" aria-label="next page"')
|
14
|
+
: %(<a class="pagination-next" disabled>#{pagy_t('pagy.nav.next')}</a>))
|
15
|
+
html << '<ul class="pagination-list">'
|
16
|
+
pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
|
17
|
+
html << if item.is_a?(Integer); %(<li>#{link.call item, item, %(class="pagination-link" aria-label="goto page #{item}") }</li>) # page link
|
18
|
+
elsif item.is_a?(String) ; %(<li>#{link.call item, item, %(class="pagination-link is-current" aria-label="page #{item}" aria-current="page")}</li>) # active page
|
19
|
+
elsif item == :gap ; %(<li><span class="pagination-ellipsis">#{pagy_t('pagy.nav.gap')}</span></li>) # page gap
|
20
|
+
end
|
21
|
+
end
|
22
|
+
html << '</ul>'
|
23
|
+
%(<nav class="pagy-nav-bulma pagination is-centered" role="navigation" aria-label="pagination">#{html}</nav>)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
data/lib/pagy/extras/compact.rb
CHANGED
@@ -38,5 +38,22 @@ class Pagy
|
|
38
38
|
html << %(</div></nav><script type="application/json" class="pagy-compact-json">["#{id}", "#{MARKER}", "#{p_page}"]</script>)
|
39
39
|
end
|
40
40
|
|
41
|
+
# Compact pagination for Bulma: it returns the html with the series of links to the pages
|
42
|
+
# we use a numeric input tag to set the page and the Pagy.compact javascript to navigate
|
43
|
+
def pagy_nav_compact_bulma(pagy, id=caller(1,1)[0].hash)
|
44
|
+
html, link, p_prev, p_next, p_page, p_pages = +'', pagy_link_proc(pagy), pagy.prev, pagy.next, pagy.page, pagy.pages
|
45
|
+
|
46
|
+
html << %(<nav id="pagy-nav-#{id}" class="pagy-nav-compact-bulma" role="navigation" aria-label="pagination">)
|
47
|
+
html << link.call(MARKER, '', 'style="display: none;"')
|
48
|
+
html << %(<div class="field is-grouped is-grouped-centered" role="group">)
|
49
|
+
html << (p_prev ? %(<p class="control">#{link.call(p_prev, pagy_t('pagy.nav.prev'), 'class="button" aria-label="previous page"')}</p>)
|
50
|
+
: %(<p class="control"><a class="button" disabled>#{pagy_t('pagy.nav.prev')}</a></p>))
|
51
|
+
input = %(<input class="input" type="number" min="1" max="#{p_pages}" value="#{p_page}" style="padding: 0; text-align: center; width: #{p_pages.to_s.length+1}rem;">)
|
52
|
+
html << %(<div class="pagy-compact-input control level is-mobile">#{pagy_t('pagy.compact.page')} #{input} #{pagy_t('pagy.compact.of')} #{p_pages}</div>)
|
53
|
+
html << (p_next ? %(<p class="control">#{link.call(p_next, pagy_t('pagy.nav.next'), 'class="button" aria-label="next page"')}</p>)
|
54
|
+
: %(<p class="control"><a class="button" disabled>#{pagy_t('pagy.nav.next')}</a></p>))
|
55
|
+
html << %(</div></nav><script type="application/json" class="pagy-compact-json">["#{id}", "#{MARKER}", "#{p_page}"]</script>)
|
56
|
+
end
|
57
|
+
|
41
58
|
end
|
42
59
|
end
|
@@ -5,7 +5,7 @@
|
|
5
5
|
# Extras
|
6
6
|
# See https://ddnexus.github.io/pagy/extras
|
7
7
|
|
8
|
-
# Array: Paginate arrays efficiently avoiding expensive array-wrapping and
|
8
|
+
# Array: Paginate arrays efficiently avoiding expensive array-wrapping and without overriding
|
9
9
|
# See https://ddnexus.github.io/pagy/extras/array
|
10
10
|
# require 'pagy/extras/array'
|
11
11
|
|
@@ -17,10 +17,6 @@
|
|
17
17
|
# See https://ddnexus.github.io/pagy/extras/compact
|
18
18
|
# require 'pagy/extras/compact'
|
19
19
|
|
20
|
-
# I18n: Use the `I18n` gem instead of the pagy implementation
|
21
|
-
# See https://ddnexus.github.io/pagy/extras/i18n
|
22
|
-
# require 'pagy/extras/i18n'
|
23
|
-
|
24
20
|
# Items: Handle the page :items passed with the params
|
25
21
|
# See https://ddnexus.github.io/pagy/extras/items
|
26
22
|
# require 'pagy/extras/items'
|
@@ -53,12 +49,19 @@
|
|
53
49
|
# Pagy::VARS[:item_path] = 'activerecord.models.product' # example
|
54
50
|
|
55
51
|
|
56
|
-
# Pagy::Frontend::I18N Constant
|
57
|
-
# See https://ddnexus.github.io/pagy/api/frontend#i18n
|
58
|
-
# Pagy::Frontend::I18N.load(file:'path/to/dictionary.yml', language:'en') # load a custom file
|
59
|
-
# Pagy::Frontend::I18N[:plural] = -> (count) {(['zero', 'one'][count] || 'other') # default
|
60
|
-
|
61
|
-
|
62
52
|
# Rails: extras assets path required by compact, items and responsive extras
|
63
53
|
# See https://ddnexus.github.io/pagy/extras
|
64
54
|
# Rails.application.config.assets.paths << Pagy.root.join('pagy', 'extras', 'javascripts')
|
55
|
+
|
56
|
+
|
57
|
+
# I18n: faster internal pagy implementation (does not use the I18n gem)
|
58
|
+
# Use only for single language apps that don't need dynamic translation between multiple languages
|
59
|
+
# See https://ddnexus.github.io/pagy/api/frontend#i18n
|
60
|
+
# Notice: Do not use the following 2 lines if you use the i18n extra below
|
61
|
+
# Pagy::Frontend::I18N.load(file:'path/to/dictionary.yml', language:'en') # load a custom file
|
62
|
+
# Pagy::Frontend::I18N[:plural] = -> (count) {(['zero', 'one'][count] || 'other')} # default
|
63
|
+
|
64
|
+
# I18n: Use the `I18n` gem instead of the pagy implementation
|
65
|
+
# (slower but allows dynamic translation between multiple languages)
|
66
|
+
# See https://ddnexus.github.io/pagy/extras/i18n
|
67
|
+
# require 'pagy/extras/i18n'
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
function Pagy(){}
|
4
4
|
|
5
|
+
Pagy.windowListeners = [];
|
6
|
+
|
5
7
|
Pagy.addInputEventListeners = function(input, handler){
|
6
8
|
// select the content on click: easier for typing a number
|
7
9
|
input.addEventListener('click', function(){ this.select() });
|
@@ -44,30 +46,33 @@ Pagy.items = function(id, marker, from){
|
|
44
46
|
|
45
47
|
Pagy.responsive = function(id, tags, widths, series){
|
46
48
|
var pagyNav = document.getElementById('pagy-nav-'+id),
|
47
|
-
pagyBox = pagyNav.firstChild || pagyNav,
|
48
49
|
pagyParent = pagyNav.parentElement,
|
49
50
|
lastWidth = undefined,
|
50
51
|
render = function(){
|
51
52
|
var parentWidth = parseInt(pagyParent.clientWidth),
|
52
53
|
width = widths.find(function(w){return parentWidth > w});
|
53
54
|
if (width !== lastWidth) {
|
54
|
-
while (
|
55
|
-
var html = tags['
|
55
|
+
while (pagyNav.firstChild) { pagyNav.removeChild(pagyNav.firstChild) }
|
56
|
+
var html = tags['before'];
|
56
57
|
series[width].forEach(function(item){html += tags[item]});
|
57
|
-
html += tags['
|
58
|
-
|
58
|
+
html += tags['after'];
|
59
|
+
pagyNav.insertAdjacentHTML('beforeend', html);
|
59
60
|
lastWidth = width;
|
60
61
|
}
|
61
|
-
};
|
62
|
-
|
63
|
-
|
62
|
+
}.bind(this);
|
63
|
+
window.addEventListener('resize', render, true);
|
64
|
+
Pagy.windowListeners.push(render);
|
64
65
|
render();
|
65
66
|
};
|
66
67
|
|
67
68
|
Pagy.init = function(){
|
69
|
+
// we need to explicitly remove the window listeners because turbolinks persists the window object
|
70
|
+
Pagy.windowListeners.forEach(function(l){window.removeEventListener('resize', l, true)});
|
71
|
+
Pagy.windowListeners = [];
|
68
72
|
['compact', 'items', 'responsive'].forEach(function(name){
|
69
|
-
|
70
|
-
|
71
|
-
|
73
|
+
var json = document.getElementsByClassName("pagy-"+name+"-json");
|
74
|
+
for (var i = 0, len = json.length; i < len; i++) {
|
75
|
+
Pagy[name].apply(null, JSON.parse(json[i].innerHTML))
|
76
|
+
}
|
72
77
|
})
|
73
78
|
};
|
@@ -36,16 +36,16 @@ class Pagy
|
|
36
36
|
def pagy_nav_responsive(pagy, id=caller(1,1)[0].hash)
|
37
37
|
tags, link, p_prev, p_next, responsive = {}, pagy_link_proc(pagy), pagy.prev, pagy.next, pagy.responsive
|
38
38
|
|
39
|
-
tags['
|
40
|
-
|
39
|
+
tags['before'] = (p_prev ? %(<span class="page prev">#{link.call p_prev, pagy_t('pagy.nav.prev'), 'aria-label="previous"'}</span> )
|
40
|
+
: %(<span class="page prev disabled">#{pagy_t('pagy.nav.prev')}</span> ))
|
41
41
|
responsive[:items].each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
|
42
42
|
tags[item.to_s] = if item.is_a?(Integer); %(<span class="page">#{link.call item}</span> ) # page link
|
43
43
|
elsif item.is_a?(String) ; %(<span class="page active">#{item}</span> ) # current page
|
44
44
|
elsif item == :gap ; %(<span class="page gap">#{pagy_t('pagy.nav.gap')}</span> ) # page gap
|
45
45
|
end
|
46
46
|
end
|
47
|
-
tags['
|
48
|
-
|
47
|
+
tags['after'] = (p_next ? %(<span class="page next">#{link.call p_next, pagy_t('pagy.nav.next'), 'aria-label="next"'}</span>)
|
48
|
+
: %(<span class="page next disabled">#{pagy_t('pagy.nav.next')}</span>))
|
49
49
|
script = %(<script type="application/json" class="pagy-responsive-json">["#{id}", #{tags.to_json}, #{responsive[:widths].to_json}, #{responsive[:series].to_json}]</script>)
|
50
50
|
%(<nav id="pagy-nav-#{id}" class="pagy-nav-responsive pagination" role="navigation" aria-label="pager"></nav>#{script})
|
51
51
|
end
|
@@ -55,18 +55,41 @@ class Pagy
|
|
55
55
|
def pagy_nav_responsive_bootstrap(pagy, id=caller(1,1)[0].hash)
|
56
56
|
tags, link, p_prev, p_next, responsive = {}, pagy_link_proc(pagy, 'class="page-link"'), pagy.prev, pagy.next, pagy.responsive
|
57
57
|
|
58
|
-
tags['
|
59
|
-
|
58
|
+
tags['before'] = +'<ul class="pagination">'
|
59
|
+
tags['before'] << (p_prev ? %(<li class="page-item prev">#{link.call p_prev, pagy_t('pagy.nav.prev'), 'aria-label="previous"'}</li>)
|
60
|
+
: %(<li class="page-item prev disabled"><a href="#" class="page-link">#{pagy_t('pagy.nav.prev')}</a></li>))
|
60
61
|
responsive[:items].each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
|
61
62
|
tags[item.to_s] = if item.is_a?(Integer); %(<li class="page-item">#{link.call item}</li>) # page link
|
62
63
|
elsif item.is_a?(String) ; %(<li class="page-item active">#{link.call item}</li>) # active page
|
63
64
|
elsif item == :gap ; %(<li class="page-item gap disabled"><a href="#" class="page-link">#{pagy_t('pagy.nav.gap')}</a></li>) # page gap
|
64
65
|
end
|
65
66
|
end
|
66
|
-
tags['
|
67
|
-
|
67
|
+
tags['after'] = +(p_next ? %(<li class="page-item next">#{link.call p_next, pagy_t('pagy.nav.next'), 'aria-label="next"'}</li>)
|
68
|
+
: %(<li class="page-item next disabled"><a href="#" class="page-link">#{pagy_t('pagy.nav.next')}</a></li>))
|
69
|
+
tags['after'] << '</ul>'
|
68
70
|
script = %(<script type="application/json" class="pagy-responsive-json">["#{id}", #{tags.to_json}, #{responsive[:widths].to_json}, #{responsive[:series].to_json}]</script>)
|
69
|
-
%(<nav id="pagy-nav-#{id}" class="pagy-nav-responsive-bootstrap pagination" role="navigation" aria-label="pager"
|
71
|
+
%(<nav id="pagy-nav-#{id}" class="pagy-nav-responsive-bootstrap pagination" role="navigation" aria-label="pager"></nav>#{script})
|
72
|
+
end
|
73
|
+
|
74
|
+
# Responsive pagination for Bulma: it returns the html with the series of links to the pages
|
75
|
+
# rendered by the Pagy.responsive javascript
|
76
|
+
def pagy_nav_responsive_bulma(pagy, id=caller(1,1)[0].hash)
|
77
|
+
tags, link, p_prev, p_next, responsive = {}, pagy_link_proc(pagy), pagy.prev, pagy.next, pagy.responsive
|
78
|
+
|
79
|
+
tags['before'] = +(p_prev ? link.call(p_prev, pagy_t('pagy.nav.prev'), 'class="pagination-previous" aria-label="previous page"')
|
80
|
+
: %(<a class="pagination-previous" disabled>#{pagy_t('pagy.nav.prev')}</a>))
|
81
|
+
tags['before'] << (p_next ? link.call(p_next, pagy_t('pagy.nav.next'), 'class="pagination-next" aria-label="next page"')
|
82
|
+
: %(<a class="pagination-next" disabled>#{pagy_t('pagy.nav.next')}</a>))
|
83
|
+
tags['before'] << '<ul class="pagination-list">'
|
84
|
+
responsive[:items].each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
|
85
|
+
tags[item.to_s] = if item.is_a?(Integer); %(<li>#{link.call item, item, %(class="pagination-link" aria-label="goto page #{item}")}</li>)
|
86
|
+
elsif item.is_a?(String) ; %(<li>#{link.call item, item, %(class="pagination-link is-current" aria-current="page" aria-label="page #{item}")}</li>)
|
87
|
+
elsif item == :gap ; %(<li><span class="pagination-ellipsis">#{pagy_t('pagy.nav.gap')}</span></li>)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
tags['after'] = '</ul>'
|
91
|
+
script = %(<script type="application/json" class="pagy-responsive-json">["#{id}", #{tags.to_json}, #{responsive[:widths].to_json}, #{responsive[:series].to_json}]</script>)
|
92
|
+
%(<nav id="pagy-nav-#{id}" class="pagy-nav-bulma pagination is-centered" role="navigation" aria-label="pagination"></nav>#{script})
|
70
93
|
end
|
71
94
|
|
72
95
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<%#
|
2
|
+
This template is i18n-ready: if you don't use i18n, then you can replace the pagy_t
|
3
|
+
calls with the actual strings ("‹ Prev", "Next ›", "…").
|
4
|
+
|
5
|
+
The link variable is set to a proc that returns the link tag.
|
6
|
+
Usage: link.call( page_number [, text [, extra_attributes_string ]])
|
7
|
+
-%>
|
8
|
+
<% link = pagy_link_proc(pagy) -%>
|
9
|
+
<%# -%><nav class="pagy-nav-bulma pagination is-centered" role="navigation" aria-label="pagination">
|
10
|
+
<% if pagy.prev -%> <%== link.call(pagy.prev, pagy_t('pagy.nav.prev'), 'class="pagination-previous" aria-label="previous page"') %>
|
11
|
+
<% else -%> <a class="pagination-previous" disabled><%== pagy_t('pagy.nav.prev') %></a>
|
12
|
+
<% end -%>
|
13
|
+
<% if pagy.next -%> <%== link.call(pagy.next, pagy_t('pagy.nav.next'), 'class="pagination-next" aria-label="next page"') %>
|
14
|
+
<% else -%> <a class="pagination-next" disabled><%== pagy_t('pagy.nav.next') %></a>
|
15
|
+
<% end -%>
|
16
|
+
<%# -%> <ul class="pagination-list">
|
17
|
+
<% pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36] -%>
|
18
|
+
<% if item.is_a?(Integer) -%> <li><%== link.call item, item, %(class="pagination-link" aria-label="goto page #{item}") %></li>
|
19
|
+
<% elsif item.is_a?(String) -%> <li><%== link.call item, item, %(class="pagination-link is-current" aria-label="page #{item}" aria-current="page") %></li>
|
20
|
+
<% elsif item == :gap -%> <li><span class="pagination-ellipsis"><%== pagy_t('pagy.nav.gap') %></span></li>
|
21
|
+
<% end -%>
|
22
|
+
<% end -%>
|
23
|
+
<%# -%> </ul>
|
24
|
+
<%# -%></nav>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
-# This template is i18n-ready: if you don't use i18n, then you can replace the pagy_t
|
2
|
+
-# calls with the actual strings ("‹ Prev", "Next ›", "…").
|
3
|
+
|
4
|
+
-# The link variable is set to a proc that returns the link tag.
|
5
|
+
-# Usage: link.call( page_number [, text [, extra_attributes_string ]])
|
6
|
+
|
7
|
+
- link = pagy_link_proc(pagy)
|
8
|
+
|
9
|
+
%nav.pagy-nav-bulma.pagination.is-centered{:role => "navigation", "aria-label" => "pagination"}
|
10
|
+
|
11
|
+
- if pagy.prev
|
12
|
+
!= link.call(pagy.prev, pagy_t('pagy.nav.prev'), 'class="pagination-previous" aria-label="previous page"')
|
13
|
+
- else
|
14
|
+
%a.pagination-previous{:disabled => "disabled"}!= pagy_t('pagy.nav.prev')
|
15
|
+
|
16
|
+
- if pagy.next
|
17
|
+
!= link.call(pagy.next, pagy_t('pagy.nav.next'), 'class="pagination-next" aria-label="next page"')
|
18
|
+
- else
|
19
|
+
%a.pagination-next{:disabled => "disabled"}!= pagy_t('pagy.nav.next')
|
20
|
+
|
21
|
+
%ul.pagination-list
|
22
|
+
|
23
|
+
- pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
|
24
|
+
- if item.is_a?(Integer) # page link
|
25
|
+
%li!= link.call item, item, %(class="pagination-link" aria-label="goto page #{item}")
|
26
|
+
|
27
|
+
- elsif item.is_a?(String) # current page
|
28
|
+
%li!= link.call item, item, %(class="pagination-link is-current" aria-label="page #{item}" aria-current="page")
|
29
|
+
|
30
|
+
- elsif item == :gap # page gap
|
31
|
+
%li
|
32
|
+
%span.pagination-ellipsis!= pagy_t('pagy.nav.gap')
|
@@ -0,0 +1,32 @@
|
|
1
|
+
/ This template is i18n-ready: if you don't use i18n, then you can replace the pagy_t
|
2
|
+
/ calls with the actual strings ("‹ Prev", "Next ›", "…").
|
3
|
+
|
4
|
+
/ The link variable is set to a proc that returns the link tag.
|
5
|
+
/ Usage: link.call( page_number [, text [, extra_attributes_string ]])
|
6
|
+
|
7
|
+
- link = pagy_link_proc(pagy)
|
8
|
+
|
9
|
+
nav.pagy-nav-bulma.pagination.is-centered role="navigation" aria-label="pagination"
|
10
|
+
|
11
|
+
- if pagy.prev
|
12
|
+
== link.call(pagy.prev, pagy_t('pagy.nav.prev'), 'class="pagination-previous" aria-label="previous page"')
|
13
|
+
- else
|
14
|
+
a.pagination-previous disabled="disabled" == pagy_t('pagy.nav.prev')
|
15
|
+
|
16
|
+
- if pagy.next
|
17
|
+
== link.call(pagy.next, pagy_t('pagy.nav.next'), 'class="pagination-next" aria-label="next page"')
|
18
|
+
- else
|
19
|
+
a.pagination-next disabled="disabled" == pagy_t('pagy.nav.next')
|
20
|
+
|
21
|
+
ul.pagination-list
|
22
|
+
|
23
|
+
- pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
|
24
|
+
- if item.is_a?(Integer) # page link
|
25
|
+
li == link.call item, item, %(class="pagination-link" aria-label="goto page #{item}")
|
26
|
+
|
27
|
+
- elsif item.is_a?(String) # current page
|
28
|
+
li == link.call item, item, %(class="pagination-link is-current" aria-label="page #{item}" aria-current="page")
|
29
|
+
|
30
|
+
- elsif item == :gap # page gap
|
31
|
+
li
|
32
|
+
span.pagination-ellipsis == pagy_t('pagy.nav.gap')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pagy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Domizio Demichelis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-07-
|
11
|
+
date: 2018-07-09 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: 'Agnostic pagination in plain ruby: it works with any framework, ORM
|
14
14
|
and DB type, with all kinds of collections, even pre-paginated, scopes, Arrays,
|
@@ -27,6 +27,7 @@ files:
|
|
27
27
|
- lib/pagy/backend.rb
|
28
28
|
- lib/pagy/extras/array.rb
|
29
29
|
- lib/pagy/extras/bootstrap.rb
|
30
|
+
- lib/pagy/extras/bulma.rb
|
30
31
|
- lib/pagy/extras/compact.rb
|
31
32
|
- lib/pagy/extras/i18n.rb
|
32
33
|
- lib/pagy/extras/initializer_example.rb
|
@@ -39,6 +40,9 @@ files:
|
|
39
40
|
- lib/pagy/extras/templates/nav_bootstrap.html.erb
|
40
41
|
- lib/pagy/extras/templates/nav_bootstrap.html.haml
|
41
42
|
- lib/pagy/extras/templates/nav_bootstrap.html.slim
|
43
|
+
- lib/pagy/extras/templates/nav_bulma.html.erb
|
44
|
+
- lib/pagy/extras/templates/nav_bulma.html.haml
|
45
|
+
- lib/pagy/extras/templates/nav_bulma.html.slim
|
42
46
|
- lib/pagy/frontend.rb
|
43
47
|
- pagy.gemspec
|
44
48
|
homepage: https://github.com/ddnexus/pagy
|