.index-table .index-table__content.shadow-4dp // Generated tables using JSON - bulk_path = url_for(action: :bulk_actions) rescue '' .filter_panel.hidden - index_data.except(:ROW_CLASS).keys.each_with_index do |key, i| - if index_data[key][:filter] .filter.hidden{class: "filter_#{i}"} = search_form_for @q do |f| = f.collection_select index_data[key][:filter][:name], instance_eval { eval index_data[key][:filter][:collection] }, index_data[key][:filter][:display], index_data[key][:filter][:display], include_blank: true = link_to 'Show none', request.query_parameters.merge(q: {"#{index_data[key][:filter][:name].gsub('_eq', '_null')}": 1}) = submit_tag :search = form_tag bulk_path do #index_table__wrapper{class: ('bulk_actions_container' if bulk_actions)} - if bulk_actions .bulk_actions_panel.hidden.shadow-8dp %h4 Select Bulk Action .gs .g-3 = select_tag :bulk_actions, options_for_select(bulk_actions) .g-1.g-gutter = submit_tag 'Submit', class: 'btn' %table.index_table{class: ('sortable_table' if sortable)} %thead - if sortable %th.sort_column - if bulk_actions %th= check_box_tag :select_all - index_data.except(:ROW_CLASS).keys.each_with_index do |key, i| %th.no-wrap{class: "column_#{i}"} - unless key[0] == '_' - if (sort = index_data[key][:sort]) = sort_link @q, sort, raw(key.to_s) - else = key - if index_data[key][:filter] = link_to fa_icon('filter'), 'javascript:void(0)', class: 'filter_toggle', data: {filter: "filter_#{i}"} %tbody{'index_data-sort' => sortable} - collection.each do |object| - begin - if row_klass = index_data[:ROW_CLASS] - if row_klass[:toggle] - result = object.instance_eval { eval row_klass[:toggle][:condition] } - if result - row_klass = row_klass[:toggle][:true] - elsif result.nil? - row_klass = row_klass[:toggle][:nil] - else - row_klass = row_klass[:toggle][:false] - else - row_klass = row_klass[:text] %tr{id: "#{controller_name.singularize}_#{object.id}", class: "#{row_klass} object_#{object.id}", data: {columns: index_data.except(:ROW_CLASS).values.count}} - if sortable %td.sort_handle = fa_icon('ellipsis-v') - if bulk_actions %td.check_box_column.narrow= check_box_tag "#{controller_name.singularize}[]", object.id - index_data.except(:ROW_CLASS).values.each_with_index do |value, i| - if klass = value[:class] - if klass[:toggle] - result = object.instance_eval { eval klass[:toggle][:condition] } - if result - klass = klass[:toggle][:true] - elsif result.nil? - klass = klass[:toggle][:nil] - else - klass = klass[:toggle][:false] %td{class: "column_#{i} #{'narrow' if (value[:image])} #{klass if klass}"} - unless value[:condition] && object.instance_eval { eval value[:condition] } - if value[:toggle] - if object.instance_eval { eval value[:toggle][:condition] } - value = value[:toggle][:true] - else - value = value[:toggle][:false] - if (link = value[:link]) - unless object.instance_eval { eval link[:options] } == [nil] = link_to object.instance_eval { eval link[:options] }, remote: link[:remote], method: link[:method], data: link[:data] do = link[:name][:call] ? raw(object.instance_eval { eval link[:name][:call] }) : link[:name][:text] - elsif price = value[:price] = humanized_money_with_symbol object.instance_eval { eval price[:call] } - elsif (link = value[:image]) = image_tag object.instance_eval { eval value[:image] }, class: 'table_image' - elsif icon = value[:icon] = fa_icon(icon) - else = raw(value[:call] ? object.instance_eval { eval value[:call] } : value[:text]) - rescue