Sha256: 0f408f63b1c6cd6ae8d5fd851599a06e6f7b175fcb61b83fd7c292de7ffb6c01
Contents?: true
Size: 1.83 KB
Versions: 3
Compression:
Stored size: 1.83 KB
Contents
module ActiveAdmin module Views # = 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 # class IndexAsGrid < ActiveAdmin::Component def build(page_presenter, collection) @page_presenter = page_presenter @collection = collection add_class "index" build_table end def number_of_columns @page_presenter[:columns] || default_number_of_columns end protected def build_table resource_selection_toggle_panel table :class => "index_grid" do collection.in_groups_of(number_of_columns).each do |group| build_row(group) end end end def build_row(group) tr do group.each do |item| item ? build_item(item) : build_empty_cell end end end def build_item(item) td :for => item do instance_exec(item, &@page_presenter.block) end end def build_empty_cell td ' '.html_safe end def default_number_of_columns 3 end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
activeadmin-0.5.0 | lib/active_admin/views/index_as_grid.rb |
activeadmin-0.5.0.pre1 | lib/active_admin/views/index_as_grid.rb |
activeadmin-0.5.0.pre | lib/active_admin/views/index_as_grid.rb |