<% max_column ||= 8 %> <% columns ||= @columns_on_steroid %> <% omit_columns ||= [] %> <% omit_columns.each{ |o| columns.delete(o) } %> <% search_lambda ||= @global_search_lambda %> <% download_csv ||= nil %> <% table_on_steroid_id ||= "table_on_steroids" %> <% column_param = params['columns' + table_on_steroid_id] || [] %> <% selected_columns = ((column_param.count > 1) ? column_param : columns.keys.first(max_column)) %> <% title ||= nil %> <% subtext ||= nil %> <% subtext_partial ||= nil %> <% csv_image ||= nil %> <% param_hash = CGI::parse(request.query_string) %> <% expected_column_keys = columns.map{|col,col_values| col }+columns.map{|col,col_values|("search_" + col)}+columns.map{|col,col_values|("search_operator_" + col)} %> <% column_search_lambdas = columns.collect{|k,v| (!v.dig(:datatype) && v.dig(:activerecord,:search_lambda)) || v.dig(:activerecord,:global_search_lambda) || (!v.dig(:datatype) && v.dig(:array,:search_lambda)) || v.dig(:array,:global_search_lambda) }.compact %>
<%= form_tag request.path, method: "get", id: ("knowledge_base_filters" + table_on_steroid_id) do %> <% param_hash.select{ |k,v| !expected_column_keys.include?(k) && !["utf8","columns[]","knowledge[order]","knowledge[ascending]"].include?(k) }.each do |k,v| %> <%= hidden_field_tag k, v[0] %> <% end %> <%end%>
<% if title %> <%= title %> <% end %>
<% if(search_lambda || !column_search_lambdas.empty?) %> <%= text_field_tag 'search', params[:search], placeholder: 'Search ..', onchange: "$('#knowledge_base_filters#{table_on_steroid_id}').submit();", class: 'form-control global-search', form: "knowledge_base_filters#{table_on_steroid_id}" %> <% end %>
<% if(subtext_partial) %>
<%= render partial: subtext_partial, locals: local_assigns %>
<% end %>
<%= select_tag("columns#{table_on_steroid_id}", options_for_select(columns.map{|c| [c[1][:label], c[0]]}, selected_columns), multiple: true, class: "column-selector #{table_on_steroid_id}", data: {"none-selected-text" => "Display columns (max #{max_column})", "max-options" => max_column, style: 'table-on-steroids-selectpicker' }, form: "knowledge_base_filters#{table_on_steroid_id}") %>
<% if(download_csv) %>
" style="float:right" target="_blank"> <%= image_tag csv_image || "csv.png", :height => "25", :style => "padding-top:5px;" %>
<% end %> <% if(objects.is_a?(ActiveRecord::Base) || objects.is_a?(ActiveRecord::Relation)) %> <%= paginate objects, theme: 'twitter-bootstrap-4' %> <% end %> <%= hidden_field_tag('knowledge[order]', params&.dig(:knowledge,:order), id: "knowledge_order#{table_on_steroid_id}", form: "knowledge_base_filters#{table_on_steroid_id}") %> <%= hidden_field_tag('knowledge[ascending]', params&.dig(:knowledge,:ascending), id: "knowledge_ascending#{table_on_steroid_id}", form: "knowledge_base_filters#{table_on_steroid_id}") %> <% columns.each_pair do | k , v | %> <% end %> <%= render partial: "table_on_steroids/table_on_steroids_filters", locals: {columns_on_steroid: columns, selected_columns: selected_columns, table_on_steroid_id: table_on_steroid_id} %> <% objects.each do |o| %> <% columns.each_pair do | k , v | %> <% val = v[:value_lambda].call(o, self) %> <% end %> <% end %>
<%= v[:label] %> <% if v[:type] == 'order' %> <%= image_tag "up_arrow_white.svg", onclick: "$('#knowledge_order#{table_on_steroid_id}').val('" + k + "');$('#knowledge_ascending#{table_on_steroid_id}').val('true');$('#knowledge_base_filters#{table_on_steroid_id}').submit();" %> <%= image_tag "down_arrow_white.svg", onclick: "$('#knowledge_order#{table_on_steroid_id}').val('" + k + "');$('#knowledge_ascending#{table_on_steroid_id}').val('false');$('#knowledge_base_filters#{table_on_steroid_id}').submit();" %> <% end %>
<%= val.is_a?(String) ? val.html_safe : val %>
<%= paginate objects, theme: 'twitter-bootstrap-4' %>