simple_drilldown 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/Rakefile +1 -1
  4. data/app/views/{drilldown → layouts/simple_drilldown}/print.html.erb +0 -0
  5. data/app/views/{drilldown → simple_drilldown}/_chart.html.erb +1 -1
  6. data/app/views/{drilldown → simple_drilldown}/_excel_record_list_xlsx.xlsx.axlsx +0 -0
  7. data/app/views/{drilldown → simple_drilldown}/_excel_row_header.builder +0 -0
  8. data/app/views/{drilldown → simple_drilldown}/_excel_styles.builder +0 -0
  9. data/app/views/{drilldown → simple_drilldown}/_excel_summary_row.builder +1 -1
  10. data/app/views/{drilldown → simple_drilldown}/_excel_summary_row_xlsx.xlsx.axlsx +0 -0
  11. data/app/views/{drilldown → simple_drilldown}/_excel_summary_total_row.builder +0 -0
  12. data/app/views/{drilldown → simple_drilldown}/_excel_summary_total_row_xlsx.xlsx.axlsx +0 -0
  13. data/app/views/{drilldown → simple_drilldown}/_export_links.html.erb +0 -0
  14. data/app/views/{drilldown → simple_drilldown}/_field.html.erb +0 -0
  15. data/app/views/{drilldown → simple_drilldown}/_fields.html.erb +0 -0
  16. data/app/views/{drilldown → simple_drilldown}/_filter.html.erb +1 -1
  17. data/app/views/{drilldown → simple_drilldown}/_record_list.html.erb +2 -2
  18. data/app/views/{drilldown → simple_drilldown}/_row.html.erb +0 -0
  19. data/app/views/{drilldown → simple_drilldown}/_row_header.html.erb +1 -1
  20. data/app/views/{drilldown → simple_drilldown}/_summary_row.html.erb +0 -0
  21. data/app/views/{drilldown → simple_drilldown}/_summary_table.html.erb +0 -0
  22. data/app/views/{drilldown → simple_drilldown}/_summary_total_row.html.erb +0 -0
  23. data/app/views/{drilldown → simple_drilldown}/_tab_buttons.html.erb +0 -0
  24. data/app/views/{drilldown → simple_drilldown}/data_0.builder +0 -0
  25. data/app/views/{drilldown → simple_drilldown}/data_1.builder +0 -0
  26. data/app/views/{drilldown → simple_drilldown}/data_2.builder +0 -0
  27. data/app/views/{drilldown → simple_drilldown}/data_3.builder +0 -0
  28. data/app/views/{drilldown → simple_drilldown}/excel_export.builder +1 -1
  29. data/app/views/{drilldown → simple_drilldown}/excel_export_records.builder +1 -1
  30. data/app/views/{drilldown → simple_drilldown}/excel_export_xlsx.xlsx.axlsx +3 -3
  31. data/app/views/{drilldown → simple_drilldown}/html_export.html.erb +1 -1
  32. data/app/views/{drilldown → simple_drilldown}/index.html.erb +5 -5
  33. data/lib/generators/simple_drilldown/controller/templates/drilldown_controller.rb.erb +2 -1
  34. data/lib/simple_drilldown/controller.rb +28 -31
  35. data/lib/simple_drilldown/engine.rb +1 -1
  36. data/lib/simple_drilldown/helper.rb +11 -11
  37. data/lib/simple_drilldown/search.rb +2 -2
  38. data/lib/simple_drilldown/version.rb +3 -1
  39. metadata +38 -65
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e99331c0a6ab073aece756d21fc1e639e426321975ffd23f64c1becddc375d8
4
- data.tar.gz: 6db7888ff16123847f4df9f3b780fa9232af484c26abcacd38f45a56a25cccca
3
+ metadata.gz: c6f8406ee9ef7580adc175f3995a79bcb428f954e4d84012ad0a0180b6cf7996
4
+ data.tar.gz: cfd5b6a19277aac5e11443a0c7429bc741991e2da00c1915ddff1b6554df75c3
5
5
  SHA512:
