From 17bf95ca2a8cd645e1310fd64d514adb4044744d Mon Sep 17 00:00:00 2001 From: Robert Date: Wed, 25 Oct 2017 11:55:02 +0200 Subject: 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] --- app/helpers/table_builder_helper.rb | 25 ++++++++++++++----------- 1 file 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 -- cgit v1.2.3