Class: TinyAdmin::Views::Components::Pagination

Inherits:
BasicComponent
  • Object
show all
Defined in:
lib/tiny_admin/views/components/pagination.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from BasicComponent

#update_attributes

Instance Attribute Details

#currentObject

Returns the value of attribute current.



7
8
9
# File 'lib/tiny_admin/views/components/pagination.rb', line 7

def current
  @current
end

#pagesObject

Returns the value of attribute pages.



7
8
9
# File 'lib/tiny_admin/views/components/pagination.rb', line 7

def pages
  @pages
end

#query_stringObject

Returns the value of attribute query_string.



7
8
9
# File 'lib/tiny_admin/views/components/pagination.rb', line 7

def query_string
  @query_string
end

#total_countObject

Returns the value of attribute total_count.



7
8
9
# File 'lib/tiny_admin/views/components/pagination.rb', line 7

def total_count
  @total_count
end

Instance Method Details

#view_templateObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/tiny_admin/views/components/pagination.rb', line 9

def view_template
  div(class: 'container') {
    div(class: 'row') {
      div(class: 'col total-count') {
        "#{total_count} items"
      }
      div(class: 'col col-6 text-center pagination-div') {
        nav(class: 'd-inline-block', 'aria-label': 'Pagination') {
          ul(class: 'pagination') {
            if pages <= 10
              pages_range(1..pages)
            elsif current <= 4 || current >= pages - 3
              pages_range(1..(current <= 4 ? current + 2 : 4), with_dots: true)
              pages_range((current > pages - 4 ? current - 2 : pages - 2)..pages)
            else
              pages_range(1..1, with_dots: true)
              pages_range(current - 2..current + 2, with_dots: true)
              pages_range(pages..pages)
            end
          }
        }
      }
      div(class: 'col')
    }
  }
end