tabulatr2 0.9.31 → 0.9.32

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 21719e71fe7654c3881b1abf925168d7ee09bb5f
4
- data.tar.gz: df5a0301ac3c3e608a96dd62ccf87eb350f884b6
3
+ metadata.gz: 8925e114b7d2dc500bb27471320b8c81ad86773c
4
+ data.tar.gz: ca9a67f02bd9d69763d502fd9c5fd1ecaa321ae9
5
5
  SHA512:
6
- metadata.gz: 81785a96b3deb0249269a0b2487ed70b231f0fc810e14383e9bd088aeb97f80e47b0116c916436fefb372985fe829bc9462d49cf8dfc04de199593322617ecdd
7
- data.tar.gz: ef55f54530aa2906db178edca61b1ff56ffdd97ec5ca60c88f502baafdcd85ca9d4ac8f6c94f52e0622acf07e740881280f846b749d0b034cd7533375d0558c7
6
+ metadata.gz: 96a7faf7a4ad05a24433a3e67355775fa0340919c6d7a325bc82fea6a155c5514aeb0f7cbe4523506cb28a332b0cf2b1daecbf6ec867f0cbfb08c0f7c0795d16
7
+ data.tar.gz: 53c823ee7b120e983cd9281245b9b4118953c9aa595c0a4807e960c4b0014a655613abb6a170779e8e51598ba1a12bbdd9c2a13d2050ae68d5aab26670d5fce5
@@ -1,4 +1,4 @@
1
- $(document).on('ready page:load', function(){
1
+ $(function(){
2
2
  tabulatr_tables = [];
3
3
 
4
4
  $('th.tabulatr-sortable').click(function(){
@@ -40,10 +40,11 @@ class Tabulatr::Data
40
40
  end
41
41
  end
42
42
 
43
- def data_for_table(params, locals: {}, controller: nil, &block)
43
+ def data_for_table(params, locals: {}, default_order: nil, controller: nil, &block)
44
44
 
45
45
  @batch_actions = block if block_given?
46
- @controller = controller
46
+ @controller = controller
47
+ @default_order = default_order
47
48
 
48
49
  # count
49
50
  total = @relation.count
@@ -43,7 +43,7 @@ module Tabulatr::Data::Filtering
43
43
 
44
44
  def apply_filters(filter_params)
45
45
  return unless filter_params
46
- filter_params.each do |param|
46
+ filter_params.permit!.to_hash.with_indifferent_access.each do |param|
47
47
  name, value = param
48
48
  next unless value.present?
49
49
 
@@ -52,14 +52,15 @@ module Tabulatr::Data::Filtering
52
52
  end
53
53
 
54
54
  def apply_condition(n,v)
55
+ # puts "FILTER: »#{n.filter.inspect}«, »#{n.filter.class}«"
55
56
  case n.filter
56
57
  when :checkbox then apply_boolean_condition(n, v)
57
58
  when :decimal then apply_string_condition("#{n.col_options.filter_sql} = ?", v.to_f)
58
59
  when :integer, :enum then apply_string_condition("#{n.col_options.filter_sql} = ?", v.to_i)
59
60
  when :enum_multiselect then apply_array_condition(n, v)
60
61
  when :exact, Hash, Array then apply_string_condition("#{n.col_options.filter_sql} = ?", v)
61
- when :like then apply_like_condition(n, v[:like])
62
- when :date then apply_date_condition(n, v[:date])
62
+ when :like then apply_like_condition(n, v['like'])
63
+ when :date then apply_date_condition(n, v['date'])
63
64
  when :range then apply_range_condition(n, v)
64
65
  when :custom then apply_custom_filter(n, v)
65
66
  else raise "Wrong filter type for #{n.name}: #{n.filter}"
@@ -73,7 +74,7 @@ module Tabulatr::Data::Filtering
73
74
  def apply_date_condition(n, cond)
74
75
  today = Date.today
75
76
  yesterday = today - 1.day
76
- case cond[:simple]
77
+ case cond['simple']
77
78
  when 'none' then return
78
79
  when 'today' then date_in_between(today, today.at_end_of_day, n)
79
80
  when 'yesterday' then date_in_between(yesterday, yesterday.at_end_of_day, n)
@@ -83,7 +84,7 @@ module Tabulatr::Data::Filtering
83
84
  when 'this_month' then date_in_between(today.at_beginning_of_month.beginning_of_day,
84
85
  today.at_end_of_month.end_of_day, n)
85
86
  when 'last_30_days' then date_in_between((today - 29.day).beginning_of_day, today.at_end_of_day, n)
86
- when 'from_to' then date_in_between((Date.parse(cond[:from]) rescue nil), (Date.parse(cond[:to]) rescue nil), n)
87
+ when 'from_to' then date_in_between((Date.parse(cond['from']) rescue nil), (Date.parse(cond['to']) rescue nil), n)
87
88
  end
88
89
  end
89
90
 
@@ -40,6 +40,8 @@ module Tabulatr::Data::Sorting
40
40
  column = table_columns.find{|c| c.name == name}
41
41
  end
42
42
  sort_by(column, orientation)
43
+ elsif @default_order.present?
44
+ @relation = @relation.reorder(@default_order)
43
45
  else
44
46
  @relation = @relation.reorder("#{@table_name}.#{@base.primary_key} desc")
45
47
  end
@@ -22,16 +22,16 @@
22
22
  #++
23
23
 
24
24
  class ActionController::Base
25
- before_filter do
25
+ before_action do
26
26
  @_tabulatr_table_index = 0
27
27
  end
28
28
 
29
- def tabulatr_for(relation, tabulatr_data_class: nil, serializer: nil, render_action: nil, locals: {}, &block)
29
+ def tabulatr_for(relation, tabulatr_data_class: nil, serializer: nil, render_action: nil, default_order: nil, locals: {}, &block)
30
30
  klass = relation.respond_to?(:klass) ? relation.klass : relation
31
31
  respond_to do |format|
32
32
  format.json {
33
33
  locals[:current_user] ||= current_user if respond_to?(:current_user)
34
- records = klass.tabulatr(relation, tabulatr_data_class).data_for_table(params, locals: locals, controller: self, &block)
34
+ records = klass.tabulatr(relation, tabulatr_data_class).data_for_table(params, locals: locals, controller: self, default_order: default_order, &block)
35
35
  render json: records.to_tabulatr_json(serializer)
36
36
  records
37
37
  }
@@ -22,5 +22,5 @@
22
22
  #++
23
23
 
24
24
  module Tabulatr
25
- VERSION = "0.9.31"
25
+ VERSION = "0.9.32"
26
26
  end
data/tabulatr.gemspec CHANGED
@@ -23,10 +23,10 @@ Gem::Specification.new do |s|
23
23
  s.rdoc_options = ['--charset=UTF-8']
24
24
 
25
25
 
26
- s.add_runtime_dependency('rails', '~> 4.0')
26
+ s.add_runtime_dependency('rails', '> 4.0')
27
27
  s.add_dependency('slim', '>= 2.0')
28
- s.add_dependency('tilt', '~> 1.4', '>= 1.4.1')
28
+ s.add_dependency('tilt', '> 1.4')
29
29
  s.add_dependency('font-awesome-rails', '>= 4.0')
30
- s.add_development_dependency('rspec-rails', '~> 3.1.0')
31
- s.add_development_dependency('capybara', '~> 2.4.1')
30
+ s.add_development_dependency('rspec-rails', '>= 3.1.0')
31
+ s.add_development_dependency('capybara', '>= 2.4.1')
32
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tabulatr2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.31
4
+ version: 0.9.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Horn
@@ -10,20 +10,20 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-04-01 00:00:00.000000000 Z
13
+ date: 2017-10-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - "~>"
19
+ - - ">"
20
20
  - !ruby/object:Gem::Version
21
21
  version: '4.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - "~>"
26
+ - - ">"
27
27
  - !ruby/object:Gem::Version
28
28
  version: '4.0'
29
29
  - !ruby/object:Gem::Dependency
@@ -44,22 +44,16 @@ dependencies:
44
44
  name: tilt
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - "~>"
47
+ - - ">"
48
48
  - !ruby/object:Gem::Version
49
49
  version: '1.4'
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 1.4.1
53
50
  type: :runtime
54
51
  prerelease: false
55
52
  version_requirements: !ruby/object:Gem::Requirement
56
53
  requirements:
57
- - - "~>"
54
+ - - ">"
58
55
  - !ruby/object:Gem::Version
59
56
  version: '1.4'
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: 1.4.1
63
57
  - !ruby/object:Gem::Dependency
64
58
  name: font-awesome-rails
65
59
  requirement: !ruby/object:Gem::Requirement
@@ -78,28 +72,28 @@ dependencies:
78
72
  name: rspec-rails
79
73
  requirement: !ruby/object:Gem::Requirement
80
74
  requirements:
81
- - - "~>"
75
+ - - ">="
82
76
  - !ruby/object:Gem::Version
83
77
  version: 3.1.0
84
78
  type: :development
85
79
  prerelease: false
86
80
  version_requirements: !ruby/object:Gem::Requirement
87
81
  requirements:
88
- - - "~>"
82
+ - - ">="
89
83
  - !ruby/object:Gem::Version
90
84
  version: 3.1.0
91
85
  - !ruby/object:Gem::Dependency
92
86
  name: capybara
93
87
  requirement: !ruby/object:Gem::Requirement
94
88
  requirements:
95
- - - "~>"
89
+ - - ">="
96
90
  - !ruby/object:Gem::Version
97
91
  version: 2.4.1
98
92
  type: :development
99
93
  prerelease: false
100
94
  version_requirements: !ruby/object:Gem::Requirement
101
95
  requirements:
102
- - - "~>"
96
+ - - ">="
103
97
  - !ruby/object:Gem::Version
104
98
  version: 2.4.1
105
99
  description: A tight DSL to build tables of ActiveRecord models with sorting, pagination,
@@ -281,7 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
281
275
  version: '0'
282
276
  requirements: []
283
277
  rubyforge_project:
284
- rubygems_version: 2.6.10
278
+ rubygems_version: 2.6.13
285
279
  signing_key:
286
280
  specification_version: 4
287
281
  summary: A tight DSL to build tables of ActiveRecord models with sorting, pagination,