pagy 3.3.2 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 10ba8b6d06ab5a7b5a8200742565f8193484e664eaecd342102ff001a03c9dd5
4
- data.tar.gz: 273c70974fafb3b8c01392254ba45a86af6654a2442229afb403ec29407b76ad
3
+ metadata.gz: a00174d5d8af0760d883355ba8e77f9f9118954a7c6dec7e5e6e7ab503dcfde9
4
+ data.tar.gz: 64a379d944f3b013e6b17ec8f899661346ac837780c028295e1916e796a1930e
5
5
  SHA512:
6
- metadata.gz: e8f98ade89e75ce830bd933a2a21c8075c9b00e1f08de5e0797a1178d058707931956b16d5cd2cc818427bbb24464a398c4ebc114b92fde6d671667aedf79d6b
7
- data.tar.gz: f70784721380571f8286379cf70e34badd30cea3d57ac89f70b5c99704d1b4719192f2cca0e59b7aa34f0cc0f32b22175752d224f187dbba7aadd1eb7b404320
6
+ metadata.gz: 4d2d2d25d9df71c80de2786165ed678b82744ba617bad804beb8a56eb41011a239ad3d7ce96abfef80a4e6313f483edab43e9f9d331a161a4fead6f07675013d
7
+ data.tar.gz: e4dba23f4e9fd2ccc1d77c1f8e0bcb00c3a3ba7b770126afd57eb7247a51168e0bcb2ba4ec4ebfb30e34eac97913099e79e2409225ddbcd72ba618f77fa20597
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
  # frozen_string_literal: true
3
3
 
4
- # Pagy initializer file (3.3.2)
4
+ # Pagy initializer file (3.4.0)
5
5
  # Customize only what you really need and notice that Pagy works also without any of the following lines.
6
6
  # Should you just cherry pick part of this file, please maintain the require-order of the extras
7
7
 
@@ -58,6 +58,10 @@
58
58
  # See https://ddnexus.github.io/pagy/extras/semantic
59
59
  # require 'pagy/extras/semantic'
60
60
 
61
+ # UIkit extra: Add nav helper and templates for UIkit pagination
62
+ # See https://ddnexus.github.io/pagy/extras/uikit
63
+ # require 'pagy/extras/uikit'
64
+
61
65
  # Multi size var used by the *_nav_js helpers
62
66
  # See https://ddnexus.github.io/pagy/extras/navs#steps
63
67
  # Pagy::VARS[:steps] = { 0 => [2,3,3,2], 540 => [3,5,5,3], 720 => [5,7,7,5] } # example
@@ -4,7 +4,7 @@
4
4
 
5
5
  require 'pathname'
6
6
 
7
- class Pagy ; VERSION = '3.3.2'
7
+ class Pagy ; VERSION = '3.4.0'
8
8
 
9
9
  # Root pathname to get the path of Pagy files like templates or dictionaries
10
10
  def self.root; @root ||= Pathname.new(__FILE__).dirname.freeze end
