Module: Datagrid::Helper

Defined in:
lib/datagrid/helper.rb

Defined Under Namespace

Classes: HtmlRow

Instance Method Summary collapse

Instance Method Details

#datagrid_form_for(grid, options = {}) ⇒ Object

Renders HTML for for grid with all filters inputs and lables defined in it



54
55
56
# File 'lib/datagrid/helper.rb', line 54

def datagrid_form_for(grid, options = {})
  datagrid_renderer.form_for(grid, options)
end

#datagrid_format_value(report, column_name, model) ⇒ Object

Format an value from datagrid column with given name and for given model



8
9
10
# File 'lib/datagrid/helper.rb', line 8

def datagrid_format_value(report, column_name, model)
  datagrid_renderer.format_value(report, column_name, model)
end

#datagrid_header(grid, options = {}) ⇒ Object

Renders HTML table header for given grid instance using columns defined in it

Supported options:

  • :order - display ordering controls built-in into header Default: true



38
39
40
# File 'lib/datagrid/helper.rb', line 38

def datagrid_header(grid, options = {})
  datagrid_renderer.header(grid, options)
end

#datagrid_order_for(grid, column) ⇒ Object

Renders ordering controls for the given column name



49
50
51
# File 'lib/datagrid/helper.rb', line 49

def datagrid_order_for(grid, column)
  datagrid_renderer.order_for(grid, column)
end

#datagrid_row(grid, asset, &block) ⇒ Object

Provides access to datagrid columns data.

# Suppose that <tt>grid</tt> has first_name and last_name columns
<%= datagrid_row(grid, user) do |row| %>
  <tr>
    <td><%= row.first_name %></td>
    <td><%= row.last_name %></td>
  </tr>
<% end %>

Used in case you want to build html table completelly manually



69
70
71
72
73
74
75
# File 'lib/datagrid/helper.rb', line 69

def datagrid_row(grid, asset, &block)
  HtmlRow.new(self, grid, asset).tap do |row|
    if block_given?
      return capture(row, &block)
    end
  end
end

#datagrid_rows(report, assets, options = {}) ⇒ Object

Renders HTML table rows using given grid definition using columns defined in it



44
45
46
# File 'lib/datagrid/helper.rb', line 44

def datagrid_rows(report, assets, options = {})
  datagrid_renderer.rows(report, assets, options)
end

#datagrid_table(report, *args) ⇒ Object

Renders html table with columns defined in grid class. In the most common used you need to pass paginated collection to datagrid table because datagrid do not have pagination compatibilities:

assets = grid.assets.page(params[:page])
datagrid_table(grid, assets, options)

Supported options:

  • :html - hash of attributes for <table> tag

  • :order - If false do not generate ordering controlls. Default: true.

  • :columns - Array of column names to display. Used in case when same grid class is used in different places and needs different columns. Default: all defined columns.



27
28
29
# File 'lib/datagrid/helper.rb', line 27

def datagrid_table(report, *args)
  datagrid_renderer.table(report, *args)
end