simple_drilldown 0.11.0 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
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.