6
- metadata.gz: 0002a2f6172dcd658e8bc329ed3985b3829690844c93b01d6a597083a0e59123b9c3fe5ad78f189a6041b8ad2ec82da0ff6e62a55dfe6e4118d2611aa9bde0c9
7
- data.tar.gz: b877aab5468b90bccf608b854b3f362db63d36c4edd6806be9daed15136d54000f435a9047acd308b9016c5a194a4eed8fa86c58a1d73cc21bcbcc12d442b8b9
6
+ metadata.gz: 930779fb380dcff0933a71df90bfa3d55f7ca43103f68d30e89d380f6dc68ac5cb6ae6accd32d98bba445179e6498b0143b4d235e98aa0649b94ed20c5b04de6
7
+ data.tar.gz: c54be58a2c0c072e70884b73ce88daceb8c3e6508f921c06eaa67011a93d52ebc9624b462e47c393397ee285325b8f8a05eb8cdfee5dc6eb8247054c939e4605
data/README.md CHANGED
@@ -117,7 +117,7 @@ results.
117
117
 
118
118
  This gem includes views for the drilldown visualization using Bootstrap.
119
119
 
120
- You can override any views by creating them in your `app/views/drilldown` directory.
120
+ You can override any views by creating them in your `app/views/simple_drilldown` directory.
121
121
  If you would like a local copy of the views for overriding you can use the generator.
122
122
 
123
123
  bin/rails g simple_drilldown:views
data/Rakefile CHANGED
@@ -26,7 +26,7 @@ RuboCop::RakeTask.new
26
26
 
27
27
  namespace :test do
28
28
  desc 'Run Rubocop and all tests'
29
- task full: %i[rubocop:auto_correct test]
29
+ task full: %i[rubocop:autocorrect_all test]
30
30
 
31
31
  desc 'Run all tests except system tests'
32
32
  task quick: :test
@@ -16,7 +16,7 @@
16
16
  end
17
17
  %>
18
18
 
19
- <%= render '/drilldown/tab_buttons', form: form %>
19
+ <%= render '/simple_drilldown/tab_buttons', form: form %>
20
20
 
21
21
  <div id="drilldown_area">
22
22
  <h2><%= caption %></h2>
@@ -8,7 +8,7 @@ xml.Row do
8
8
  xml.Data value_label(@dimensions.size - headers.size + i - 1, h[:value]), 'ss:Type' => 'String'
9
9
  end
10
10
  end
11
- if dimension > 0
11
+ if dimension.positive?
12
12
  xml.Cell('ss:StyleID' => 'Outer',
13
13
  'ss:Index' => dimension.to_s) do
14
14
  xml.Data value_label(dimension - 1, result[:value]),
@@ -5,6 +5,6 @@
5
5
 
6
6
  <% controller.c_dimension_defs.each do |dimension_name, dimension| %>
7
7
  <% choices = [[t(:all), nil]] + (dimension[:legal_values] && dimension[:legal_values].call(@search).map { |o| o.is_a?(Array) ? [o[0].to_s, o[1].to_s] : o.to_s } || []) %>
