module SimpleDrilldown::Helper
View helper for SimpleDrilldown
Public Instance Methods
caption()
click to toggle source
# File lib/simple_drilldown/helper.rb, line 17 def caption result = @search.title || caption_txt result.gsub('$date', Array(@search.filter[:calendar_date]).uniq.join(' - ')) end
excel_summary_row(result, parent_result = nil, dimension = 0, headers = [])
click to toggle source
# File lib/simple_drilldown/helper.rb, line 53 def excel_summary_row(result, parent_result = nil, dimension = 0, headers = []) xml = +'' if result[:rows] significant_rows = result[:rows].reject { |r| r[:row_count].zero? } significant_rows.each_with_index do |r, i| sub_headers = if i.zero? if dimension.zero? headers else headers + [{ value: result[:value], display_row_count: result[:nodes] + (result[:row_count] * (@search.list ? 1 : 0)) }] end else [] # [{:value => result[:value], :row_count => result[:row_count]}] end xml << excel_summary_row(r, result, dimension + 1, sub_headers) end else xml << render(partial: '/drilldown/excel_summary_row', locals: { result: result, parent_result: parent_result, headers: headers.dup, dimension: dimension }) xml << render(partial: '/drilldown/excel_record_list', locals: { result: result }) if @search.list end if dimension < @dimensions.size xml << render(partial: '/drilldown/excel_summary_total_row', locals: { result: result, headers: headers.dup, dimension: dimension }) end xml end
subcaption()
click to toggle source
# File lib/simple_drilldown/helper.rb, line 22 def subcaption @search.title || @filter_text.blank? ? '' : "for #{@filter_text}" end
summary_row(result, parent_result = nil, dimension = 0, headers = [], new_row = true)
click to toggle source
# File lib/simple_drilldown/helper.rb, line 26 def summary_row(result, parent_result = nil, dimension = 0, headers = [], new_row = true) html = render(partial: '/drilldown/summary_row', locals: { result: result, parent_result: parent_result, new_row: new_row, dimension: dimension, headers: headers, with_results: !result[:rows] }) if result[:rows] sub_headers = headers + [{ value: result[:value], display_row_count: result[:nodes] + (result[:row_count] * (@search.list ? 1 : 0)) }] significant_rows = result[:rows].reject { |r| r[:row_count].zero? } significant_rows.each_with_index do |r, i| html << summary_row(r, result, dimension + 1, sub_headers, i.positive?) end elsif @search.list html << render(partial: '/drilldown/record_list', locals: { result: result, dimension: dimension }) end if dimension < @dimensions.size html << render(partial: '/drilldown/summary_total_row', locals: { result: result, parent_result: parent_result, headers: headers.dup, dimension: dimension }) end html end
value_label(dimension_index, value)
click to toggle source
EMXIF
# File lib/simple_drilldown/helper.rb, line 10 def value_label(dimension_index, value) dimension = @dimensions[dimension_index] return nil if dimension.nil? h(dimension[:label_method] ? dimension[:label_method].call(value) : value) end
Private Instance Methods
caption_txt()
click to toggle source
# File lib/simple_drilldown/helper.rb, line 91 def caption_txt "#{controller.c_target_class} #{I18n.t(@search.select_value.downcase, default: @search.select_value.to_s.titleize)}" + (@dimensions && @dimensions.any? ? " by #{@dimensions.map { |d| d[:pretty_name] }.join(' and ')}" : '') end