effective_datatables 3.7.7 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +5 -5
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +32 -32
  4. data/app/assets/images/dataTables/sort-down.svg +1 -0
  5. data/app/assets/images/dataTables/sort-up.svg +1 -0
  6. data/app/assets/images/dataTables/sort.svg +1 -0
  7. data/app/assets/javascripts/dataTables/buttons/{buttons.bootstrap.js → buttons.bootstrap4.js} +7 -15
  8. data/app/assets/javascripts/dataTables/dataTables.bootstrap4.js +184 -0
  9. data/app/assets/javascripts/dataTables/responsive/dataTables.responsive.js +30 -11
  10. data/app/assets/javascripts/dataTables/responsive/{responsive.bootstrap.js → responsive.bootstrap4.js} +6 -6
  11. data/app/assets/javascripts/effective_datatables.js +4 -4
  12. data/app/assets/javascripts/effective_datatables/bulk_actions.js.coffee +43 -43
  13. data/app/assets/javascripts/effective_datatables/events.js.coffee +7 -4
  14. data/app/assets/javascripts/effective_datatables/filters.js.coffee +0 -1
  15. data/app/assets/javascripts/effective_datatables/initialize.js.coffee +45 -49
  16. data/app/assets/javascripts/effective_datatables/overrides.js +12 -0
  17. data/app/assets/javascripts/effective_datatables/reset.js.coffee +1 -1
  18. data/app/assets/stylesheets/dataTables/buttons/{buttons.bootstrap.scss → buttons.bootstrap4.css} +68 -1
  19. data/app/assets/stylesheets/dataTables/{dataTables.bootstrap.scss → dataTables.bootstrap4.css} +44 -29
  20. data/app/assets/stylesheets/dataTables/responsive/{responsive.bootstrap.scss → responsive.bootstrap4.css} +3 -3
  21. data/app/assets/stylesheets/effective_datatables.scss +3 -4
  22. data/app/assets/stylesheets/effective_datatables/_overrides.scss +72 -152
  23. data/app/controllers/effective/datatables_controller.rb +6 -39
  24. data/app/helpers/effective_datatables_helper.rb +55 -50
  25. data/app/helpers/effective_datatables_private_helper.rb +47 -179
  26. data/app/models/effective/datatable.rb +16 -44
  27. data/app/models/effective/datatable_column.rb +0 -1
  28. data/app/models/effective/datatable_column_tool.rb +1 -1
  29. data/app/models/effective/datatable_dsl_tool.rb +3 -11
  30. data/app/models/effective/datatable_value_tool.rb +23 -23
  31. data/app/models/effective/effective_datatable/attributes.rb +13 -5
  32. data/app/models/effective/effective_datatable/collection.rb +3 -18
  33. data/app/models/effective/effective_datatable/compute.rb +6 -17
  34. data/app/models/effective/effective_datatable/cookie.rb +20 -19
  35. data/app/models/effective/effective_datatable/dsl.rb +3 -8
  36. data/app/models/effective/effective_datatable/dsl/bulk_actions.rb +25 -14
  37. data/app/models/effective/effective_datatable/dsl/datatable.rb +28 -70
  38. data/app/models/effective/effective_datatable/dsl/filters.rb +5 -5
  39. data/app/models/effective/effective_datatable/format.rb +50 -95
  40. data/app/models/effective/effective_datatable/params.rb +3 -8
  41. data/app/models/effective/effective_datatable/resource.rb +76 -137
  42. data/app/models/effective/effective_datatable/state.rb +15 -30
  43. data/app/views/effective/datatables/_actions_column.html.haml +8 -1
  44. data/app/views/effective/datatables/_bulk_actions_column.html.haml +1 -1
  45. data/app/views/effective/datatables/_filters.html.haml +11 -12
  46. data/app/views/effective/datatables/_resource_column.html.haml +8 -11
  47. data/config/effective_datatables.rb +14 -12
  48. data/config/routes.rb +0 -1
  49. data/lib/effective_datatables.rb +4 -57
  50. data/lib/effective_datatables/engine.rb +1 -1
  51. data/lib/effective_datatables/version.rb +1 -1
  52. metadata +20 -30
  53. data/app/assets/images/dataTables/sort_asc.png +0 -0
  54. data/app/assets/images/dataTables/sort_both.png +0 -0
  55. data/app/assets/images/dataTables/sort_desc.png +0 -0
  56. data/app/assets/javascripts/dataTables/dataTables.bootstrap.js +0 -182
  57. data/app/assets/javascripts/dataTables/locales/en.lang +0 -33
  58. data/app/assets/javascripts/dataTables/locales/es.lang +0 -36
  59. data/app/assets/javascripts/dataTables/locales/nl.lang +0 -30
  60. data/app/assets/javascripts/effective_datatables/flash.js.coffee +0 -31
  61. data/app/assets/javascripts/effective_datatables/inline_crud.js.coffee +0 -217
  62. data/app/assets/javascripts/effective_datatables/overrides.js.coffee +0 -7
  63. data/app/assets/javascripts/effective_datatables/reorder.js.coffee +0 -43
  64. data/app/assets/stylesheets/effective_datatables/_filters.scss +0 -7
  65. data/app/views/effective/datatables/_reorder_column.html.haml +0 -5
  66. data/config/locales/en.yml +0 -12
  67. data/config/locales/es.yml +0 -12
  68. data/config/locales/nl.yml +0 -12
