diff options
| author | Robert | 2017-10-25 11:55:02 +0200 | 
|---|---|---|
| committer | Xinhui | 2017-11-03 12:26:41 +0100 | 
| commit | 17bf95ca2a8cd645e1310fd64d514adb4044744d (patch) | |
| tree | 702b2c233dc7b6ea72cbdd990b31d54b2f72b7aa | |
| parent | 703c6cab6b0a5cc8699c846796777937e372a9ad (diff) | |
| download | chouette-core-17bf95ca2a8cd645e1310fd64d514adb4044744d.tar.bz2 | |
Refs: #4774;
        table_builder2 modified to accept an array of objects
        - add optional param `model:`  which is needed for header display **only**
          if collection does not return the `model` itself
initial [amend me] [skip ci]
| -rw-r--r-- | app/helpers/table_builder_helper.rb | 25 | 
1 files changed, 14 insertions, 11 deletions
| diff --git a/app/helpers/table_builder_helper.rb b/app/helpers/table_builder_helper.rb index 3eacffa9e..37f01ce0d 100644 --- a/app/helpers/table_builder_helper.rb +++ b/app/helpers/table_builder_helper.rb @@ -83,17 +83,21 @@ module TableBuilderHelper      cls: '',      # A set of content, over the th line... -    overhead: [] +    overhead: [], + +    # Possibility to override the result of collection.model +    model: nil +    )      content_tag :table, -      thead(collection, columns, sortable, selectable, links.any?, overhead) + +      thead(collection, columns, sortable, selectable, links.any?, overhead, model || collection.model) +          tbody(collection, columns, selectable, links, overhead),        class: cls    end    private -  def thead(collection, columns, sortable, selectable, has_links, overhead) +  def thead(collection, columns, sortable, selectable, has_links, overhead, model )      content_tag :thead do        # Inserts overhead content if any specified        over_head = '' @@ -116,13 +120,12 @@ module TableBuilderHelper            hcont << content_tag(:th, checkbox(id_name: '0', value: 'all'))          end -  require 'pry'; binding.pry          columns.each do |column|            if overhead.empty?              hcont << content_tag(:th, build_column_header(                column,                sortable, -              collection.model, +              model,                params,                params[:sort],                params[:direction] @@ -138,7 +141,7 @@ module TableBuilderHelper                  hcont << content_tag(:th, build_column_header(                    column,                    sortable, -                  collection.model, +                  model,                    params,                    params[:sort],                    params[:direction] @@ -148,7 +151,7 @@ module TableBuilderHelper                  hcont << content_tag(:th, build_column_header(                    column,                    sortable, -                  collection.model, +                  model,                    params,                    params[:sort],                    params[:direction] @@ -161,7 +164,7 @@ module TableBuilderHelper                hcont << content_tag(:th, build_column_header(                  column,                  sortable, -                collection.model, +                model,                  params,                  params[:sort],                  params[:direction] @@ -300,14 +303,14 @@ module TableBuilderHelper    def build_column_header(      column,      table_is_sortable, -    collection_model, +    model,      params,      sort_on,      sort_direction    )      if !table_is_sortable || !column.sortable -      return column.header_label(collection_model) +      return column.header_label(model)      end      direction = @@ -332,7 +335,7 @@ module TableBuilderHelper        arrow_icons = content_tag :span, arrow_up + arrow_down, class: 'orderers'        ( -        column.header_label(collection_model) + +        column.header_label(model) +          arrow_icons        ).html_safe      end | 
