pagy 4.5.1 → 4.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE.txt +1 -1
- data/lib/config/pagy.rb +1 -1
- data/lib/javascripts/pagy.js +5 -5
- data/lib/locales/bg.yml +2 -2
- data/lib/locales/bs.yml +2 -2
- data/lib/locales/ca.yml +2 -2
- data/lib/locales/cs.yml +2 -2
- data/lib/locales/da.yml +2 -2
- data/lib/locales/de.yml +2 -2
- data/lib/locales/en.yml +2 -2
- data/lib/locales/es.yml +2 -2
- data/lib/locales/fr.yml +2 -2
- data/lib/locales/hr.yml +2 -2
- data/lib/locales/id.yml +2 -2
- data/lib/locales/it.yml +2 -2
- data/lib/locales/ja.yml +2 -2
- data/lib/locales/km.yml +2 -2
- data/lib/locales/ko.yml +2 -2
- data/lib/locales/nb.yml +2 -2
- data/lib/locales/nl.yml +2 -2
- data/lib/locales/pl.yml +2 -2
- data/lib/locales/pt-BR.yml +2 -2
- data/lib/locales/pt.yml +2 -2
- data/lib/locales/ru.yml +2 -2
- data/lib/locales/sr.yml +2 -2
- data/lib/locales/sv-SE.yml +2 -2
- data/lib/locales/sv.yml +2 -2
- data/lib/locales/sw.yml +2 -2
- data/lib/locales/tr.yml +2 -2
- data/lib/locales/uk.yml +24 -0
- data/lib/locales/utils/p11n.rb +1 -0
- data/lib/locales/zh-CN.yml +2 -2
- data/lib/locales/zh-HK.yml +2 -2
- data/lib/locales/zh-TW.yml +3 -3
- data/lib/pagy.rb +2 -2
- data/lib/pagy/deprecation.rb +5 -5
- data/lib/pagy/exceptions.rb +3 -1
- data/lib/pagy/extras/bootstrap.rb +6 -7
- data/lib/pagy/extras/bulma.rb +7 -8
- data/lib/pagy/extras/foundation.rb +10 -11
- data/lib/pagy/extras/headers.rb +2 -2
- data/lib/pagy/extras/i18n.rb +3 -1
- data/lib/pagy/extras/items.rb +2 -2
- data/lib/pagy/extras/materialize.rb +9 -10
- data/lib/pagy/extras/navs.rb +5 -6
- data/lib/pagy/extras/overflow.rb +3 -1
- data/lib/pagy/extras/semantic.rb +7 -8
- data/lib/pagy/extras/shared.rb +4 -4
- data/lib/pagy/extras/standalone.rb +5 -1
- data/lib/pagy/extras/trim.rb +1 -1
- data/lib/pagy/extras/uikit.rb +11 -22
- data/lib/pagy/frontend.rb +4 -2
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c87ea4c3c1bf0dbfb6ae76db111177cda391165a844ff3302f8ee2722249ef2f
|
4
|
+
data.tar.gz: 26618714b6555f46cb9c140166b3407efb350bf8263cfcb8bdd4bde293265ca9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e0026cc9cb9051f43c3b89a3d68bde3fbb738ea21055117da0427e0dba9eae6c1d501dcd76d5dadd68890609fde321d33372fe8c949cf8c03c3388e4aa61317
|
7
|
+
data.tar.gz: 643f315b5de922a30f47f70465e7e13d7a5837835b6da90cf52cdf491eaec75f66450678094a3cbef0f38d65afd280ddafec0e0dc16dc52a479e324b896655dd
|
data/LICENSE.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2017-
|
3
|
+
Copyright (c) 2017-2021 Domizio Demichelis
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/lib/config/pagy.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Pagy initializer file (4.
|
3
|
+
# Pagy initializer file (4.8.1)
|
4
4
|
# Customize only what you really need and notice that Pagy works also without any of the following lines.
|
5
5
|
# Should you just cherry pick part of this file, please maintain the require-order of the extras
|
6
6
|
|
data/lib/javascripts/pagy.js
CHANGED
@@ -2,18 +2,18 @@
|
|
2
2
|
|
3
3
|
function Pagy(){}
|
4
4
|
|
5
|
-
Pagy.version = '4.
|
5
|
+
Pagy.version = '4.8.1'
|
6
6
|
|
7
7
|
Pagy.delay = 100
|
8
8
|
|
9
9
|
Pagy.init =
|
10
10
|
function(arg) {
|
11
11
|
var target = arg instanceof Event || arg === undefined ? document : arg,
|
12
|
-
|
13
|
-
for (var i = 0, len =
|
14
|
-
var args = JSON.parse(
|
12
|
+
elements = target.querySelectorAll('[data-pagy-json]')
|
13
|
+
for (var i = 0, len = elements.length; i < len; i++) {
|
14
|
+
var args = JSON.parse(elements[i].getAttribute('data-pagy-json')),
|
15
15
|
fname = args.shift()
|
16
|
-
args.unshift(
|
16
|
+
args.unshift(elements[i])
|
17
17
|
Pagy[fname].apply(null, args)
|
18
18
|
}
|
19
19
|
}
|
data/lib/locales/bg.yml
CHANGED
@@ -17,6 +17,6 @@ bg:
|
|
17
17
|
single_page: "Показани са <b>%{count}</b> %{item_name}"
|
18
18
|
multiple_pages: "Показани са %{item_name} <b>%{from}-%{to}</b> от <b>%{count}</b> общо"
|
19
19
|
|
20
|
-
combo_nav_js: "
|
20
|
+
combo_nav_js: "<label>Страница %{page_input} от %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "
|
22
|
+
items_selector_js: "<label>Покажи %{items_input} %{item_name} на страница</label>"
|
data/lib/locales/bs.yml
CHANGED
@@ -19,6 +19,6 @@ bs:
|
|
19
19
|
single_page: "Prikazuje se <b>%{count}</b> %{item_name}"
|
20
20
|
multiple_pages: "Prikaz %{item_name} <b>%{from}-%{to}</b> od <b>%{count}</b> ukupno"
|
21
21
|
|
22
|
-
combo_nav_js: "Stranica %{page_input} od %{pages}"
|
22
|
+
combo_nav_js: "<label>Stranica %{page_input} od %{pages}</label>"
|
23
23
|
|
24
|
-
items_selector_js: "Prikaži %{items_input} %{item_name} po stranici"
|
24
|
+
items_selector_js: "<label>Prikaži %{items_input} %{item_name} po stranici</label>"
|
data/lib/locales/ca.yml
CHANGED
@@ -17,6 +17,6 @@ ca:
|
|
17
17
|
single_page: "Mostrant <b>%{count}</b> %{item_name}"
|
18
18
|
multiple_pages: "Mostrant %{item_name} <b>%{from}-%{to}</b> de <b>%{count}</b> en total"
|
19
19
|
|
20
|
-
combo_nav_js: "Pàgina %{page_input} de %{pages}"
|
20
|
+
combo_nav_js: "<label>Pàgina %{page_input} de %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Mostra %{items_input} %{item_name} per pàgina"
|
22
|
+
items_selector_js: "<label>Mostra %{items_input} %{item_name} per pàgina</label>"
|
data/lib/locales/cs.yml
CHANGED
@@ -17,6 +17,6 @@ cs:
|
|
17
17
|
single_page: "Zobrazeno <b>%{count}</b> %{item_name}"
|
18
18
|
multiple_pages: "Zobrazeno %{item_name} <b>%{from}-%{to}</b> z <b>%{count}</b> celkem"
|
19
19
|
|
20
|
-
combo_nav_js: "Strana %{page_input} z %{pages}"
|
20
|
+
combo_nav_js: "<label>Strana %{page_input} z %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Zobrazit %{items_input} %{item_name} na stránce"
|
22
|
+
items_selector_js: "<label>Zobrazit %{items_input} %{item_name} na stránce</label>"
|
data/lib/locales/da.yml
CHANGED
@@ -17,6 +17,6 @@ da:
|
|
17
17
|
single_page: "Viser <b>%{count}</b> %{item_name}"
|
18
18
|
multiple_pages: "Viser %{item_name} <b>%{from}-%{to}</b> til <b>%{count}</b> totalt"
|
19
19
|
|
20
|
-
combo_nav_js: "Side %{page_input} of %{pages}"
|
20
|
+
combo_nav_js: "<label>Side %{page_input} of %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Antal %{items_input} %{item_name} per side"
|
22
|
+
items_selector_js: "<label>Antal %{items_input} %{item_name} per side</label>"
|
data/lib/locales/de.yml
CHANGED
@@ -17,6 +17,6 @@ de:
|
|
17
17
|
single_page: "Zeige <b>%{count}</b> %{item_name}"
|
18
18
|
multiple_pages: "Zeige %{item_name} <b>%{from}-%{to}</b> von <b>%{count}</b> gesamt"
|
19
19
|
|
20
|
-
combo_nav_js: "Seite %{page_input} von %{pages}"
|
20
|
+
combo_nav_js: "<label>Seite %{page_input} von %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Zeige %{items_input} %{item_name} pro Seite"
|
22
|
+
items_selector_js: "<label>Zeige %{items_input} %{item_name} pro Seite</label>"
|
data/lib/locales/en.yml
CHANGED
@@ -17,6 +17,6 @@ en:
|
|
17
17
|
single_page: "Displaying <b>%{count}</b> %{item_name}"
|
18
18
|
multiple_pages: "Displaying %{item_name} <b>%{from}-%{to}</b> of <b>%{count}</b> in total"
|
19
19
|
|
20
|
-
combo_nav_js: "Page %{page_input} of %{pages}"
|
20
|
+
combo_nav_js: "<label>Page %{page_input} of %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Show %{items_input} %{item_name} per page"
|
22
|
+
items_selector_js: "<label>Show %{items_input} %{item_name} per page</label>"
|
data/lib/locales/es.yml
CHANGED
@@ -17,6 +17,6 @@ es:
|
|
17
17
|
single_page: "Mostrando %{count} %{item_name}"
|
18
18
|
multiple_pages: "Mostrando %{item_name} %{from}-%{to} de %{count} en total"
|
19
19
|
|
20
|
-
combo_nav_js: "Página %{page_input} de %{pages}"
|
20
|
+
combo_nav_js: "<label>Página %{page_input} de %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Mostrar %{items_input} %{item_name} por página"
|
22
|
+
items_selector_js: "<label>Mostrar %{items_input} %{item_name} por página</label>"
|
data/lib/locales/fr.yml
CHANGED
@@ -17,6 +17,6 @@ fr:
|
|
17
17
|
single_page: "Affichage de <b>%{count}</b> %{item_name}"
|
18
18
|
multiple_pages: "Affichage des %{item_name} <b>%{from} à %{to}</b> sur <b>%{count}</b> au total"
|
19
19
|
|
20
|
-
combo_nav_js: "Page %{page_input} sur %{pages}"
|
20
|
+
combo_nav_js: "<label>Page %{page_input} sur %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Afficher %{items_input} %{item_name} par page"
|
22
|
+
items_selector_js: "<label>Afficher %{items_input} %{item_name} par page</label>"
|
data/lib/locales/hr.yml
CHANGED
@@ -19,6 +19,6 @@ hr:
|
|
19
19
|
single_page: "Prikazuje se <b>%{count}</b> %{item_name}"
|
20
20
|
multiple_pages: "Prikaz %{item_name} <b>%{from}-%{to}</b> od <b>%{count}</b> ukupno"
|
21
21
|
|
22
|
-
combo_nav_js: "Stranica %{page_input} od %{pages}"
|
22
|
+
combo_nav_js: "<label>Stranica %{page_input} od %{pages}</label>"
|
23
23
|
|
24
|
-
items_selector_js: "Prikaži %{items_input} %{item_name} po stranici"
|
24
|
+
items_selector_js: "<label>Prikaži %{items_input} %{item_name} po stranici</label>"
|
data/lib/locales/id.yml
CHANGED
@@ -15,6 +15,6 @@ id:
|
|
15
15
|
single_page: "Menampilkan <b>%{count}</b> %{item_name}"
|
16
16
|
multiple_pages: "Menampilkan %{item_name} <b>%{from}-%{to}</b> dari total <b>%{count}</b>"
|
17
17
|
|
18
|
-
combo_nav_js: "Halaman %{page_input} dari %{pages}"
|
18
|
+
combo_nav_js: "<label>Halaman %{page_input} dari %{pages}</label>"
|
19
19
|
|
20
|
-
items_selector_js: "Tampilkan %{items_input} %{item_name} per halaman"
|
20
|
+
items_selector_js: "<label>Tampilkan %{items_input} %{item_name} per halaman</label>"
|
data/lib/locales/it.yml
CHANGED
@@ -17,6 +17,6 @@ it:
|
|
17
17
|
single_page: "Visualizzazione di <b>%{count}</b> %{item_name}"
|
18
18
|
multiple_pages: "Visualizzazione %{item_name} <b>%{from}-%{to}</b> di <b>%{count}</b> in totale"
|
19
19
|
|
20
|
-
combo_nav_js: "Pagina %{page_input} di %{pages}"
|
20
|
+
combo_nav_js: "<label>Pagina %{page_input} di %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Mostra %{items_input} %{item_name} per pagina"
|
22
|
+
items_selector_js: "<label>Mostra %{items_input} %{item_name} per pagina</label>"
|
data/lib/locales/ja.yml
CHANGED
@@ -15,6 +15,6 @@ ja:
|
|
15
15
|
single_page: "<b>%{count}</b> 件の%{item_name}"
|
16
16
|
multiple_pages: "<b>%{count}</b> 件中 <b>%{from}-%{to}</b> 件目の%{item_name}を表示中"
|
17
17
|
|
18
|
-
combo_nav_js: "
|
18
|
+
combo_nav_js: "<label>%{page_input} / %{pages} ページ</label>"
|
19
19
|
|
20
|
-
items_selector_js: "
|
20
|
+
items_selector_js: "<label>%{items_input} 件ずつ表示</label>"
|
data/lib/locales/km.yml
CHANGED
@@ -14,6 +14,6 @@ km:
|
|
14
14
|
single_page: "បង្ហាញ <b>%{count}</b> %{item_name}"
|
15
15
|
multiple_pages: "បង្ហាញ %{item_name} <b>%{from}-%{to}</b> នៃ <b>%{count}</b> ជាចំនួនសរុប"
|
16
16
|
|
17
|
-
combo_nav_js: "
|
17
|
+
combo_nav_js: "<label>ទំព័រ %{page_input} នៃ %{pages}</label>"
|
18
18
|
|
19
|
-
items_selector_js: "
|
19
|
+
items_selector_js: "<label>បង្ហាញ %{items_input} %{item_name} ក្នុង ១ ទំព័រ</label>"
|
data/lib/locales/ko.yml
CHANGED
@@ -15,6 +15,6 @@ ko:
|
|
15
15
|
single_page: "<b>%{count}</b>개의 %{item_name} 표시됨"
|
16
16
|
multiple_pages: "총 <b>%{count}</b>개의 %{item_name} 중 <b>%{from}-%{to}</b>"
|
17
17
|
|
18
|
-
combo_nav_js: "
|
18
|
+
combo_nav_js: "<label>총 %{pages} 중 %{page_input} 페이지</label>"
|
19
19
|
|
20
|
-
items_selector_js: "
|
20
|
+
items_selector_js: "<label>페이지 당 %{items_input}개 표시%</label>"
|
data/lib/locales/nb.yml
CHANGED
@@ -17,6 +17,6 @@ nb:
|
|
17
17
|
single_page: "Viser <b>%{count}</b> %{item_name}"
|
18
18
|
multiple_pages: "Viser %{item_name} <b>%{from}-%{to}</b> av totalt <b>%{count}</b>"
|
19
19
|
|
20
|
-
combo_nav_js: "Side %{page_input} av %{pages}"
|
20
|
+
combo_nav_js: "<label>Side %{page_input} av %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Vis %{items_input} %{item_name} per side"
|
22
|
+
items_selector_js: "<label>Vis %{items_input} %{item_name} per side</label>"
|
data/lib/locales/nl.yml
CHANGED
@@ -17,6 +17,6 @@ nl:
|
|
17
17
|
single_page: "Toont <b>%{count}</b> %{item_name}"
|
18
18
|
multiple_pages: "Toont <b>%{from}-%{to}</b> %{item_name} van <b>%{count}</b> in totaal"
|
19
19
|
|
20
|
-
combo_nav_js: "Pagina %{page_input} van %{pages}"
|
20
|
+
combo_nav_js: "<label>Pagina %{page_input} van %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Toont %{items_input} %{item_name} per pagina"
|
22
|
+
items_selector_js: "<label>Toont %{items_input} %{item_name} per pagina</label>"
|
data/lib/locales/pl.yml
CHANGED
@@ -19,6 +19,6 @@ pl:
|
|
19
19
|
single_page: "Wyświetlono <b>%{count}</b> %{item_name}"
|
20
20
|
multiple_pages: "Wyświetlono %{item_name} <b>%{from}-%{to}</b> z wszystkich <b>%{count}</b>"
|
21
21
|
|
22
|
-
combo_nav_js: "Strona %{page_input} z %{pages}"
|
22
|
+
combo_nav_js: "<label>Strona %{page_input} z %{pages}</label>"
|
23
23
|
|
24
|
-
items_selector_js: "Pokaż %{items_input} %{item_name} na stronie"
|
24
|
+
items_selector_js: "<label>Pokaż %{items_input} %{item_name} na stronie</label>"
|
data/lib/locales/pt-BR.yml
CHANGED
@@ -17,6 +17,6 @@ pt-BR:
|
|
17
17
|
single_page: "Mostrando %{count} %{item_name}"
|
18
18
|
multiple_pages: "Mostrando %{item_name} %{from}-%{to} do total de %{count}"
|
19
19
|
|
20
|
-
combo_nav_js: "Página %{page_input} de %{pages}"
|
20
|
+
combo_nav_js: "<label>Página %{page_input} de %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Mostrar %{items_input} %{item_name} por página"
|
22
|
+
items_selector_js: "<label>Mostrar %{items_input} %{item_name} por página</label>"
|
data/lib/locales/pt.yml
CHANGED
@@ -17,6 +17,6 @@ pt:
|
|
17
17
|
single_page: "Mostrando %{count} %{item_name}"
|
18
18
|
multiple_pages: "Mostrando %{item_name} %{from}-%{to} de um total de %{count}"
|
19
19
|
|
20
|
-
combo_nav_js: "Página %{page_input} de %{pages}"
|
20
|
+
combo_nav_js: "<label>Página %{page_input} de %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Mostrar %{items_input} %{item_name} por página"
|
22
|
+
items_selector_js: "<label>Mostrar %{items_input} %{item_name} por página</label>"
|
data/lib/locales/ru.yml
CHANGED
@@ -19,6 +19,6 @@ ru:
|
|
19
19
|
single_page: "<b>%{count}</b> %{item_name}"
|
20
20
|
multiple_pages: "Всего <b>%{count}</b> %{item_name}, показаны с <b>%{from}</b> по <b>%{to}</b>"
|
21
21
|
|
22
|
-
combo_nav_js: "
|
22
|
+
combo_nav_js: "<label>Страница %{page_input} из %{pages}</label>"
|
23
23
|
|
24
|
-
items_selector_js: "
|
24
|
+
items_selector_js: "<label>Показать %{items_input} %{item_name} на странице</label>"
|
data/lib/locales/sr.yml
CHANGED
@@ -18,6 +18,6 @@ sr:
|
|
18
18
|
single_page: "Приказује се <b>%{count}</b> %{item_name}"
|
19
19
|
multiple_pages: "Приказ %{item_name} <b>%{from}-%{to}</b> од <b>%{count}</b> укупно"
|
20
20
|
|
21
|
-
combo_nav_js: "
|
21
|
+
combo_nav_js: "<label>Страниca %{page_input} од %{pages}</label>"
|
22
22
|
|
23
|
-
items_selector_js: "
|
23
|
+
items_selector_js: "<label>Прикажи %{items_input} %{item_name} по страниcи</label>"
|
data/lib/locales/sv-SE.yml
CHANGED
@@ -18,6 +18,6 @@ sv-SE:
|
|
18
18
|
single_page: "Visar <b>%{count}</b> %{item_name}"
|
19
19
|
multiple_pages: "Visar %{item_name} <b>%{from}-%{to}</b> av <b>%{count}</b> totalt"
|
20
20
|
|
21
|
-
combo_nav_js: "Sida %{page_input} av %{pages}"
|
21
|
+
combo_nav_js: "<label>Sida %{page_input} av %{pages}</label>"
|
22
22
|
|
23
|
-
items_selector_js: "Visa %{items_input} %{item_name} per sida"
|
23
|
+
items_selector_js: "<label>Visa %{items_input} %{item_name} per sida</label>"
|
data/lib/locales/sv.yml
CHANGED
@@ -18,6 +18,6 @@ sv:
|
|
18
18
|
single_page: "Visar <b>%{count}</b> %{item_name}"
|
19
19
|
multiple_pages: "Visar %{item_name} <b>%{from}-%{to}</b> av <b>%{count}</b> totalt"
|
20
20
|
|
21
|
-
combo_nav_js: "Sida %{page_input} av %{pages}"
|
21
|
+
combo_nav_js: "<label>Sida %{page_input} av %{pages}</label>"
|
22
22
|
|
23
|
-
items_selector_js: "Visa %{items_input} %{item_name} per sida"
|
23
|
+
items_selector_js: "<label>Visa %{items_input} %{item_name} per sida</label>"
|
data/lib/locales/sw.yml
CHANGED
@@ -17,6 +17,6 @@ sw:
|
|
17
17
|
single_page: "Inaonyesha %{item_name} <b>%{count}</b>"
|
18
18
|
multiple_pages: "Inaonyesha %{item_name} <b>%{from}-%{to}</b> ya <b>%{count}</b> kwa jumla"
|
19
19
|
|
20
|
-
combo_nav_js: "Kurasa %{page_input} ya %{pages}"
|
20
|
+
combo_nav_js: "<label>Kurasa %{page_input} ya %{pages}</label>"
|
21
21
|
|
22
|
-
items_selector_js: "Onyesha %{items_input} %{item_name} kwa kila ukurasa"
|
22
|
+
items_selector_js: "<label>Onyesha %{items_input} %{item_name} kwa kila ukurasa</label>"
|
data/lib/locales/tr.yml
CHANGED
@@ -15,6 +15,6 @@ tr:
|
|
15
15
|
single_page: "Toplam <b>%{count}</b> %{item_name} gösteriliyor"
|
16
16
|
multiple_pages: "<b>%{count}</b> %{item_name} içerisinden <b>%{from}-%{to}</b> kadarı gösteriliyor"
|
17
17
|
|
18
|
-
combo_nav_js: "Sayfa %{page_input} / %{pages}"
|
18
|
+
combo_nav_js: "<label>Sayfa %{page_input} / %{pages}</label>"
|
19
19
|
|
20
|
-
items_selector_js: "Sayfada %{items_input} %{item_name} göster"
|
20
|
+
items_selector_js: "<label>Sayfada %{items_input} %{item_name} göster</label>"
|
data/lib/locales/uk.yml
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# :east_slavic pluralization (see https://github.com/ddnexus/pagy/blob/master/lib/locales/utils/p11n.rb)
|
2
|
+
|
3
|
+
uk:
|
4
|
+
pagy:
|
5
|
+
|
6
|
+
item_name:
|
7
|
+
one: "запис"
|
8
|
+
few: "записів"
|
9
|
+
many: "записів"
|
10
|
+
other: "записів"
|
11
|
+
|
12
|
+
nav:
|
13
|
+
prev: "‹ Назад"
|
14
|
+
next: "Далі ›"
|
15
|
+
gap: "…"
|
16
|
+
|
17
|
+
info:
|
18
|
+
no_items: "Більше %{item_name} немає"
|
19
|
+
single_page: "<b>%{count}</b> %{item_name}"
|
20
|
+
multiple_pages: "Загалом <b>%{count}</b> %{item_name}, показані з <b>%{from}</b> по <b>%{to}</b>"
|
21
|
+
|
22
|
+
combo_nav_js: "<label>Сторінка %{page_input} з %{pages}</label>"
|
23
|
+
|
24
|
+
items_selector_js: "<label>Показати %{items_input} %{item_name} на сторінці</label>"
|
data/lib/locales/utils/p11n.rb
CHANGED
@@ -85,6 +85,7 @@ plurals = Hash.new(p11n[:one_other]).tap do |hash|
|
|
85
85
|
hash['sv'] = p11n[:one_two_other]
|
86
86
|
hash['sv-SE'] = p11n[:one_two_other]
|
87
87
|
hash['tr'] = p11n[:other]
|
88
|
+
hash['uk'] = p11n[:east_slavic]
|
88
89
|
hash['zh-CN'] = p11n[:other]
|
89
90
|
hash['zh-HK'] = p11n[:other]
|
90
91
|
hash['zh-TW'] = p11n[:other]
|
data/lib/locales/zh-CN.yml
CHANGED
@@ -15,6 +15,6 @@ zh-CN:
|
|
15
15
|
single_page: "显示<b>%{count}</b> 项%{item_name}"
|
16
16
|
multiple_pages: "共 <b>%{count}</b> 项%{item_name},显示 <b>%{from}-%{to}</b>"
|
17
17
|
|
18
|
-
combo_nav_js: "
|
18
|
+
combo_nav_js: "<label>第 %{page_input} / %{pages} 页</label>"
|
19
19
|
|
20
|
-
items_selector_js: "
|
20
|
+
items_selector_js: "<label>每页显示 %{items_input} 条%</label>"
|
data/lib/locales/zh-HK.yml
CHANGED
@@ -15,6 +15,6 @@ zh-HK:
|
|
15
15
|
single_page: "顯示 <b>%{count}</b> %{item_name}"
|
16
16
|
multiple_pages: "共 <b>%{count}</b> %{item_name},顯示 <b>%{from}-%{to}</b>"
|
17
17
|
|
18
|
-
combo_nav_js: "
|
18
|
+
combo_nav_js: "<label>第 %{page_input} / %{pages} 頁</label>"
|
19
19
|
|
20
|
-
items_selector_js: "
|
20
|
+
items_selector_js: "<label>每頁顯示 %{items_input} 記錄</label>"
|
data/lib/locales/zh-TW.yml
CHANGED
@@ -10,11 +10,11 @@ zh-TW:
|
|
10
10
|
next: "下一頁 ›"
|
11
11
|
gap: "…"
|
12
12
|
|
13
|
-
combo_nav_js: "第 %{page_input} / %{pages} 頁"
|
14
|
-
|
15
13
|
info:
|
16
14
|
no_items: "沒找到項"
|
17
15
|
single_page: "顯示 <b>%{count}</b> 項%{item_name}"
|
18
16
|
multiple_pages: "共 <b>%{count}</b> 項%{item_name},顯示 <b>%{from}-%{to}</b>"
|
19
17
|
|
20
|
-
|
18
|
+
combo_nav_js: "<label>第 %{page_input} / %{pages} 頁</label>"
|
19
|
+
|
20
|
+
items_selector_js: "<label>每頁顯示 %{items_input} 項%{item_name}</label>"
|
data/lib/pagy.rb
CHANGED
@@ -5,7 +5,7 @@ require 'pathname'
|
|
5
5
|
|
6
6
|
# main class
|
7
7
|
class Pagy
|
8
|
-
VERSION = '4.
|
8
|
+
VERSION = '4.8.1'
|
9
9
|
|
10
10
|
# Root pathname to get the path of Pagy files like templates or dictionaries
|
11
11
|
def self.root
|
@@ -23,7 +23,7 @@ class Pagy
|
|
23
23
|
# Merge and validate the options, do some simple arithmetic and set the instance variables
|
24
24
|
def initialize(vars)
|
25
25
|
@vars = VARS.merge( vars.delete_if{|k,v| VARS.key?(k) && (v.nil? || v == '') } )
|
26
|
-
@vars[:fragment] = deprecated_var(:anchor, @vars[:anchor], :fragment, @vars[:fragment]) if @vars[:anchor]
|
26
|
+
@vars[:fragment] = Pagy.deprecated_var(:anchor, @vars[:anchor], :fragment, @vars[:fragment]) if @vars[:anchor]
|
27
27
|
|
28
28
|
INSTANCE_VARS_MIN.each do |name,min|
|
29
29
|
raise VariableError.new(self), "expected :#{name} >= #{min}; got #{@vars[name].inspect}" \
|
data/lib/pagy/deprecation.rb
CHANGED
@@ -4,22 +4,22 @@ class Pagy
|
|
4
4
|
|
5
5
|
# deprecated variables
|
6
6
|
def deprecated_var(var, val, new_var, new_val)
|
7
|
-
value =
|
8
|
-
Warning.warn %([PAGY WARNING] deprecated use of
|
7
|
+
value = val || new_val
|
8
|
+
Warning.warn %([PAGY WARNING] deprecated use of '#{var}' var will not be supported in 5.0! Use '#{new_var}: #{value.inspect}' instead.)
|
9
9
|
value
|
10
10
|
end
|
11
11
|
|
12
12
|
# deprecated pagy_url_for argument order
|
13
13
|
def deprecated_order(pagy, page)
|
14
|
-
Warning.warn
|
14
|
+
Warning.warn %([PAGY WARNING] inverted use of pagy/page in pagy_url_for will not be supported in 5.0! Use pagy_url_for(pagy, page) instead.)
|
15
15
|
[page, pagy]
|
16
16
|
end
|
17
17
|
|
18
18
|
|
19
19
|
# deprecated posiitioal arguments
|
20
20
|
def deprecated_arg(arg, val, new_key, new_val)
|
21
|
-
value =
|
22
|
-
Warning.warn %([PAGY WARNING] deprecated use of positional
|
21
|
+
value = val || new_val # we use the new_val if present
|
22
|
+
Warning.warn %([PAGY WARNING] deprecated use of positional '#{arg}' arg will not be supported in 5.0! Use only the keyword arg '#{new_key}: #{value.inspect}' instead.)
|
23
23
|
value
|
24
24
|
end
|
25
25
|
|
data/lib/pagy/exceptions.rb
CHANGED
@@ -11,7 +11,7 @@ class Pagy
|
|
11
11
|
p_id = %( id="#{pagy_id}") if pagy_id
|
12
12
|
link = pagy_link_proc(pagy, link_extra: %(class="page-link" #{link_extra}))
|
13
13
|
|
14
|
-
html = +%(<nav#{p_id} class="pagy-bootstrap-nav"
|
14
|
+
html = +%(<nav#{p_id} class="pagy-bootstrap-nav" aria-label="pager"><ul class="pagination">)
|
15
15
|
html << pagy_bootstrap_prev_html(pagy, link)
|
16
16
|
pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
|
17
17
|
html << case item
|
@@ -35,8 +35,7 @@ class Pagy
|
|
35
35
|
'gap' => %(<li class="page-item gap disabled"><a href="#" class="page-link">#{pagy_t 'pagy.nav.gap'}</a></li>),
|
36
36
|
'after' => %(#{pagy_bootstrap_next_html pagy, link}</ul>) }
|
37
37
|
|
38
|
-
|
39
|
-
html << pagy_json_tag(pagy, :nav, tags, pagy.sequels(steps))
|
38
|
+
%(<nav#{p_id} class="pagy-njs pagy-bootstrap-nav-js" aria-label="pager" #{pagy_json_attr(pagy, :nav, tags, pagy.sequels(steps))}></nav>)
|
40
39
|
end
|
41
40
|
|
42
41
|
# Javascript combo pagination for bootstrap: it returns a nav and a JSON tag used by the Pagy.combo_nav javascript
|
@@ -48,7 +47,9 @@ class Pagy
|
|
48
47
|
p_pages = pagy.pages
|
49
48
|
input = %(<input type="number" min="1" max="#{p_pages}" value="#{p_page}" class="text-primary" style="padding: 0; border: none; text-align: center; width: #{p_pages.to_s.length+1}rem;">)
|
50
49
|
|
51
|
-
%(<nav#{p_id} class="pagy-bootstrap-combo-nav-js pagination"
|
50
|
+
%(<nav#{p_id} class="pagy-bootstrap-combo-nav-js pagination" aria-label="pager"><div class="btn-group" role="group" #{
|
51
|
+
pagy_json_attr pagy, :combo_nav, p_page, pagy_marked_link(link)
|
52
|
+
}>#{
|
52
53
|
if (p_prev = pagy.prev)
|
53
54
|
link.call p_prev, pagy_t('pagy.nav.prev'), 'aria-label="previous" class="prev btn btn-primary"'
|
54
55
|
else
|
@@ -60,9 +61,7 @@ class Pagy
|
|
60
61
|
else
|
61
62
|
%(<a class="next btn btn-primary disabled" href="#">#{pagy_t 'pagy.nav.next' }</a>)
|
62
63
|
end
|
63
|
-
}</div></nav
|
64
|
-
pagy_json_tag pagy, :combo_nav, p_page, pagy_marked_link(link)
|
65
|
-
})
|
64
|
+
}</div></nav>)
|
66
65
|
end
|
67
66
|
|
68
67
|
private
|
data/lib/pagy/extras/bulma.rb
CHANGED
@@ -11,7 +11,7 @@ class Pagy
|
|
11
11
|
p_id = %( id="#{pagy_id}") if pagy_id
|
12
12
|
link = pagy_link_proc(pagy, link_extra: link_extra)
|
13
13
|
|
14
|
-
html = +%(<nav#{p_id} class="pagy-bulma-nav pagination is-centered"
|
14
|
+
html = +%(<nav#{p_id} class="pagy-bulma-nav pagination is-centered" aria-label="pagination">)
|
15
15
|
html << pagy_bulma_prev_next_html(pagy, link)
|
16
16
|
html << %(<ul class="pagination-list">)
|
17
17
|
pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
|
@@ -34,8 +34,7 @@ class Pagy
|
|
34
34
|
'gap' => %(<li><span class="pagination-ellipsis">#{pagy_t 'pagy.nav.gap' }</span></li>),
|
35
35
|
'after' => '</ul>' }
|
36
36
|
|
37
|
-
|
38
|
-
html << pagy_json_tag(pagy, :nav, tags, pagy.sequels(steps))
|
37
|
+
%(<nav#{p_id} class="pagy-njs pagy-bulma-nav-js pagination is-centered" aria-label="pagination" #{pagy_json_attr(pagy, :nav, tags, pagy.sequels(steps))}></nav>)
|
39
38
|
end
|
40
39
|
|
41
40
|
# Javascript combo pagination for Bulma: it returns a nav and a JSON tag used by the Pagy.combo_nav javascript
|
@@ -47,7 +46,9 @@ class Pagy
|
|
47
46
|
p_pages = pagy.pages
|
48
47
|
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; margin:0 0.3rem;">)
|
49
48
|
|
50
|
-
%(<nav#{p_id} class="pagy-bulma-combo-nav-js"
|
49
|
+
%(<nav#{p_id} class="pagy-bulma-combo-nav-js" aria-label="pagination"><div class="field is-grouped is-grouped-centered" role="group" #{
|
50
|
+
pagy_json_attr pagy, :combo_nav, p_page, pagy_marked_link(link)
|
51
|
+
}>#{
|
51
52
|
if (p_prev = pagy.prev)
|
52
53
|
%(<p class="control">#{link.call p_prev, pagy_t('pagy.nav.prev'), 'class="button" aria-label="previous page"'}</p>)
|
53
54
|
else
|
@@ -59,15 +60,13 @@ class Pagy
|
|
59
60
|
else
|
60
61
|
%(<p class="control"><a class="button" disabled>#{pagy_t 'pagy.nav.next'}</a></p>)
|
61
62
|
end
|
62
|
-
}</div></nav
|
63
|
-
pagy_json_tag pagy, :combo_nav, p_page, pagy_marked_link(link)
|
64
|
-
})
|
63
|
+
}</div></nav>)
|
65
64
|
end
|
66
65
|
|
67
66
|
private
|
68
67
|
|
69
68
|
def pagy_bulma_prev_next_html(pagy, link)
|
70
|
-
html = if (p_prev = pagy.prev)
|
69
|
+
html = +if (p_prev = pagy.prev)
|
71
70
|
link.call p_prev, pagy_t('pagy.nav.prev'), 'class="pagination-previous" aria-label="previous page"'
|
72
71
|
else
|
73
72
|
%(<a class="pagination-previous" disabled>#{pagy_t 'pagy.nav.prev'}</a>)
|
@@ -11,7 +11,7 @@ class Pagy
|
|
11
11
|
p_id = %( id="#{pagy_id}") if pagy_id
|
12
12
|
link = pagy_link_proc(pagy, link_extra: link_extra)
|
13
13
|
|
14
|
-
html = +%(<nav#{p_id} class="pagy-foundation-nav"
|
14
|
+
html = +%(<nav#{p_id} class="pagy-foundation-nav" aria-label="Pagination"><ul class="pagination">)
|
15
15
|
html << pagy_foundation_prev_html(pagy, link)
|
16
16
|
pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
|
17
17
|
html << case item
|
@@ -35,8 +35,7 @@ class Pagy
|
|
35
35
|
'gap' => %(<li class="ellipsis gap" aria-hidden="true"></li>),
|
36
36
|
'after' => %(#{pagy_foundation_next_html pagy, link}</ul>) }
|
37
37
|
|
38
|
-
|
39
|
-
html << pagy_json_tag(pagy, :nav, tags, pagy.sequels(steps))
|
38
|
+
%(<nav#{p_id} class="pagy-njs pagy-foundation-nav-js" aria-label="Pagination" #{pagy_json_attr(pagy, :nav, tags, pagy.sequels(steps))}></nav>)
|
40
39
|
end
|
41
40
|
|
42
41
|
# Javascript combo pagination for Foundation: it returns a nav and a JSON tag used by the Pagy.combo_nav javascript
|
@@ -48,21 +47,21 @@ class Pagy
|
|
48
47
|
p_pages = pagy.pages
|
49
48
|
input = %(<input class="input-group-field cell shrink" type="number" min="1" max="#{p_pages}" value="#{p_page}" style="width: #{p_pages.to_s.length+1}rem; padding: 0 0.3rem; margin: 0 0.3rem;">)
|
50
49
|
|
51
|
-
%(<nav#{p_id} class="pagy-foundation-combo-nav-js"
|
50
|
+
%(<nav#{p_id} class="pagy-foundation-combo-nav-js" aria-label="Pagination"><div class="input-group" #{
|
51
|
+
pagy_json_attr pagy, :combo_nav, p_page, pagy_marked_link(link)
|
52
|
+
}>#{
|
52
53
|
if (p_prev = pagy.prev)
|
53
|
-
link.call p_prev, pagy_t('pagy.nav.prev'), 'style="margin-bottom:
|
54
|
+
link.call p_prev, pagy_t('pagy.nav.prev'), 'style="margin-bottom: 0" aria-label="previous" class="prev button primary"'
|
54
55
|
else
|
55
|
-
%(<a style="margin-bottom:
|
56
|
+
%(<a style="margin-bottom: 0" class="prev button primary disabled" href="#">#{pagy_t 'pagy.nav.prev'}</a>)
|
56
57
|
end
|
57
58
|
}<span class="input-group-label">#{pagy_t 'pagy.combo_nav_js', page_input: input, count: p_page, pages: p_pages}</span>#{
|
58
59
|
if (p_next = pagy.next)
|
59
|
-
link.call p_next, pagy_t('pagy.nav.next'), 'style="margin-bottom:
|
60
|
+
link.call p_next, pagy_t('pagy.nav.next'), 'style="margin-bottom: 0" aria-label="next" class="next button primary"'
|
60
61
|
else
|
61
|
-
%(<a style="margin-bottom:
|
62
|
+
%(<a style="margin-bottom: 0" class="next button primary disabled" href="#">#{pagy_t 'pagy.nav.next'}</a>)
|
62
63
|
end
|
63
|
-
}</div></nav
|
64
|
-
pagy_json_tag pagy, :combo_nav, p_page, pagy_marked_link(link)
|
65
|
-
})
|
64
|
+
}</div></nav>)
|
66
65
|
end
|
67
66
|
|
68
67
|
private
|
data/lib/pagy/extras/headers.rb
CHANGED
@@ -25,10 +25,10 @@ class Pagy
|
|
25
25
|
rels = { 'first' => 1, 'prev' => pagy.prev, 'next' => pagy.next }
|
26
26
|
rels['last'] = pagy.last unless countless
|
27
27
|
url_str = pagy_url_for(pagy, PAGE_PLACEHOLDER, absolute: true)
|
28
|
-
hash = { 'Link' => rels.
|
28
|
+
hash = { 'Link' => rels.map do |rel, num| # filter_map if ruby >=2.7
|
29
29
|
next unless num
|
30
30
|
[ rel, url_str.sub(PAGE_PLACEHOLDER, num.to_s) ]
|
31
|
-
end.to_h }
|
31
|
+
end.compact.to_h }
|
32
32
|
headers = pagy.vars[:headers]
|
33
33
|
hash[headers[:page]] = pagy.page.to_s if headers[:page]
|
34
34
|
hash[headers[:items]] = pagy.vars[:items].to_s if headers[:items]
|
data/lib/pagy/extras/i18n.rb
CHANGED
data/lib/pagy/extras/items.rb
CHANGED
@@ -40,12 +40,12 @@ class Pagy
|
|
40
40
|
link = pagy_marked_link(pagy_link_proc(pagy, link_extra: link_extra))
|
41
41
|
p_vars[:items] = p_items # restore the items
|
42
42
|
|
43
|
-
html =
|
43
|
+
html = +%(<span#{p_id} class="pagy-items-selector-js" #{pagy_json_attr pagy, :items_selector, pagy.from, link}>)
|
44
44
|
input = %(<input type="number" min="1" max="#{p_vars[:max_items]}" value="#{p_items}" style="padding: 0; text-align: center; width: #{p_items.to_s.length+1}rem;">)
|
45
45
|
html << pagy_t('pagy.items_selector_js', item_name: item_name || pagy_t(i18n_key || p_vars[:i18n_key], count: p_items),
|
46
46
|
items_input: input,
|
47
47
|
count: p_items)
|
48
|
-
html << %(</span
|
48
|
+
html << %(</span>)
|
49
49
|
end
|
50
50
|
|
51
51
|
end
|
@@ -36,8 +36,7 @@ class Pagy
|
|
36
36
|
'gap' => %(<li class="gap disabled"><a href="#">#{pagy_t 'pagy.nav.gap'}</a></li>),
|
37
37
|
'after' => %(#{pagy_materialize_next_html pagy, link}</ul>) }
|
38
38
|
|
39
|
-
|
40
|
-
html << pagy_json_tag(pagy, :nav, tags, pagy.sequels(steps))
|
39
|
+
%(<div#{p_id} class="pagy-njs pagy-materialize-nav-js" role="navigation" aria-label="pager" #{pagy_json_attr(pagy, :nav, tags, pagy.sequels(steps))}></div>)
|
41
40
|
end
|
42
41
|
|
43
42
|
# Javascript combo pagination for materialize: it returns a nav and a JSON tag used by the Pagy.combo_nav javascript
|
@@ -47,18 +46,18 @@ class Pagy
|
|
47
46
|
link = pagy_link_proc(pagy, link_extra: link_extra)
|
48
47
|
p_page = pagy.page
|
49
48
|
p_pages = pagy.pages
|
50
|
-
style = ' style="vertical-align: middle
|
51
|
-
input = %(<input type="number" class="browser-default" min="1" max="#{p_pages}" value="#{p_page}" style="
|
49
|
+
style = ' style="vertical-align: middle"'
|
50
|
+
input = %(<input type="number" class="browser-default" min="1" max="#{p_pages}" value="#{p_page}" style="text-align: center; width: #{p_pages.to_s.length+1}rem;">)
|
52
51
|
|
53
|
-
%(<
|
52
|
+
%(<ul#{p_id} class="pagy-materialize-combo-nav-js pagination chip" role="navigation" aria-label="pager" style="padding-right: 0" #{
|
53
|
+
pagy_json_attr pagy, :combo_nav, p_page, pagy_marked_link(link)
|
54
|
+
}>#{
|
54
55
|
pagy_materialize_prev_html pagy, link, style
|
55
|
-
}<
|
56
|
+
}<li class="pagy-combo-input">#{
|
56
57
|
pagy_t 'pagy.combo_nav_js', page_input: input, count: p_page, pages: p_pages
|
57
|
-
}</
|
58
|
+
}</li>#{
|
58
59
|
pagy_materialize_next_html pagy, link, style
|
59
|
-
}</ul
|
60
|
-
pagy_json_tag pagy, :combo_nav, p_page, pagy_marked_link(link)
|
61
|
-
})
|
60
|
+
}</ul>)
|
62
61
|
end
|
63
62
|
|
64
63
|
private
|
data/lib/pagy/extras/navs.rb
CHANGED
@@ -17,8 +17,7 @@ class Pagy
|
|
17
17
|
'gap' => %(<span class="page gap">#{pagy_t 'pagy.nav.gap'}</span> ),
|
18
18
|
'after' => pagy_nav_next_html(pagy, link) }
|
19
19
|
|
20
|
-
|
21
|
-
html << pagy_json_tag(pagy, :nav, tags, pagy.sequels(steps))
|
20
|
+
%(<nav#{p_id} class="pagy-njs pagy-nav-js pagination" aria-label="pager" #{pagy_json_attr(pagy, :nav, tags, pagy.sequels(steps))}></nav>)
|
22
21
|
end
|
23
22
|
|
24
23
|
# Javascript combo pagination: it returns a nav and a JSON tag used by the Pagy.combo_nav javascript
|
@@ -30,15 +29,15 @@ class Pagy
|
|
30
29
|
p_pages = pagy.pages
|
31
30
|
input = %(<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;">)
|
32
31
|
|
33
|
-
%(<nav#{p_id} class="pagy-combo-nav-js pagination"
|
32
|
+
%(<nav#{p_id} class="pagy-combo-nav-js pagination" aria-label="pager" #{
|
33
|
+
pagy_json_attr pagy, :combo_nav, p_page, pagy_marked_link(link)
|
34
|
+
}>#{
|
34
35
|
pagy_nav_prev_html pagy, link
|
35
36
|
}<span class="pagy-combo-input" style="margin: 0 0.6rem;">#{
|
36
37
|
pagy_t 'pagy.combo_nav_js', page_input: input, count: p_page, pages: p_pages
|
37
38
|
}</span> #{
|
38
39
|
pagy_nav_next_html pagy, link
|
39
|
-
}</nav
|
40
|
-
pagy_json_tag pagy, :combo_nav, p_page, pagy_marked_link(link)
|
41
|
-
})
|
40
|
+
}</nav>)
|
42
41
|
end
|
43
42
|
|
44
43
|
private
|
data/lib/pagy/extras/overflow.rb
CHANGED
data/lib/pagy/extras/semantic.rb
CHANGED
@@ -9,9 +9,9 @@ class Pagy
|
|
9
9
|
# Pagination for semantic: it returns the html with the series of links to the pages
|
10
10
|
def pagy_semantic_nav(pagy, pagy_id: nil, link_extra: '')
|
11
11
|
p_id = %( id="#{pagy_id}") if pagy_id
|
12
|
-
link = pagy_link_proc(pagy, link_extra: %(class="item" #{link_extra}
|
12
|
+
link = pagy_link_proc(pagy, link_extra: %(class="item" #{link_extra}))
|
13
13
|
|
14
|
-
html = +%(<div#{p_id} class="pagy-semantic-nav ui pagination menu"
|
14
|
+
html = +%(<div#{p_id} class="pagy-semantic-nav ui pagination menu">)
|
15
15
|
html << pagy_semantic_prev_html(pagy, link)
|
16
16
|
pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
|
17
17
|
html << case item
|
@@ -35,8 +35,7 @@ class Pagy
|
|
35
35
|
'gap' => %(<div class="disabled item">#{pagy_t('pagy.nav.gap')}</div>),
|
36
36
|
'after' => pagy_semantic_next_html(pagy, link) }
|
37
37
|
|
38
|
-
|
39
|
-
html << pagy_json_tag(pagy, :nav, tags, pagy.sequels(steps))
|
38
|
+
%(<div#{p_id} class="pagy-njs pagy-semantic-nav-js ui pagination menu" role="navigation" #{pagy_json_attr(pagy, :nav, tags, pagy.sequels(steps))}></div>)
|
40
39
|
end
|
41
40
|
|
42
41
|
# Combo pagination for semantic: it returns a nav and a JSON tag used by the Pagy.combo_nav javascript
|
@@ -48,15 +47,15 @@ class Pagy
|
|
48
47
|
p_pages = pagy.pages
|
49
48
|
input = %(<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; margin: 0 0.3rem">)
|
50
49
|
|
51
|
-
%(<div#{p_id} class="pagy-semantic-combo-nav-js ui compact menu" role="navigation"
|
50
|
+
%(<div#{p_id} class="pagy-semantic-combo-nav-js ui compact menu" role="navigation" #{
|
51
|
+
pagy_json_attr pagy, :combo_nav, p_page, pagy_marked_link(link)
|
52
|
+
}>#{
|
52
53
|
pagy_semantic_prev_html pagy, link
|
53
54
|
}<div class="pagy-combo-input item">#{
|
54
55
|
pagy_t 'pagy.combo_nav_js', page_input: input, count: p_page, pages: p_pages
|
55
56
|
}</div> #{
|
56
57
|
pagy_semantic_next_html pagy, link
|
57
|
-
}</div
|
58
|
-
pagy_json_tag pagy, :combo_nav, p_page, pagy_marked_link(link)
|
59
|
-
})
|
58
|
+
}</div>)
|
60
59
|
end
|
61
60
|
|
62
61
|
private
|
data/lib/pagy/extras/shared.rb
CHANGED
@@ -29,16 +29,16 @@ class Pagy
|
|
29
29
|
|
30
30
|
if defined?(Oj)
|
31
31
|
# it returns a script tag with the JSON-serialized args generated with the faster oj gem
|
32
|
-
def
|
32
|
+
def pagy_json_attr(pagy, *args)
|
33
33
|
args << pagy.vars[:page_param] if pagy.vars[:enable_trim_extra]
|
34
|
-
%(
|
34
|
+
%(data-pagy-json="#{Oj.dump(args, mode: :strict).gsub('"', '"')}")
|
35
35
|
end
|
36
36
|
else
|
37
37
|
require 'json'
|
38
38
|
# it returns a script tag with the JSON-serialized args generated with the slower to_json
|
39
|
-
def
|
39
|
+
def pagy_json_attr(pagy, *args)
|
40
40
|
args << pagy.vars[:page_param] if pagy.vars[:enable_trim_extra]
|
41
|
-
%(
|
41
|
+
%(data-pagy-json="#{args.to_json.gsub('"', '"')}")
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
@@ -46,7 +46,11 @@ class Pagy
|
|
46
46
|
"#{url_string}#{query_string}#{p_vars[:fragment]}"
|
47
47
|
end
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
|
+
# single line in order to avoid complicating simplecov already tested with other GitHub Actions
|
51
|
+
Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0') \
|
52
|
+
&& Helpers.prepend(UseStandaloneExtra) \
|
53
|
+
|| ( Frontend.prepend(UseStandaloneExtra); Backend.prepend(UseStandaloneExtra) if defined?(Pagy::Backend::METADATA) ) # rubocop:disable Style/Semicolon
|
50
54
|
|
51
55
|
# defines a dummy #params method if not already defined in the including module
|
52
56
|
module Backend
|
data/lib/pagy/extras/trim.rb
CHANGED
@@ -12,7 +12,7 @@ class Pagy
|
|
12
12
|
link_proc = super(pagy, link_extra: link_extra)
|
13
13
|
return link_proc unless pagy.vars[:enable_trim_extra]
|
14
14
|
lambda do |num, text=num, extra=''|
|
15
|
-
link = link_proc.call(num, text, extra)
|
15
|
+
link = +link_proc.call(num, text, extra)
|
16
16
|
return link unless num == 1
|
17
17
|
link.sub!(/[?&]#{pagy.vars[:page_param]}=1\b(?!&)|\b#{pagy.vars[:page_param]}=1&/, '')
|
18
18
|
end
|
data/lib/pagy/extras/uikit.rb
CHANGED
@@ -11,7 +11,7 @@ class Pagy
|
|
11
11
|
p_id = %( id="#{pagy_id}") if pagy_id
|
12
12
|
link = pagy_link_proc(pagy, link_extra: link_extra)
|
13
13
|
|
14
|
-
html =
|
14
|
+
html = +%(<ul#{p_id} class="pagy-uikit-nav uk-pagination uk-flex-center">#{pagy_uikit_prev_html pagy, link})
|
15
15
|
pagy.series.each do |item|
|
16
16
|
html << case item
|
17
17
|
when Integer then %(<li>#{link.call item}</li>)
|
@@ -34,8 +34,7 @@ class Pagy
|
|
34
34
|
'gap' => %(<li class="uk-disabled"><span>#{pagy_t 'pagy.nav.gap'}</span></li>),
|
35
35
|
'after' => pagy_uikit_next_html(pagy, link) }
|
36
36
|
|
37
|
-
|
38
|
-
html << pagy_json_tag(pagy, :nav, tags, pagy.sequels(steps))
|
37
|
+
%(<ul#{p_id} class="pagy-njs pagy-uikit-nav-js uk-pagination uk-flex-center" #{pagy_json_attr(pagy, :nav, tags, pagy.sequels(steps))}></ul>)
|
39
38
|
end
|
40
39
|
|
41
40
|
# Javascript combo pagination for uikit: it returns a nav and a JSON tag used by the Pagy.combo_nav javascript
|
@@ -45,29 +44,19 @@ class Pagy
|
|
45
44
|
link = pagy_link_proc(pagy, link_extra: link_extra)
|
46
45
|
p_page = pagy.page
|
47
46
|
p_pages = pagy.pages
|
48
|
-
input = %(<input type="number" min="1" max="#{p_pages}" value="#{p_page}"
|
47
|
+
input = %(<input type="number" min="1" max="#{p_pages}" value="#{p_page}" style="text-align: center; width: #{p_pages.to_s.length+1}rem;">)
|
49
48
|
|
50
|
-
%(<
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
end
|
56
|
-
}<div class="uk-text-middle uk-margin-left uk-margin-right">#{
|
49
|
+
%(<ul#{p_id} class="pagy-uikit-combo-nav-js uk-button-group uk-pagination uk-flex-center" #{
|
50
|
+
pagy_json_attr pagy, :combo_nav, p_page, pagy_marked_link(link)
|
51
|
+
}>#{
|
52
|
+
pagy_uikit_prev_html pagy, link
|
53
|
+
}<li>#{
|
57
54
|
pagy_t 'pagy.combo_nav_js', page_input: input, count: p_page, pages: p_pages
|
58
|
-
}</
|
59
|
-
|
60
|
-
|
61
|
-
else
|
62
|
-
%(<button class="uk-button uk-button-default" disabled>#{pagy_t 'pagy.nav.next'}</button>)
|
63
|
-
end
|
64
|
-
}</div>#{
|
65
|
-
pagy_json_tag pagy, :combo_nav, p_page, pagy_marked_link(link)
|
66
|
-
})
|
55
|
+
}</li>#{
|
56
|
+
pagy_uikit_next_html pagy, link
|
57
|
+
}</ul>)
|
67
58
|
end
|
68
59
|
|
69
|
-
|
70
|
-
|
71
60
|
private
|
72
61
|
|
73
62
|
def pagy_uikit_prev_html(pagy, link)
|
data/lib/pagy/frontend.rb
CHANGED
@@ -25,7 +25,9 @@ class Pagy
|
|
25
25
|
end
|
26
26
|
|
27
27
|
# Sub-method called only by #pagy_url_for: here for easy customization of params by overriding
|
28
|
-
def pagy_get_params(params)
|
28
|
+
def pagy_get_params(params)
|
29
|
+
params
|
30
|
+
end
|
29
31
|
end
|
30
32
|
|
31
33
|
# All the code here has been optimized for performance: it may not look very pretty
|
@@ -41,7 +43,7 @@ class Pagy
|
|
41
43
|
p_prev = pagy.prev
|
42
44
|
p_next = pagy.next
|
43
45
|
|
44
|
-
html = +%(<nav#{p_id} class="pagy-nav pagination"
|
46
|
+
html = +%(<nav#{p_id} class="pagy-nav pagination" aria-label="pager">)
|
45
47
|
html << if p_prev
|
46
48
|
%(<span class="page prev">#{link.call p_prev, pagy_t('pagy.nav.prev'), 'aria-label="previous"'}</span> )
|
47
49
|
else
|
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: 4.
|
4
|
+
version: 4.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Domizio Demichelis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-14 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,
|
@@ -48,6 +48,7 @@ files:
|
|
48
48
|
- lib/locales/sv.yml
|
49
49
|
- lib/locales/sw.yml
|
50
50
|
- lib/locales/tr.yml
|
51
|
+
- lib/locales/uk.yml
|
51
52
|
- lib/locales/utils/i18n.rb
|
52
53
|
- lib/locales/utils/loader.rb
|
53
54
|
- lib/locales/utils/p11n.rb
|
@@ -109,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
109
110
|
requirements:
|
110
111
|
- - ">="
|
111
112
|
- !ruby/object:Gem::Version
|
112
|
-
version: '
|
113
|
+
version: '2.5'
|
113
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
115
|
requirements:
|
115
116
|
- - ">="
|