@@ -55,6 +55,7 @@ module Effective
55
55
  # This is called first. Our initial state is set.
56
56
  def initial_state
57
57
  {
58
+ attributes: {},
58
59
  filter: {},
59
60
  length: nil,
60
61
  order_name: nil,
@@ -88,27 +89,23 @@ module Effective
88
89
 
89
90
  def load_state!
90
91
  if datatables_ajax_request?
91
- load_cookie! # but not state.
92
92
  load_filter_params!
93
93
  load_ajax_state!
94
- elsif datatables_inline_request?
95
- load_filter_params!
94
+ elsif cookie.present? && cookie[:params] == params.length
95
+ load_cookie_state!
96
96
  else
97
- load_cookie!
98
- load_cookie_state! if cookie.present? && cookie[:params] == cookie_state_params
99
- load_filter_params!
97
+ # Nothing to do for default state
100
98
  end
101
99
 
100
+ load_filter_params! unless datatables_ajax_request?
102
101
  fill_empty_filters!
103
102
  end
104
103
 
105
104
  def load_ajax_state!
106
105
  state[:length] = params[:length].to_i
107
106
 
108
- if params[:order]
109
- state[:order_dir] = (params[:order]['0'][:dir] == 'desc' ? :desc : :asc)
110
- state[:order_index] = params[:order]['0'][:column].to_i
111
- end
107
+ state[:order_dir] = (params[:order]['0'][:dir] == 'desc' ? :desc : :asc)
108
+ state[:order_index] = params[:order]['0'][:column].to_i
112
109
 
113
110
  state[:scope] = _scopes.keys.find { |name| params[:scope] == name.to_s }
114
111
  state[:start] = params[:start].to_i
@@ -133,7 +130,7 @@ module Effective
133
130
  state[:filter][name] = parse_filter_value(_filters[name], value)
134
131
  end
135
132
 
136
- state[:params] = cookie[:params] if cookie.present?
133
+ state[:params] = cookie[:params]
137
134
  end
138
135
 
139
136
  def load_cookie_state!
@@ -143,21 +140,14 @@ module Effective
143
140
  def load_columns!
144
141
  state[:length] ||= EffectiveDatatables.default_length
145
142
 
146
- (columns || {}).each_with_index { |(_, column), index| column[:index] = index }
147
-
148
143
  if columns.present?
149
- state[:order_name] = (
150
- if columns.key?(:_reorder)
151
- :_reorder
152
- elsif order_index.present?
153
- columns.keys[order_index]
154
- elsif state[:order_name].present?
155
- state[:order_name]
156
- else
157
- columns.find { |name, opts| opts[:sort] }.first
158
- end
159
- )
144
+ columns.each_with_index { |(_, column), index| column[:index] = index }
160
145
 
146
+ if order_index.present?
147
+ state[:order_name] = columns.keys[order_index]
148
+ end
149
+
150
+ state[:order_name] ||= columns.find { |name, opts| opts[:sort] }.first
161
151
  raise "order column :#{order_name} must exist as a col or val" unless columns[order_name]
162
152
 
163
153
  state[:order_index] = columns[order_name][:index]
@@ -186,7 +176,7 @@ module Effective
186
176
 
187
177
  unless datatables_ajax_request?
188
178
  search_params.each { |name, value| state[:search][name] = value }
189
- state[:params] = cookie_state_params
179
+ state[:params] = params.length
190
180
  end
191
181
 
192
182
  state[:visible].delete_if { |name, _| columns.key?(name) == false }
@@ -197,14 +187,9 @@ module Effective
197
187
  # When we parse an incoming filter term for this filter.
198
188
  def parse_filter_value(filter, value)
199
189
  return filter[:parse].call(value) if filter[:parse]
200
- return nil if value.blank? && !filter[:required]
201
190
  Effective::Attribute.new(filter[:value]).parse(value, name: filter[:name])
202
191
  end
203
192
 
204
- def cookie_state_params
205
- params.hash.abs.to_s.last(12)
206
- end
207
-
208
193
  end
209
194
  end
210
195
  end
@@ -1 +1,8 @@
1
- = render_resource_actions(resource, **actions_col_locals)
1
+ - if show_action && EffectiveDatatables.authorized?(self, :show, resource)
2
+ = show_icon_to effective_resource.action_path(:show, resource)
3
+
4
+ - if edit_action && EffectiveDatatables.authorized?(self, :edit, resource)
5
+ = edit_icon_to effective_resource.action_path(:edit, resource)
6
+
7
+ - if destroy_action && EffectiveDatatables.authorized?(self, :destroy, resource)
8
+ = destroy_icon_to effective_resource.action_path(:destroy, resource), data: { method: :delete, confirm: "Delete #{resource}?" }
@@ -1,2 +1,2 @@
1
1
  - id = (resource.try(:to_param) || resource.try(:id) || resource.object_id)
2
- = check_box_tag 'bulk_actions_resources[]', id, false, autocomplete: 'off', id: "datatable_bulk_actions_resource_#{id}", data: { role: 'bulk-action' }, onClick: 'event.stopPropagation();'
2
+ = check_box_tag 'bulk_actions_resources[]', id, false, autocomplete: 'off', id: "datatable_bulk_actions_resource_#{id}", data: { role: 'bulk-actions-resource' }, onClick: 'event.stopPropagation();'
@@ -1,17 +1,16 @@
1
1
  .effective-datatables-filters{'aria-controls': datatable.to_param}
2
- = simple_form_for :filters, url: (datatable._form[:url] || '#'), method: datatable._form[:verb], html: { class: 'form-inline' } do |form|
3
- - if datatable._scopes.present?
4
- .effective-datatables-filters-scopes
5
- = datatable_scope_tag(form, datatable)
2
+ = effective_form_with(scope: :filters, url: (datatable._form[:url] || '#'), method: datatable._form[:verb]) do |form|
3
+ .form-row.align-items-center
4
+ - if datatable._scopes.present?
5
+ = form.radios :scope, datatable._scopes.map { |name, opts| [opts[:label], name] },
6
+ label: false, required: false, checked: datatable.state[:scope], buttons: true,
7
+ wrapper: { class: 'form-group col-auto' }
6
8
 
7
- - if datatable._filters.present?
8
- .effective-datatables-filters-inputs
9
- - datatable._filters.each do |name, opts|
10
- = datatable_filter_tag(form, datatable, name, opts)
9
+ - datatable._filters.each do |name, opts|
10
+ = datatable_filter_tag(form, datatable, name, opts)
11
11
 
12
- - if datatable._scopes.present? || datatable._filters.present?
13
- .effective-datatables-filters-btn
12
+ .form-group.col-auto
14
13
  - if datatable._filters_form_required?
15
- = form.button :submit, t('effective_datatables.apply'), 'data-disable-with': t('effective_datatables.applying')
14
+ = form.save 'Apply', 'data-disable-with': 'Applying...'
16
15
  - else
17
- = link_to t('effective_datatables.apply'), '#', class: 'btn btn-primary btn-sm btn-effective-datatables-filters', 'data-apply-effective-datatables-filters': true
16
+ = link_to 'Apply', '#', class: 'btn btn-primary btn-effective-datatables-filters', 'data-apply-effective-datatables-filters': true
@@ -1,11 +1,8 @@
1
- - Array(local_assigns[:resource_name] ? resource.public_send(resource_name) : resource).each do |resource|
2
- - resource_to_s = ((local_assigns[:resource_to_s] && resource) ? resource.public_send(resource_to_s) : resource.to_s)
3
-
4
- - if resource_to_s.present?
5
- .col-resource_item
6
- - if edit_action && EffectiveDatatables.authorized?(controller, :edit, resource) && (path = effective_resource.action_path(:edit, resource)).present?
7
- = link_to resource_to_s, path, title: resource_to_s
8
- - elsif show_action && EffectiveDatatables.authorized?(controller, :show, resource) && (path = effective_resource.action_path(:show, resource)).present?
9
- = link_to resource_to_s, path, title: resource_to_s
10
- - else
11
- = resource_to_s.to_s.html_safe
1
+ - Array(datatable.array_collection? ? resource : resource.send(name)).each do |resource|
2
+ .col-resource_item
3
+ - if show_action
4
+ = link_to resource.to_s, effective_resource.action_path(:show, resource), title: resource.to_s
5
+ - elsif edit_action
6
+ = link_to resource.to_s, effective_resource.action_path(:edit, resource), title: resource.to_s
7
+ - else
8
+ = resource.to_s.html_safe
@@ -28,19 +28,21 @@ EffectiveDatatables.setup do |config|
28
28
  # Default class used on the <table> tag
29
29
  config.html_class = 'table table-hover'
30
30
 
31
+ # When using the actions_column DSL method, apply the following behavior
32
+ # Valid values for each action are:
33
+ # true - display this action if authorized?(:show, Post)
34
+ # false - do not display this action
35
+ # :authorize - display this action if authorized?(:show, Post<3>) (every instance is checked)
36
+ #
37
+ # You can override these defaults on a per-table basis
38
+ # by calling `actions_column(show: false, edit: true, destroy: :authorize)`
39
+ config.actions_column = {
40
+ show: true,
41
+ edit: true,
42
+ destroy: true
43
+ }
44
+
31
45
  # Log search/sort information to the console
32
46
  config.debug = true
33
47
 
34
- # Use a cookie to save and restore state from previous page visits.
35
- config.save_state = true
36
-
37
- # Configure the _effective_dt cookie.
38
- config.cookie_max_size = 2000 # String size. Final byte size is about 1.5 times bigger, after rails signs it
39
- config.cookie_domain = :all # Should usually be :all
40
- config.cookie_tld_length = nil # Leave nil to autodetect, or set to probably 2
41
-
42
- # Date formatting
43
- config.format_datetime = '%F %H:%M'
44
- config.format_date = '%F'
45
- config.format_time = '%H:%M'
46
48
  end
data/config/routes.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  EffectiveDatatables::Engine.routes.draw do
2
2
  scope :module => 'effective' do
3
3
  match 'datatables/:id(.:format)', to: 'datatables#show', via: [:get, :post], as: :datatable
4
- match 'datatables/:id/reorder(.:format)', to: 'datatables#reorder', via: [:post], as: :reorder_datatable
5
4
  end
6
5
  end
7
6
 
@@ -1,30 +1,17 @@
1
- require 'simple_form'
1
+ require 'effective_bootstrap'
2
2
  require 'effective_resources'
3
3
  require 'effective_datatables/engine'
4
4
  require 'effective_datatables/version'
5
5
 
6
6
  module EffectiveDatatables
7
- AVAILABLE_LOCALES = %w(en es nl)
8
-
9
7
  mattr_accessor :authorization_method
10
8
 
11
9
  mattr_accessor :default_length
12
10
  mattr_accessor :html_class
13
- mattr_accessor :save_state
14
-
15
- mattr_accessor :cookie_max_size
16
- mattr_accessor :cookie_domain
17
- mattr_accessor :cookie_tld_length
18
-
19
- mattr_accessor :format_datetime
20
- mattr_accessor :format_date
21
- mattr_accessor :format_time
22
11
 
12
+ mattr_accessor :actions_column # A Hash
23
13
  mattr_accessor :debug
24
14
 
25
- alias_method :max_cookie_size, :cookie_max_size
26
- alias_method :max_cookie_size=, :cookie_max_size=
27
-
28
15
  def self.setup
29
16
  yield self
30
17
  end
@@ -33,7 +20,7 @@ module EffectiveDatatables
33
20
  @_exceptions ||= [Effective::AccessDenied, (CanCan::AccessDenied if defined?(CanCan)), (Pundit::NotAuthorizedError if defined?(Pundit))].compact
34
21
 
35
22
  return !!authorization_method unless authorization_method.respond_to?(:call)
36
- controller = controller.controller if controller.respond_to?(:controller)
23
+ controller = controller.controller if controller.respond_to?(:controller) # Do the right thing with a view
37
24
 
38
25
  begin
39
26
  !!(controller || self).instance_exec((controller || self), action, resource, &authorization_method)
@@ -43,47 +30,7 @@ module EffectiveDatatables
43
30
  end
44
31
 
45
32
  def self.authorize!(controller, action, resource)
46
- raise Effective::AccessDenied.new('Access Denied', action, resource) unless authorized?(controller, action, resource)
47
- end
48
-
49
- def self.find(id, attributes = nil)
50
- id = id.to_s.gsub(/-\d+\z/, '').gsub('-', '/')
51
- klass = (id.classify.safe_constantize || id.classify.pluralize.safe_constantize)
52
- attributes = decrypt(attributes) || {}
53
-
54
- klass.try(:new, **attributes) || raise('unable to find datatable')
55
- end
56
-
57
- # Locale is coming from view. I think it can be dynamic.
58
- # We currently support: en, es, nl
59
- def self.language(locale)
60
- @_languages ||= {}
61
-
62
- locale = :en unless AVAILABLE_LOCALES.include?(locale.to_s)
63
-
64
- @_languages[locale] ||= begin
65
- path = Gem::Specification.find_by_name('effective_datatables').gem_dir + "/app/assets/javascripts/dataTables/locales/#{locale}.lang"
66
- JSON.parse(File.read(path)).to_json
67
- end
68
- end
69
-
70
- def self.encrypt(attributes)
71
- payload = message_encrypter.encrypt_and_sign(attributes)
72
- end
73
-
74
- def self.decrypt(payload)
75
- return unless payload.present?
76
- return payload if payload.kind_of?(Hash)
77
-
78
- attributes = message_encrypter.decrypt_and_verify(payload)
79
-
80
- raise 'invalid decoded inline payload' unless attributes.kind_of?(Hash)
81
-
82
- attributes
83
- end
84
-
85
- def self.message_encrypter
86
- ActiveSupport::MessageEncryptor.new(Rails.application.secret_key_base.to_s.first(32))
33
+ raise Effective::AccessDenied unless authorized?(controller, action, resource)
87
34
  end
88
35
 
89
36
  end
@@ -6,7 +6,7 @@ module EffectiveDatatables
6
6
 
7
7
  # Include Helpers to base application
8
8
  initializer 'effective_datatables.action_controller' do |app|
9
- ActiveSupport.on_load :action_controller_base do
9
+ ActiveSupport.on_load :action_controller do
10
10
  helper EffectiveDatatablesHelper
11
11
  helper EffectiveDatatablesPrivateHelper
12
12
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveDatatables
2
- VERSION = '3.7.7'.freeze
2
+ VERSION = '4.0.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_datatables
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.7
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-08 00:00:00.000000000 Z
11
+ date: 2018-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: effective_resources
42
+ name: effective_bootstrap
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: sass
56
+ name: effective_resources
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: simple_form
70
+ name: sass-rails
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -91,40 +91,33 @@ extra_rdoc_files: []
91
91
  files:
92
92
  - MIT-LICENSE
93
93
  - README.md
94
- - app/assets/images/dataTables/sort_asc.png
95
- - app/assets/images/dataTables/sort_both.png
96
- - app/assets/images/dataTables/sort_desc.png
97
- - app/assets/javascripts/dataTables/buttons/buttons.bootstrap.js
94
+ - app/assets/images/dataTables/sort-down.svg
95
+ - app/assets/images/dataTables/sort-up.svg
96
+ - app/assets/images/dataTables/sort.svg
97
+ - app/assets/javascripts/dataTables/buttons/buttons.bootstrap4.js
98
98
  - app/assets/javascripts/dataTables/buttons/buttons.colVis.js
99
99
  - app/assets/javascripts/dataTables/buttons/buttons.html5.js
100
100
  - app/assets/javascripts/dataTables/buttons/buttons.print.js
101
101
  - app/assets/javascripts/dataTables/buttons/dataTables.buttons.js
102
- - app/assets/javascripts/dataTables/dataTables.bootstrap.js
102
+ - app/assets/javascripts/dataTables/dataTables.bootstrap4.js
103
103
  - app/assets/javascripts/dataTables/jquery.dataTables.js
104
- - app/assets/javascripts/dataTables/locales/en.lang
105
- - app/assets/javascripts/dataTables/locales/es.lang
106
- - app/assets/javascripts/dataTables/locales/nl.lang
107
104
  - app/assets/javascripts/dataTables/responsive/dataTables.responsive.js
108
- - app/assets/javascripts/dataTables/responsive/responsive.bootstrap.js
105
+ - app/assets/javascripts/dataTables/responsive/responsive.bootstrap4.js
109
106
  - app/assets/javascripts/effective_datatables.js
110
107
  - app/assets/javascripts/effective_datatables/bulk_actions.js.coffee
111
108
  - app/assets/javascripts/effective_datatables/charts.js.coffee
112
109
  - app/assets/javascripts/effective_datatables/events.js.coffee
113
110
  - app/assets/javascripts/effective_datatables/filters.js.coffee
114
- - app/assets/javascripts/effective_datatables/flash.js.coffee
115
111
  - app/assets/javascripts/effective_datatables/initialize.js.coffee
116
- - app/assets/javascripts/effective_datatables/inline_crud.js.coffee
117
- - app/assets/javascripts/effective_datatables/overrides.js.coffee
118
- - app/assets/javascripts/effective_datatables/reorder.js.coffee
112
+ - app/assets/javascripts/effective_datatables/overrides.js
119
113
  - app/assets/javascripts/effective_datatables/reset.js.coffee
120
114
  - app/assets/javascripts/effective_datatables/responsive.js.coffee
121
115
  - app/assets/javascripts/vendor/jquery.delayedChange.js
122
116
  - app/assets/javascripts/vendor/jquery.fileDownload.js
123
- - app/assets/stylesheets/dataTables/buttons/buttons.bootstrap.scss
124
- - app/assets/stylesheets/dataTables/dataTables.bootstrap.scss
125
- - app/assets/stylesheets/dataTables/responsive/responsive.bootstrap.scss
117
+ - app/assets/stylesheets/dataTables/buttons/buttons.bootstrap4.css
118
+ - app/assets/stylesheets/dataTables/dataTables.bootstrap4.css
119
+ - app/assets/stylesheets/dataTables/responsive/responsive.bootstrap4.css
126
120
  - app/assets/stylesheets/effective_datatables.scss
127
- - app/assets/stylesheets/effective_datatables/_filters.scss
128
121
  - app/assets/stylesheets/effective_datatables/_overrides.scss
129
122
  - app/controllers/effective/datatables_controller.rb
130
123
  - app/datatables/effective_style_guide_datatable.rb
@@ -157,15 +150,11 @@ files:
157
150
  - app/views/effective/datatables/_chart.html.haml
158
151
  - app/views/effective/datatables/_datatable.html.haml
159
152
  - app/views/effective/datatables/_filters.html.haml
160
- - app/views/effective/datatables/_reorder_column.html.haml
161
153
  - app/views/effective/datatables/_resource_column.html.haml
162
154
  - app/views/effective/datatables/_spacer_template.html
163
155
  - app/views/effective/datatables/index.html.haml
164
156
  - app/views/effective/style_guide/_effective_datatables.html.haml
165
157
  - config/effective_datatables.rb
166
- - config/locales/en.yml
167
- - config/locales/es.yml
168
- - config/locales/nl.yml
169
158
  - config/routes.rb
170
159
  - lib/effective_datatables.rb
171
160
  - lib/effective_datatables/engine.rb
@@ -176,7 +165,7 @@ homepage: https://github.com/code-and-effect/effective_datatables
176
165
  licenses:
177
166
  - MIT
178
167
  metadata: {}
179
- post_install_message:
168
+ post_install_message:
180
169
  rdoc_options: []
181
170
  require_paths:
182
171
  - lib
@@ -191,8 +180,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
180
  - !ruby/object:Gem::Version
192
181
  version: '0'
193
182
  requirements: []
194
- rubygems_version: 3.1.4
195
- signing_key:
183
+ rubyforge_project:
184
+ rubygems_version: 2.4.5.1
185
+ signing_key:
196
186
  specification_version: 4
197
187
  summary: Uniquely powerful server-side searching, sorting and filtering of any ActiveRecord
198
188
  or Array collection as well as post-rendered content displayed as a frontend jQuery