Sha256: 3348f18188dd0bc3ae9b45f1d95f85824653d68a3ca6fe0580a992699b46de14
Contents?: true
Size: 1.94 KB
Versions: 7
Compression:
Stored size: 1.94 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. # # ```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 IndexAsGrid < ActiveAdmin::Component def build(page_presenter, collection) @page_presenter = page_presenter @collection = collection.to_a add_class "index" build_table end def number_of_columns @page_presenter[:columns] || default_number_of_columns end def self.index_name "grid" end protected 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 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
7 entries across 7 versions & 2 rubygems