8
- <%= render partial: 'drilldown/field', locals: { choices: choices || [],
8
+ <%= render partial: 'simple_drilldown/field', locals: { choices: choices || [],
9
9
  form: form, dimension_name: dimension_name } %>
10
10
  <% end %>
@@ -2,10 +2,10 @@
2
2
  <tr>
3
3
  <td colspan="<%= controller.c_summary_fields.size + 1 %>">
4
4
  <table id="drilldown-records-<%= result[:value] %>" class="table table-condensed table-bordered" style="padding-bottom: 10px;">
5
- <%= render '/drilldown/row_header', records: result[:records] %>
5
+ <%= render '/simple_drilldown/row_header', records: result[:records] %>
6
6
  <tbody>
7
7
  <% result[:records].each do |t| %>
8
- <%= render :partial => '/drilldown/row', :locals => { :transaction => t, :previous_transaction => nil, :errors => [], :error_row => false, :meter1_errors => false } %>
8
+ <%= render :partial => '/simple_drilldown/row', :locals => { :transaction => t, :previous_transaction => nil, :errors => [], :error_row => false, :meter1_errors => false } %>
9
9
  <% end %>
10
10
  </tbody>
11
11
  </table>
@@ -4,7 +4,7 @@
4
4
  <th><%= t field, default: [:"attributes.#{field}", field.humanize] %></th>
5
5
  <% end %>
6
6
  <th>
7
- <%= render 'drilldown/export_links', records: records %>
7
+ <%= render 'simple_drilldown/export_links', records: records %>
8
8
  </th>
9
9
  </tr>
10
10
  </thead>
@@ -10,7 +10,7 @@ xml.Workbook(
10
10
  'xmlns:ss' => 'urn:schemas-microsoft-com:office:spreadsheet',
11
11
  'xmlns:html' => 'http://www.w3.org/TR/REC-html40'
12
12
  ) do
13
- xml << render('/drilldown/excel_styles')
13
+ xml << render('/simple_drilldown/excel_styles')
14
14
 
15
15
  xml.Worksheet 'ss:Name' => 'Transaction Summary' do
16
16
  xml.Table do
@@ -10,7 +10,7 @@ xml.Workbook(
10
10
  'xmlns:ss' => 'urn:schemas-microsoft-com:office:spreadsheet',
11
11
  'xmlns:html' => 'http://www.w3.org/TR/REC-html40'
12
12
  ) do
13
- xml << render(partial: '/drilldown/excel_styles')
13
+ xml << render(partial: '/simple_drilldown/excel_styles')
14
14
 
15
15
  xml.Worksheet 'ss:Name' => 'Drilldown' do
16
16
  xml.Table do
@@ -20,19 +20,19 @@ def excel_summary_row_xlsx(sheet, result, parent_result = nil, dimension = 0, he
20
20
  excel_summary_row_xlsx(sheet, r, result, dimension + 1, sub_headers)
21
21
  end
22
22
  else
23
- render(partial: '/drilldown/excel_summary_row_xlsx',
23
+ render(partial: '/simple_drilldown/excel_summary_row_xlsx',
24
24
  locals: { sheet: sheet, result: result, parent_result: parent_result, headers: headers.dup,
25
25
  dimension: dimension })
26
26
 
27
27
  if @search.list
28
- render(partial: '/drilldown/excel_record_list_xlsx',
28
+ render(partial: '/simple_drilldown/excel_record_list_xlsx',
29
29
  locals: { sheet: sheet, result: result })
30
30
  end
31
31
  end
32
32
 
33
33
  return if dimension >= @dimensions.size
34
34
 
35
- render(partial: '/drilldown/excel_summary_total_row_xlsx', locals: {
35
+ render(partial: '/simple_drilldown/excel_summary_total_row_xlsx', locals: {
36
36
  sheet: sheet, result: result, headers: headers.dup, dimension: dimension
37
37
  })
38
38
  end
@@ -2,5 +2,5 @@
2
2
  <h2><%= subcaption %></h2>
3
3
  <br/>
4
4
  <div style="width: 98%; padding: 5px;">
5
- <%= render '/drilldown/summary_table' %>
5
+ <%= render '/simple_drilldown/summary_table' %>
6
6
  </div>
@@ -26,10 +26,10 @@
26
26
  <!-- Tab panes -->
27
27
  <div class="tab-content">
28
28
  <div class="tab-pane active" id="filter">
29
- <%= render '/drilldown/filter', form: form %>
29
+ <%= render '/simple_drilldown/filter', form: form %>
30
30
  </div>
31
31
  <div class="tab-pane" id="fields">
32
- <%= render '/drilldown/fields', form: form %>
32
+ <%= render '/simple_drilldown/fields', form: form %>
33
33
  </div>
34
34
  </div>
35
35
 
@@ -37,16 +37,16 @@
37
37
  <div class="col-md-9">
38
38
  <div class="row" valign="top">
39
39
  <div class="col-md-12">
40
- <%= render '/drilldown/chart', form: form %>
40
+ <%= render '/simple_drilldown/chart', form: form %>
41
41
  </div>
42
42
  </div>
43
43
 
44
44
  <div class="row">
45
45
  <div class="col-md-12" valign="top">
46
46
  <div style="float: right; clear: both;">
47
- <%= render '/drilldown/export_links', records: @result[:records] %>
47
+ <%= render '/simple_drilldown/export_links', records: @result[:records] %>
48
48
  </div>
49
- <%= render '/drilldown/summary_table' %>
49
+ <%= render '/simple_drilldown/summary_table' %>
50
50
  </div>
51
51
  </div>
52
52
  </div>
@@ -26,7 +26,7 @@ class <%= class_name %>DrilldownController < SimpleDrilldown::Controller
26
26
  # base_includes :user, :comments # TODO(uwe): Read relations from schema?
27
27
 
28
28
  # What fields should be displayed as default when listing actual <%= class_name %> records.
29
- default_fields %w[created_at updated_at] # TODO(uwe): Read fields from schema?
29
+ default_fields %w[id created_at updated_at] # TODO(uwe): Read fields from schema?
30
30
 
31
31
  # When listing records, what relations should be included for optimization?
32
32
  # list_includes :user, :comments # TODO(uwe): Read relations from schema?
@@ -35,6 +35,7 @@ class <%= class_name %>DrilldownController < SimpleDrilldown::Controller
35
35
  list_order '<%= plural_name %>.created_at'
36
36
 
37
37
  # Field definitions when listing records
38
+ field :id
38
39
  field :created_at
39
40
  field :updated_at
40
41
 
@@ -135,8 +135,8 @@ module SimpleDrilldown
135
135
  interval: interval,
136
136
  label_method: label_method,
137
137
  legal_values: legal_values,
138
- pretty_name: I18n.t(:"drilldown.dimension.#{name}",
139
- default: [:"drilldown.#{name}", :"activerecord.models.#{name}", name.to_sym,
138
+ pretty_name: I18n.t(:"simple_drilldown.dimension.#{name}",
139
+ default: [:"simple_drilldown.#{name}", :"activerecord.models.#{name}", name.to_sym,
140
140
  name.to_s.titleize]),
141
141
  queries: queries,
142
142
  reverse: reverse,
@@ -147,7 +147,7 @@ module SimpleDrilldown
147
147
  }
148
148
  end
149
149
 
150
- def legal_values_for(field, preserve_filter = false)
150
+ def legal_values_for(field, preserve_filter: false)
151
151
  lambda do |search|
152
152
  filter = search.filter.dup
153
153
  filter.delete(field.to_s) unless preserve_filter
@@ -270,7 +270,7 @@ module SimpleDrilldown
270
270
  sql = +"LEFT JOIN #{include_table} #{include_alias} ON #{include_alias}.#{fk_col} = #{model_table}.id"
271
271
  sql << " AND #{include_alias}.deleted_at IS NULL" if ass.klass.paranoid?
272
272
  if ass.scope && (base_ass_order = ScopeHolder.new(ass.scope).to_s)
273
- /^(?<ass_order>\S*)(?<ass_order_desc>\s+DESC)?/i =~ base_ass_order
273
+ /^(?<ass_order>.*?)(?<ass_order_desc>\s+DESC)?$/i =~ base_ass_order
274
274
  ass_order_prefixed = ass_order.dup
275
275
  ActiveRecord::Base.connection.columns(include_table).map(&:name).each do |cname|
276
276
  ass_order_prefixed.gsub!(/\b#{cname}\b/, "#{include_alias}.#{cname}")
@@ -349,7 +349,7 @@ module SimpleDrilldown
349
349
 
350
350
  # ?dimension[0]=supplier&dimension[1]=transaction_type&
351
351
  # filter[year]=2009&filter[supplier][0]=Shell&filter[supplier][1]=Statoil
352
- def index(do_render = true)
352
+ def index(do_render: true)
353
353
  @search = new_search_object
354
354
 
355
355
  @transaction_fields = (@search.fields + (c_fields.keys.map(&:to_s) - @search.fields))
@@ -383,11 +383,9 @@ module SimpleDrilldown
383
383
  group = nil if group.empty?
384
384
 
385
385
  joins = self.class.make_join([], c_target_class.name.underscore.to_sym, includes)
386
- rows = c_target_class.unscoped.where(c_base_condition).select(select).where(conditions)
387
- .joins(joins)
388
- .group(group)
389
- .order(order)
390
- .to_a
386
+ row_query = c_target_class.unscoped.where(c_base_condition).select(select)
387
+ row_query = row_query.where(conditions) if conditions
388
+ rows = row_query.joins(joins).group(group).order(order).to_a
391
389
  if rows.empty?
392
390
  @result = { value: 'All', count: 0, row_count: 0, nodes: 0, rows: [] }
393
391
  c_summary_fields.each { |f| @result[f] = 0 }
@@ -410,7 +408,7 @@ module SimpleDrilldown
410
408
  end
411
409
 
412
410
  populate_list(conditions, includes, @result, []) if @search.list
413
- render template: '/drilldown/index' if do_render
411
+ render template: '/simple_drilldown/index' if do_render
414
412
  end
415
413
 
416
414
  def choices
@@ -428,23 +426,23 @@ module SimpleDrilldown
428
426
  end
429
427
 
430
428
  def html_export
431
- index(false)
432
- render template: '/drilldown/html_export', layout: '../drilldown/print'
429
+ index(do_render: false)
430
+ render template: '/simple_drilldown/html_export', layout: 'simple_drilldown/print'
433
431
  end
434
432
 
435
433
  def excel_export
436
- index(false)
434
+ index(do_render: false)
437
435
  respond_to do |format|
438
436
  format.xlsx do
439
- render xlsx: c_target_class.table_name, template: 'drilldown/excel_export_xlsx'
437
+ render xlsx: c_target_class.table_name, template: 'simple_drilldown/excel_export_xlsx'
440
438
  end
441
439
  format.xml do
442
440
  set_excel_headers
443
441
  if params.dig(:search, :list) == '1'
444
442
  @records = get_records(@result)
445
- render template: 'drilldown/excel_export_records', layout: false
443
+ render template: 'simple_drilldown/excel_export_records', layout: false
446
444
  else
447
- render template: 'drilldown/excel_export', layout: false
445
+ render template: 'simple_drilldown/excel_export', layout: false
448
446
  end
449
447
  end
450
448
  end
@@ -460,7 +458,7 @@ module SimpleDrilldown
460
458
 
461
459
  def set_excel_headers
462
460
  headers['Content-Type'] = 'application/vnd.ms-excel'
463
- headers['Content-Disposition'] = %{attachment; filename="#{c_target_class.table_name}.xml"}
461
+ headers['Content-Disposition'] = %(attachment; filename="#{c_target_class.table_name}.xml")
464
462
  headers['Cache-Control'] = ''
465
463
  end
466
464
 
@@ -479,18 +477,16 @@ module SimpleDrilldown
479
477
  removed_rows = 0
480
478
  prev_row = nil
481
479
  rows.each do |r|
482
- if prev_row
483
- if prev_row[:value] == r[:value]
484
- prev_row[:count] += r[:count]
485
- c_summary_fields.each do |f|
486
- prev_row[f] += r[f]
487
- end
488
- prev_row[:row_count] = [prev_row[:row_count], r[:row_count]].max
489
- prev_row[:nodes] = [prev_row[:nodes], r[:nodes]].max
490
- prev_row[:rows] += r[:rows] if prev_row[:rows] || r[:rows]
491
- r[:value] = nil
492
- removed_rows += r[:nodes]
480
+ if prev_row && (prev_row[:value] == r[:value])
481
+ prev_row[:count] += r[:count]
482
+ c_summary_fields.each do |f|
483
+ prev_row[f] += r[f]
493
484
  end
485
+ prev_row[:row_count] = [prev_row[:row_count], r[:row_count]].max
486
+ prev_row[:nodes] = [prev_row[:nodes], r[:nodes]].max
487
+ prev_row[:rows] += r[:rows] if prev_row[:rows] || r[:rows]
488
+ r[:value] = nil
489
+ removed_rows += r[:nodes]
494
490
  end
495
491
  prev_row = r unless r[:value].nil?
496
492
  end
@@ -507,7 +503,8 @@ module SimpleDrilldown
507
503
  # Empty summary rows are needed to plot zero points in the charts
508
504
  def add_zero_results(result_rows, dimension)
509
505
  legal_values =
510
- self.class.legal_values_for(@dimensions[dimension][:url_param_name], true).call(@search).map { |lv| lv[1] }
506
+ self.class.legal_values_for(@dimensions[dimension][:url_param_name],
507
+ preserve_filter: true).call(@search).map { |lv| lv[1] }
511
508
  legal_values.reverse! if @dimensions[dimension][:reverse]
512
509
  current_values = result_rows.map { |r| r[:value] }.compact
513
510
  empty_values = legal_values - current_values
@@ -603,7 +600,7 @@ module SimpleDrilldown
603
600
  @dimensions.each do |d|
604
601
  list_conditions_string << "#{' AND ' unless list_conditions_string.empty?}#{d[:select_expression]} = ?"
605
602
  end
606
- [list_conditions_string, *(conditions[1..-1] + values)]
603
+ [list_conditions_string, *(conditions[1..] + values)]
607
604
  end
608
605
 
609
606
  def get_records(tree)
@@ -9,7 +9,7 @@ module SimpleDrilldown
9
9
  config.autoload_paths << File.dirname(__dir__)
10
10
 
11
11
  initializer 'simple_drilldown.assets.precompile' do |app|
12
- app.config.assets.precompile += %w[simple_drilldown/application.css chartkick.js]
12
+ app.config.try(:assets)&.precompile&.concat(%w[simple_drilldown/application.css chartkick.js])
13
13
  end
14
14
 
15
15
  ActionDispatch::Routing::Mapper.include SimpleDrilldown::Routing
@@ -23,8 +23,8 @@ module SimpleDrilldown
23
23
  @search.title || @filter_text.blank? ? '' : "for #{@filter_text}"
24
24
  end
25
25
 
26
- def summary_row(result, parent_result = nil, dimension = 0, headers = [], new_row = true)
27
- html = render(partial: '/drilldown/summary_row', locals: {
26
+ def summary_row(result, parent_result = nil, dimension = 0, headers = [], new_row: true)
27
+ html = render(partial: '/simple_drilldown/summary_row', locals: {
28
28
  result: result, parent_result: parent_result, new_row: new_row, dimension: dimension,
29
29
  headers: headers, with_results: !result[:rows]
30
30
  })
@@ -35,13 +35,13 @@ module SimpleDrilldown
35
35
  }]
36
36
  significant_rows = result[:rows].reject { |r| r[:row_count].zero? }
37
37
  significant_rows.each_with_index do |r, i|
38
- html << summary_row(r, result, dimension + 1, sub_headers, i.positive?)
38
+ html << summary_row(r, result, dimension + 1, sub_headers, new_row: i.positive?)
39
39
  end
40
40
  elsif @search.list
41
- html << render(partial: '/drilldown/record_list', locals: { result: result, dimension: dimension })
41
+ html << render(partial: '/simple_drilldown/record_list', locals: { result: result, dimension: dimension })
42
42
  end
43
43
  if dimension < @dimensions.size
44
- html << render(partial: '/drilldown/summary_total_row',
44
+ html << render(partial: '/simple_drilldown/summary_total_row',
45
45
  locals: {
46
46
  result: result, parent_result: parent_result, headers: headers.dup, dimension: dimension
47
47
  })
@@ -71,15 +71,15 @@ module SimpleDrilldown
71
71
  xml << excel_summary_row(r, result, dimension + 1, sub_headers)
72
72
  end
73
73
  else
74
- xml << render(partial: '/drilldown/excel_summary_row',
74
+ xml << render(partial: '/simple_drilldown/excel_summary_row',
75
75
  locals: { result: result, parent_result: parent_result, headers: headers.dup,
76
76
  dimension: dimension })
77
77
 
78
- xml << render(partial: '/drilldown/excel_record_list', locals: { result: result }) if @search.list
78
+ xml << render(partial: '/simple_drilldown/excel_record_list', locals: { result: result }) if @search.list
79
79
  end
80
80
 
81
81
  if dimension < @dimensions.size
82
- xml << render(partial: '/drilldown/excel_summary_total_row', locals: {
82
+ xml << render(partial: '/simple_drilldown/excel_summary_total_row', locals: {
83
83
  result: result, headers: headers.dup, dimension: dimension
84
84
  })
85
85
  end
@@ -90,9 +90,9 @@ module SimpleDrilldown
90
90
 
91
91
  def caption_txt
92
92
  class_txt = controller.c_target_class &&
93
- I18n.t(controller.c_target_class.name.pluralize.to_sym,
94
- default: [controller.c_target_class.name.downcase.pluralize.to_sym,
95
- controller.c_target_class.name.pluralize])
93
+ I18n.t(controller.c_target_class.name.underscore.to_sym,
94
+ default: [controller.c_target_class.name.underscore.to_sym,
95
+ controller.c_target_class.name.titleize])
96
96
  value_txt = I18n.t(@search.select_value.downcase, default: @search.select_value.to_s.titleize)
97
97
  dimensions_txt = " by #{@dimensions.map { |d| d[:pretty_name] }.join(' and ')}" if @dimensions&.any?
98
98
  "#{class_txt} #{value_txt}#{dimensions_txt}"
@@ -86,8 +86,8 @@ module SimpleDrilldown
86
86
  list_change_times: list_change_times ? '1' : '0',
87
87
  filter: filter,
88
88
  dimensions: dimensions,
89
- display_type: display_type,
90
- },
89
+ display_type: display_type
90
+ }
91
91
  }
92
92
  o[:search][:fields] = fields unless fields == @default_fields
93
93
  o
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SimpleDrilldown
2
- VERSION = '0.11.0'
4
+ VERSION = '0.13.0'
3
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_drilldown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uwe Kubosch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-15 00:00:00.000000000 Z
11
+ date: 2022-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: caxlsx_rails
@@ -44,48 +44,20 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '5.2'
47
+ version: '6.1'
48
48
  - - "<"
49
49
  - !ruby/object:Gem::Version
50
- version: '7'
50
+ version: '8'
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - ">="
56
56
  - !ruby/object:Gem::Version
57
- version: '5.2'
57
+ version: '6.1'
58
58
  - - "<"
59
59
  - !ruby/object:Gem::Version
60
- version: '7'
61
- - !ruby/object:Gem::Dependency
62
- name: rubocop
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '1.1'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '1.1'
75
- - !ruby/object:Gem::Dependency
76
- name: sqlite3
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '0'
60
+ version: '8'
89
61
  description: simple_drilldown offers a simple way to define axis to filter and group
90
62
  records for analysis.
91
63
  email:
@@ -104,36 +76,36 @@ files:
104
76
  - app/jobs/simple_drilldown/application_job.rb
105
77
  - app/mailers/simple_drilldown/application_mailer.rb
106
78
  - app/models/simple_drilldown/application_record.rb
107
- - app/views/drilldown/_chart.html.erb
108
- - app/views/drilldown/_excel_record_list_xlsx.xlsx.axlsx
109
- - app/views/drilldown/_excel_row_header.builder
110
- - app/views/drilldown/_excel_styles.builder
111
- - app/views/drilldown/_excel_summary_row.builder
112
- - app/views/drilldown/_excel_summary_row_xlsx.xlsx.axlsx
113
- - app/views/drilldown/_excel_summary_total_row.builder
114
- - app/views/drilldown/_excel_summary_total_row_xlsx.xlsx.axlsx
115
- - app/views/drilldown/_export_links.html.erb
116
- - app/views/drilldown/_field.html.erb
117
- - app/views/drilldown/_fields.html.erb
118
- - app/views/drilldown/_filter.html.erb
119
- - app/views/drilldown/_record_list.html.erb
120
- - app/views/drilldown/_row.html.erb
121
- - app/views/drilldown/_row_header.html.erb
122
- - app/views/drilldown/_summary_row.html.erb
123
- - app/views/drilldown/_summary_table.html.erb
124
- - app/views/drilldown/_summary_total_row.html.erb
125
- - app/views/drilldown/_tab_buttons.html.erb
126
- - app/views/drilldown/data_0.builder
127
- - app/views/drilldown/data_1.builder
128
- - app/views/drilldown/data_2.builder
129
- - app/views/drilldown/data_3.builder
130
- - app/views/drilldown/excel_export.builder
131
- - app/views/drilldown/excel_export_records.builder
132
- - app/views/drilldown/excel_export_xlsx.xlsx.axlsx
133
- - app/views/drilldown/html_export.html.erb
134
- - app/views/drilldown/index.html.erb
135
- - app/views/drilldown/print.html.erb
136
79
  - app/views/layouts/simple_drilldown/application.html.erb
80
+ - app/views/layouts/simple_drilldown/print.html.erb
81
+ - app/views/simple_drilldown/_chart.html.erb
82
+ - app/views/simple_drilldown/_excel_record_list_xlsx.xlsx.axlsx
83
+ - app/views/simple_drilldown/_excel_row_header.builder
84
+ - app/views/simple_drilldown/_excel_styles.builder
85
+ - app/views/simple_drilldown/_excel_summary_row.builder
86
+ - app/views/simple_drilldown/_excel_summary_row_xlsx.xlsx.axlsx
87
+ - app/views/simple_drilldown/_excel_summary_total_row.builder
88
+ - app/views/simple_drilldown/_excel_summary_total_row_xlsx.xlsx.axlsx
89
+ - app/views/simple_drilldown/_export_links.html.erb
90
+ - app/views/simple_drilldown/_field.html.erb
91
+ - app/views/simple_drilldown/_fields.html.erb
92
+ - app/views/simple_drilldown/_filter.html.erb
93
+ - app/views/simple_drilldown/_record_list.html.erb
94
+ - app/views/simple_drilldown/_row.html.erb
95
+ - app/views/simple_drilldown/_row_header.html.erb
96
+ - app/views/simple_drilldown/_summary_row.html.erb
97
+ - app/views/simple_drilldown/_summary_table.html.erb
98
+ - app/views/simple_drilldown/_summary_total_row.html.erb
99
+ - app/views/simple_drilldown/_tab_buttons.html.erb
100
+ - app/views/simple_drilldown/data_0.builder
101
+ - app/views/simple_drilldown/data_1.builder
102
+ - app/views/simple_drilldown/data_2.builder
103
+ - app/views/simple_drilldown/data_3.builder
104
+ - app/views/simple_drilldown/excel_export.builder
105
+ - app/views/simple_drilldown/excel_export_records.builder
106
+ - app/views/simple_drilldown/excel_export_xlsx.xlsx.axlsx
107
+ - app/views/simple_drilldown/html_export.html.erb
108
+ - app/views/simple_drilldown/index.html.erb
137
109
  - config/locales/en.yml
138
110
  - config/locales/nb.yml
139
111
  - config/routes.rb
@@ -157,6 +129,7 @@ licenses:
157
129
  - MIT
158
130
  metadata:
159
131
  allowed_push_host: https://rubygems.org/
132
+ rubygems_mfa_required: 'true'
160
133
  post_install_message:
161
134
  rdoc_options: []
162
135
  require_paths:
@@ -165,14 +138,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
165
138
  requirements:
166
139
  - - ">="
167
140
  - !ruby/object:Gem::Version
168
- version: '2.5'
141
+ version: '2.6'
169
142
  required_rubygems_version: !ruby/object:Gem::Requirement
170
143
  requirements:
171
144
  - - ">="
172
145
  - !ruby/object:Gem::Version
173
146
  version: '0'
174
147
  requirements: []
175
- rubygems_version: 3.3.3
148
+ rubygems_version: 3.3.7
176
149
  signing_key:
177
150
  specification_version: 4
178
151
  summary: Simple data warehouse and drilldown.