@@ -4,23 +4,31 @@ module TinyAdmin
44 module Views
55 module Components
66 class Pagination < BasicComponent
7- attr_accessor :current , :pages , :query_string
7+ attr_accessor :current , :pages , :query_string , :total_count
88
99 def template
10- div ( class : 'pagination-div' ) {
11- nav ( 'aria-label' => 'Pagination' ) {
12- ul ( class : 'pagination justify-content-center' ) {
13- if pages <= 10
14- pages_range ( 1 ..pages )
15- elsif current <= 4 || current >= pages - 3
16- pages_range ( 1 ..( current <= 4 ? current + 2 : 4 ) , with_dots : true )
17- pages_range ( ( current > pages - 4 ? current - 2 : pages - 2 ) ..pages )
18- else
19- pages_range ( 1 ..1 , with_dots : true )
20- pages_range ( current - 2 ..current + 2 , with_dots : true )
21- pages_range ( pages ..pages )
22- end
10+ div ( class : 'container' ) {
11+ div ( class : 'row' ) {
12+ div ( class : 'col total-count' ) {
13+ "#{ total_count } items"
2314 }
15+ div ( class : 'col col-6 text-center pagination-div' ) {
16+ nav ( class : 'd-inline-block' , 'aria-label' : 'Pagination' ) {
17+ ul ( class : 'pagination' ) {
18+ if pages <= 10
19+ pages_range ( 1 ..pages )
20+ elsif current <= 4 || current >= pages - 3
21+ pages_range ( 1 ..( current <= 4 ? current + 2 : 4 ) , with_dots : true )
22+ pages_range ( ( current > pages - 4 ? current - 2 : pages - 2 ) ..pages )
23+ else
24+ pages_range ( 1 ..1 , with_dots : true )
25+ pages_range ( current - 2 ..current + 2 , with_dots : true )
26+ pages_range ( pages ..pages )
27+ end
28+ }
29+ }
30+ }
31+ div ( class : 'col' )
2432 }
2533 }
2634 end
0 commit comments