Class: ActiveAdmin::Views::IndexAsGrid
- Defined in:
- lib/active_admin/views/index_as_grid.rb
Overview
# Index as a Grid
Sometimes you want to display the index screen for a set of resources as a grid (possibly a grid of thumbnail images). To do so, use the :grid option for the index block.
“‘ruby index as: :grid do |product|
link_to image_tag(product.image_path), admin_product_path(product)
end “‘
The block is rendered within a cell in the grid once for each resource in the collection. The resource is passed into the block for you to use in the view.
You can customize the number of columns that are rendered using the columns option:
“‘ruby index as: :grid, columns: 5 do |product|
link_to image_tag(product.image_path), admin_product_path(product)
end “‘
Class Method Summary collapse
Instance Method Summary collapse
- #build(page_presenter, collection) ⇒ Object
- #build_empty_cell ⇒ Object protected
- #build_item(item) ⇒ Object protected
- #build_row(group) ⇒ Object protected
- #build_table ⇒ Object protected
- #default_number_of_columns ⇒ Object protected
- #number_of_columns ⇒ Object
Class Method Details
.index_name ⇒ Object
41 42 43 |
# File 'lib/active_admin/views/index_as_grid.rb', line 41 def self.index_name "grid" end |
Instance Method Details
#build(page_presenter, collection) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/active_admin/views/index_as_grid.rb', line 30 def build(page_presenter, collection) @page_presenter = page_presenter @collection = collection.to_a add_class "index" build_table end |
#build_empty_cell ⇒ Object (protected)
70 71 72 |
# File 'lib/active_admin/views/index_as_grid.rb', line 70 def build_empty_cell td ' '.html_safe end |
#build_item(item) ⇒ Object (protected)
64 65 66 67 68 |
# File 'lib/active_admin/views/index_as_grid.rb', line 64 def build_item(item) td for: item do instance_exec(item, &@page_presenter.block) end end |
#build_row(group) ⇒ Object (protected)
56 57 58 59 60 61 62 |
# File 'lib/active_admin/views/index_as_grid.rb', line 56 def build_row(group) tr do group.each do |item| item ? build_item(item) : build_empty_cell end end end |
#build_table ⇒ Object (protected)
47 48 49 50 51 52 53 54 |
# File 'lib/active_admin/views/index_as_grid.rb', line 47 def build_table resource_selection_toggle_panel if active_admin_config.batch_actions.any? table class: "index_grid" do @collection.in_groups_of(number_of_columns).each do |group| build_row(group) end end end |
#default_number_of_columns ⇒ Object (protected)
74 75 76 |
# File 'lib/active_admin/views/index_as_grid.rb', line 74 def default_number_of_columns 3 end |
#number_of_columns ⇒ Object
37 38 39 |
# File 'lib/active_admin/views/index_as_grid.rb', line 37 def number_of_columns @page_presenter[:columns] || default_number_of_columns end |