@@ -0,0 +1,62 @@
1
+ # See the Pagy documentation: https://ddnexus.github.io/pagy/extras/uikit
2
+ # encoding: utf-8
3
+ # frozen_string_literal: true
4
+
5
+ require 'pagy/extras/shared'
6
+
7
+ class Pagy
8
+ module Frontend
9
+
10
+ # Pagination for uikit: it returns the html with the series of links to the pages
11
+ def pagy_uikit_nav(pagy)
12
+ link, p_prev, p_next = pagy_link_proc(pagy), pagy.prev, pagy.next
13
+
14
+ previous_span = "<span uk-pagination-previous>#{pagy_t('pagy.nav.prev')}</span>"
15
+ html = EMPTY + (p_prev ? %(<li>#{link.call p_prev, previous_span}</li>)
16
+ : %(<li class="uk-disabled"><a href="#">#{previous_span}</a></li>))
17
+ pagy.series.each do |item|
18
+ html << if item.is_a?(Integer); %(<li>#{link.call item}</li>)
19
+ elsif item.is_a?(String) ; %(<li class="uk-active"><span>#{item}</span></li>)
20
+ elsif item == :gap ; %(<li class="uk-disabled"><span>#{pagy_t('pagy.nav.gap')}</span></li>)
21
+ end
22
+ end
23
+ next_span = "<span uk-pagination-next>#{pagy_t('pagy.nav.next')}</span>"
24
+ html << (p_next ? %(<li>#{link.call p_next, next_span}</li>)
25
+ : %(<li class="uk-disabled"><a href="#">#{next_span}</a></li>))
26
+ %(<ul class="pagy-uikit-nav uk-pagination uk-flex-center">#{html}</ul>)
27
+ end
28
+
29
+ # Javascript pagination for uikit: it returns a nav and a JSON tag used by the Pagy.nav javascript
30
+ def pagy_uikit_nav_js(pagy, id=pagy_id)
31
+ link, p_prev, p_next = pagy_link_proc(pagy), pagy.prev, pagy.next
32
+ previous_span = "<span uk-pagination-previous>#{pagy_t('pagy.nav.prev')}</span>"
33
+ next_span = "<span uk-pagination-next>#{pagy_t('pagy.nav.next')}</span>"
34
+ tags = { 'before' => p_prev ? %(<li>#{link.call p_prev, previous_span}</li>)
35
+ : %(<li class="uk-disabled"><a href="#">#{previous_span}</a></li>),
36
+ 'link' => %(<li>#{link.call(MARK)}</li>),
37
+ 'active' => %(<li class="uk-active"><span>#{MARK}</span></li>),
38
+ 'gap' => %(<li class="uk-disabled"><span>#{pagy_t('pagy.nav.gap')}</span></li>),
39
+ 'after' => p_next ? %(<li>#{link.call p_next, next_span}</li>)
40
+ : %(<li class="uk-disabled"><a href="#">#{next_span}</a></li>) }
41
+ %(<ul id="#{id}" class="pagy-uikit-nav-js uk-pagination uk-flex-center"></ul>#{pagy_json_tag(:nav, id, tags, pagy.sequels, defined?(TRIM) && pagy.vars[:page_param])})
42
+ end
43
+
44
+ # Javascript combo pagination for uikit: it returns a nav and a JSON tag used by the Pagy.combo_nav javascript
45
+ def pagy_uikit_combo_nav_js(pagy, id=pagy_id)
46
+ link, p_prev, p_next, p_page, p_pages = pagy_link_proc(pagy), pagy.prev, pagy.next, pagy.page, pagy.pages
47
+
48
+ html = %(<div id="#{id}" class="pagy-uikit-combo-nav-js uk-button-group">)
49
+ html = html + (p_prev ? link.call(p_prev, pagy_t('pagy.nav.prev'), 'class="uk-button uk-button-default"')
50
+ : %(<button class="uk-button uk-button-default" disabled>#{pagy_t('pagy.nav.prev')}</button>))
51
+
52
+ html << %(<div class="uk-text-middle uk-margin-left uk-margin-right">)
53
+ input = %(<input type="number" min="1" max="#{p_pages}" value="#{p_page}" class="uk-input" style="padding: 0; text-align: center; width: #{p_pages.to_s.length+1}rem;">)
54
+ html << pagy_t('pagy.combo_nav_js', page_input: input, count: p_page, pages: p_pages) + '</div>'
55
+
56
+ html << (p_next ? link.call(p_next, pagy_t('pagy.nav.next'), 'class="uk-button uk-button-default"')
57
+ : %(<button class="uk-button uk-button-default" disabled>#{pagy_t('pagy.nav.next')}</button>))
58
+
59
+ html << %(</div>#{pagy_json_tag(:combo_nav, id, p_page, pagy_marked_link(link), defined?(TRIM) && pagy.vars[:page_param])})
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,15 @@
1
+ <% link = pagy_link_proc(pagy) -%>
2
+ <%# -%> <ul class="uk-pagination uk-flex-center">
3
+ <% if page.prev -%> <li><%== link.call(pagy.prev, "<span uk-pagination-previous>#{pagy_t('pagy.nav.prev')}</span>") %></li>
4
+ <% else -%> <li class="uk-disabled"><a href="#"><span uk-pagination-previous><%== pagy_t('pagy.nav.prev') %></span></a></li>
5
+ <% end -%>
6
+ <% pagy.series.each do |item| -%>
7
+ <% if item.is_a?(Integer) -%> <li><%== link.call(item) %></li>
8
+ <% elsif item.is_a?(String) -%> <li class="uk-active"><span><%== item %></span></li>
9
+ <% elsif item == :gap -%> <li class="uk-disabled"><span><%== pagy_t('pagy.nav.gap') %></span></li>
10
+ <% end -%>
11
+ <% end -%>
12
+ <% if pagy.next -%> <li><%== link.call(p_next, "<span uk-pagination-next>#{pagy_t('pagy.nav.next')}</span>") %></li>
13
+ <% else -%> <li class="uk-disabled"><a href="#"><span uk-pagination-next><%== pagy_t('pagy.nav.next') %></span></a></li>
14
+ <% end -%>
15
+ <%# -%> </ul>
@@ -0,0 +1,28 @@
1
+ - link = pagy_link_proc(pagy)
2
+
3
+ %ul.uk-pagination.uk-flex-center
4
+ - if page.prev
5
+ %li!= link.call(pagy.prev, "<span uk-pagination-previous>#{pagy_t('pagy.nav.prev')}</span>")
6
+ - else
7
+ %li.uk-disabled
8
+ %a{href: "#"}
9
+ %span{"uk-pagination-previous" => ""}!= pagy_t('pagy.nav.prev')
10
+
11
+ - pagy.series.each do |item|
12
+ - if item.is_a?(Integer)
13
+ %li!= link.call(item)
14
+
15
+ - elsif item.is_a?(String)
16
+ %li.uk-active
17
+ %span!= item
18
+
19
+ - elsif item == :gap
20
+ %li.uk-disabled
21
+ %span!= pagy_t('pagy.nav.gap')
22
+
23
+ - if pagy.next
24
+ %li!= link.call(p_next, "<span uk-pagination-next>#{pagy_t('pagy.nav.next')}</span>")
25
+ - else
26
+ %li.uk-disabled
27
+ %a{href: "#"}
28
+ %span{"uk-pagination-next" => ""}!= pagy_t('pagy.nav.next')
@@ -0,0 +1,28 @@
1
+ - link = pagy_link_proc(pagy)
2
+
3
+ ul.uk-pagination.uk-flex-center
4
+ - if page.prev
5
+ li== link.call(pagy.prev, "<span uk-pagination-previous>#{pagy_t('pagy.nav.prev')}</span>")
6
+ - else
7
+ li.uk-disabled
8
+ a href="#"
9
+ span uk-pagination-previous="" == pagy_t('pagy.nav.prev')
10
+
11
+ - pagy.series.each do |item|
12
+ - if item.is_a?(Integer)
13
+ li== link.call(item)
14
+
15
+ - elsif item.is_a?(String)
16
+ li.uk-active
17
+ span== item
18
+
19
+ - elsif item == :gap
20
+ li.uk-disabled
21
+ span== pagy_t('pagy.nav.gap')
22
+
23
+ - if pagy.next
24
+ li== link.call(p_next, "<span uk-pagination-next>#{pagy_t('pagy.nav.next')}</span>")
25
+ - else
26
+ li.uk-disabled
27
+ a href="#"
28
+ span uk-pagination-next="" == pagy_t('pagy.nav.next')
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: 3.3.2
4
+ version: 3.4.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: 2019-07-06 00:00:00.000000000 Z
11
+ date: 2019-07-15 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,
@@ -65,6 +65,7 @@ files:
65
65
  - lib/pagy/extras/shared.rb
66
66
  - lib/pagy/extras/support.rb
67
67
  - lib/pagy/extras/trim.rb
68
+ - lib/pagy/extras/uikit.rb
68
69
  - lib/pagy/frontend.rb
69
70
  - lib/templates/bootstrap_nav.html.erb
70
71
  - lib/templates/bootstrap_nav.html.haml
@@ -78,6 +79,9 @@ files:
78
79
  - lib/templates/nav.html.erb
79
80
  - lib/templates/nav.html.haml
80
81
  - lib/templates/nav.html.slim
82
+ - lib/templates/uikit_nav.html.erb
83
+ - lib/templates/uikit_nav.html.haml
84
+ - lib/templates/uikit_nav.html.slim
81
85
  - pagy.gemspec
82
86
  homepage: https://github.com/ddnexus/pagy
83
87
  licenses: