Class: PaginatedTable::RendersTable
- Inherits:
-
Object
- Object
- PaginatedTable::RendersTable
- Defined in:
- lib/paginated_table/view_helpers.rb
Instance Method Summary collapse
-
#initialize(view, description, data_page, link_renderer) ⇒ RendersTable
constructor
A new instance of RendersTable.
- #render ⇒ Object
- #render_pagination_area ⇒ Object
- #render_pagination_info ⇒ Object
- #render_pagination_links ⇒ Object
- #render_table ⇒ Object
- #render_table_body ⇒ Object
- #render_table_body_cell(datum, column) ⇒ Object
- #render_table_body_row(datum) ⇒ Object
- #render_table_header ⇒ Object
- #render_table_header_column(column) ⇒ Object
- #render_table_header_column_content(column) ⇒ Object
- #render_table_header_row ⇒ Object
Constructor Details
#initialize(view, description, data_page, link_renderer) ⇒ RendersTable
Returns a new instance of RendersTable.
63 64 65 66 67 68 |
# File 'lib/paginated_table/view_helpers.rb', line 63 def initialize(view, description, data_page, link_renderer) @view = view @description = description @data_page = data_page @link_renderer = link_renderer end |
Instance Method Details
#render ⇒ Object
70 71 72 73 74 |
# File 'lib/paginated_table/view_helpers.rb', line 70 def render pagination_area = render_pagination_area content = pagination_area + render_table + pagination_area @view.content_tag('div', content, :class => 'paginated_table') end |
#render_pagination_area ⇒ Object
76 77 78 79 |
# File 'lib/paginated_table/view_helpers.rb', line 76 def render_pagination_area content = render_pagination_info + render_pagination_links @view.content_tag('div', content, :class => 'header') end |
#render_pagination_info ⇒ Object
81 82 83 84 |
# File 'lib/paginated_table/view_helpers.rb', line 81 def render_pagination_info content = @view.page_entries_info(@data_page.data) @view.content_tag('div', content, :class => 'info') end |
#render_pagination_links ⇒ Object
86 87 88 89 |
# File 'lib/paginated_table/view_helpers.rb', line 86 def render_pagination_links content = @view.will_paginate(@data_page.data, :renderer => @link_renderer) @view.content_tag('div', content, :class => 'links') end |
#render_table ⇒ Object
91 92 93 94 |
# File 'lib/paginated_table/view_helpers.rb', line 91 def render_table content = render_table_header + render_table_body @view.content_tag('table', content, :class => 'paginated') end |
#render_table_body ⇒ Object
129 130 131 132 133 134 |
# File 'lib/paginated_table/view_helpers.rb', line 129 def render_table_body content = @data_page.data.map { |datum| render_table_body_row(datum) }.reduce(&:+) @view.content_tag('tbody', content) end |
#render_table_body_cell(datum, column) ⇒ Object
143 144 145 |
# File 'lib/paginated_table/view_helpers.rb', line 143 def render_table_body_cell(datum, column) @view.content_tag('td', column.render_cell(datum), column.html_attributes) end |
#render_table_body_row(datum) ⇒ Object
136 137 138 139 140 141 |
# File 'lib/paginated_table/view_helpers.rb', line 136 def render_table_body_row(datum) content = @description.columns.map { |column| render_table_body_cell(datum, column) }.reduce(&:+) @view.content_tag('tr', content) end |
#render_table_header ⇒ Object
96 97 98 |
# File 'lib/paginated_table/view_helpers.rb', line 96 def render_table_header @view.content_tag('thead', render_table_header_row) end |
#render_table_header_column(column) ⇒ Object
107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/paginated_table/view_helpers.rb', line 107 def render_table_header_column(column) css = [] if column.sortable? css << 'sortable' end if @data_page.page.sort_column == column.name.to_s css << "sorted_#{@data_page.page.sort_direction}" end attributes = {} attributes[:class] = css.join(' ') unless css.empty? @view.content_tag('th', render_table_header_column_content(column), attributes) end |
#render_table_header_column_content(column) ⇒ Object
120 121 122 123 124 125 126 127 |
# File 'lib/paginated_table/view_helpers.rb', line 120 def render_table_header_column_content(column) text = column.render_header if column.sortable? @link_renderer.sort_link(text, column.name.to_s) else text end end |
#render_table_header_row ⇒ Object
100 101 102 103 104 105 |
# File 'lib/paginated_table/view_helpers.rb', line 100 def render_table_header_row content = @description.columns.map { |column| render_table_header_column(column) }.reduce(&:+) @view.content_tag('tr', content) end |