Class: ActiveAdmin::Views::IndexAsGrid
- Inherits:
-
Component
- Object
- Arbre::HTML::Div
- Component
- ActiveAdmin::Views::IndexAsGrid
show all
- 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.
index :as => :grid do |product|
link_to(image_tag(product.image_path), admin_products_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 colums that are rendered using the columns option:
index :as => :grid, :columns => 5 do |product|
link_to(image_tag(product.image_path), admin_products_path(product))
end
Instance Method Summary
collapse
Methods inherited from Component
#default_class_name, #initialize, #tag_name
Instance Method Details
#build(page_presenter, collection) ⇒ Object
26
27
28
29
30
|
# File 'lib/active_admin/views/index_as_grid.rb', line 26
def build(page_presenter, collection)
@page_presenter = page_presenter
@collection = collection
build_table
end
|
#build_empty_cell ⇒ Object
60
61
62
|
# File 'lib/active_admin/views/index_as_grid.rb', line 60
def build_empty_cell
td ' '.html_safe
end
|
#build_item(item) ⇒ Object
54
55
56
57
58
|
# File 'lib/active_admin/views/index_as_grid.rb', line 54
def build_item(item)
td :for => item do
instance_exec(item, &@page_presenter.block)
end
end
|
#build_row(group) ⇒ Object
46
47
48
49
50
51
52
|
# File 'lib/active_admin/views/index_as_grid.rb', line 46
def build_row(group)
tr do
group.each do |item|
item ? build_item(item) : build_empty_cell
end
end
end
|
#build_table ⇒ Object
38
39
40
41
42
43
44
|
# File 'lib/active_admin/views/index_as_grid.rb', line 38
def build_table
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
64
65
66
|
# File 'lib/active_admin/views/index_as_grid.rb', line 64
def default_number_of_columns
3
end
|
#number_of_columns ⇒ Object
32
33
34
|
# File 'lib/active_admin/views/index_as_grid.rb', line 32
def number_of_columns
@page_presenter[:columns] || default_number_of_columns
end
|