Module: Tableficate::Helper
- Defined in:
- lib/tableficate/helper.rb
Instance Method Summary collapse
- #table_for(rows, options = {}) {|t| ... } ⇒ Object
- #tableficate_check_box_tags(filter) ⇒ Object
- #tableficate_data_tag(row, column) ⇒ Object
- #tableficate_filter_form_tag(table) ⇒ Object
- #tableficate_filter_tag(filter) ⇒ Object
- #tableficate_header_tag(column) ⇒ Object
- #tableficate_label_tag(filter) ⇒ Object
- #tableficate_radio_tags(filter) ⇒ Object
- #tableficate_row_tag(row, columns) ⇒ Object
- #tableficate_select_tag(filter) ⇒ Object
- #tableficate_table_tag(table) ⇒ Object
- #tableficate_text_field_tag(filter) ⇒ Object
Instance Method Details
#table_for(rows, options = {}) {|t| ... } ⇒ Object
3 4 5 6 7 |
# File 'lib/tableficate/helper.rb', line 3 def table_for(rows, = {}) t = Tableficate::Table.new(self, rows, , rows.tableficate_data) yield(t) t.template.render(partial: Tableficate::Utils::template_path(t.template, 'table_for', t.theme), locals: {table: t}) end |
#tableficate_check_box_tags(filter) ⇒ Object
76 77 78 79 80 81 82 |
# File 'lib/tableficate/helper.rb', line 76 def (filter) if filter.collection.empty? check_box_tag(filter.field_name, true, filter.field_value(params[filter.table.as]) == 'true', filter.attrs) else (filter) end end |
#tableficate_data_tag(row, column) ⇒ Object
18 19 20 21 |
# File 'lib/tableficate/helper.rb', line 18 def tableficate_data_tag(row, column) table = column.table render partial: Tableficate::Utils::template_path(table.template, 'data', table.theme), locals: {row: row, column: column} end |
#tableficate_filter_form_tag(table) ⇒ Object
28 29 30 |
# File 'lib/tableficate/helper.rb', line 28 def tableficate_filter_form_tag(table) render partial: Tableficate::Utils::template_path(table.template, 'filters/form', table.theme), locals: {table: table} end |
#tableficate_filter_tag(filter) ⇒ Object
32 33 34 35 |
# File 'lib/tableficate/helper.rb', line 32 def tableficate_filter_tag(filter) table = filter.table render partial: Tableficate::Utils::template_path(table.template, filter.template, table.theme), locals: {filter: filter} end |
#tableficate_header_tag(column) ⇒ Object
13 14 15 16 |
# File 'lib/tableficate/helper.rb', line 13 def tableficate_header_tag(column) table = column.table render partial: Tableficate::Utils::template_path(table.template, 'header', table.theme), locals: {column: column} end |
#tableficate_label_tag(filter) ⇒ Object
37 38 39 |
# File 'lib/tableficate/helper.rb', line 37 def tableficate_label_tag(filter) label_tag(filter.field_name, filter.label, filter.) end |
#tableficate_radio_tags(filter) ⇒ Object
72 73 74 |
# File 'lib/tableficate/helper.rb', line 72 def (filter) (filter) end |
#tableficate_row_tag(row, columns) ⇒ Object
23 24 25 26 |
# File 'lib/tableficate/helper.rb', line 23 def tableficate_row_tag(row, columns) table = columns.first.table render partial: Tableficate::Utils::template_path(table.template, 'row', table.theme), locals: {row: row, columns: columns} end |
#tableficate_select_tag(filter) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/tableficate/helper.rb', line 45 def tableficate_select_tag(filter) field_value = filter.field_value(params[filter.table.as]) collection = filter.collection if field_value.present? and collection.is_a?(String) Array.wrap(field_value).each do |fv| if collection.match(/<option[^>]*value\s*=/) collection.gsub!(/(<option[^>]*value\s*=\s*['"]?#{fv}[^>]*)/, '\1 selected="selected"') else collection.gsub!(/>#{fv}</, " selected=\"selected\">#{fv}<") end end elsif not collection.is_a?(String) collection = Tableficate::Filter::Collection.new(collection, selected: field_value).map {|choice| html_attributes = choice.attrs.length > 0 ? ' ' + choice.attrs.map {|k, v| %(#{k.to_s}="#{v}")}.join(' ') : '' selected_attribute = choice.selected? ? ' selected="selected"' : '' %(<option value="#{ERB::Util.html_escape(choice.value)}"#{selected_attribute}#{html_attributes}>#{ERB::Util.html_escape(choice.name)}</option>) }.join("\n") end collection = collection.html_safe select_tag(filter.field_name, collection, filter.attrs) end |
#tableficate_table_tag(table) ⇒ Object
9 10 11 |
# File 'lib/tableficate/helper.rb', line 9 def tableficate_table_tag(table) render partial: Tableficate::Utils::template_path(table.template, 'table', table.theme), locals: {table: table} end |
#tableficate_text_field_tag(filter) ⇒ Object
41 42 43 |
# File 'lib/tableficate/helper.rb', line 41 def tableficate_text_field_tag(filter) text_field_tag(filter.field_name, filter.field_value(params[filter.table.as]), filter.attrs) end |