effective_datatables 4.3.3 → 4.3.4
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 +4 -4
- data/README.md +4 -0
- data/app/assets/javascripts/effective_datatables/inline_crud.js.coffee +13 -7
- data/app/assets/javascripts/effective_datatables/overrides.js.coffee +0 -9
- data/app/helpers/effective_datatables_private_helper.rb +20 -3
- data/app/views/effective/datatables/_filters.html.haml +1 -3
- data/lib/effective_datatables/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4dabd6230608916ad4260f443412c2b81bb4ec80
|
4
|
+
data.tar.gz: 26a82f35207f348157706794fcb818a1b58e77db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17fd09f4caa9cfd14798fe9744a627e355f4f90504cb40a02943b35155fe25d15a4e7708bfab3d4a167b1acd3a9260ba2d8fa95117566cb085b21679099258de
|
7
|
+
data.tar.gz: b31833cadf5f81ba9e5e7cb69260891fb2498647b872243afd9cec216070ff8c9d40be2da3137b78b06ff60b21f766d2ea081cbc2f6c2dd77e3a10b68868dbaf
|
data/README.md
CHANGED
@@ -545,6 +545,10 @@ actions_col do |post|
|
|
545
545
|
end
|
546
546
|
```
|
547
547
|
|
548
|
+
Any `data-remote` actions will be hijacked and performed as inline ajax by datatables.
|
549
|
+
|
550
|
+
If you'd like to opt-out of this behavior, use `actions_col(inline: false)` or add `data-inline: false` to your action link.
|
551
|
+
|
548
552
|
### length
|
549
553
|
|
550
554
|
Sets the default number of rows per page. Valid lengths are `5`, `10`, `25`, `50`, `100`, `250`, `500`, `:all`
|
@@ -2,10 +2,12 @@
|
|
2
2
|
# This works with EffectiveForm.remote_form which is part of the effective_bootstrap gem.
|
3
3
|
|
4
4
|
# About to do a resource action, or fetch a partial. Show loading.
|
5
|
-
$(document).on 'ajax:beforeSend', '.dataTables_wrapper', (e, xhr, settings) ->
|
5
|
+
$(document).on 'ajax:beforeSend', '.dataTables_wrapper .col-actions', (e, xhr, settings) ->
|
6
6
|
$action = $(e.target)
|
7
7
|
$table = $(e.target).closest('table')
|
8
8
|
|
9
|
+
return true if ('' + $action.data('inline')) == 'false'
|
10
|
+
|
9
11
|
$params = $.param({_datatable_id: $table.attr('id'), _datatable_cookie: $table.data('cookie') })
|
10
12
|
settings.url += (if settings.url.indexOf('?') == -1 then '?' else '&') + $params
|
11
13
|
|
@@ -19,8 +21,10 @@ $(document).on 'ajax:beforeSend', '.dataTables_wrapper', (e, xhr, settings) ->
|
|
19
21
|
true
|
20
22
|
|
21
23
|
# We have either completed the resource action, or fetched the inline form to load.
|
22
|
-
$(document).on 'ajax:success', '.dataTables_wrapper', (
|
23
|
-
$action = $(
|
24
|
+
$(document).on 'ajax:success', '.dataTables_wrapper .col-actions', (event) ->
|
25
|
+
$action = $(event.target)
|
26
|
+
|
27
|
+
return true if ('' + $action.data('inline')) == 'false'
|
24
28
|
|
25
29
|
if ($action.data('method') || 'get') == 'get'
|
26
30
|
if $action.closest('tr').parent().prop('tagName') == 'THEAD' then afterNew($action) else afterEdit($action)
|
@@ -32,8 +36,10 @@ $(document).on 'ajax:success', '.dataTables_wrapper', (e) ->
|
|
32
36
|
true
|
33
37
|
|
34
38
|
# The inline form has been submitted successfully
|
35
|
-
$(document).on '.dataTables_wrapper effective-form:success', (event, flash) ->
|
36
|
-
$
|
39
|
+
$(document).on '.dataTables_wrapper .col-inline-form effective-form:success', (event, flash) ->
|
40
|
+
$action = $(event.target)
|
41
|
+
|
42
|
+
$tr = $action.closest('tr')
|
37
43
|
$table = $tr.closest('table')
|
38
44
|
|
39
45
|
if $tr.hasClass('effective-datatables-new-resource')
|
@@ -48,8 +54,8 @@ $(document).on '.dataTables_wrapper effective-form:success', (event, flash) ->
|
|
48
54
|
$tr.fadeOut('slow')
|
49
55
|
|
50
56
|
# There was an error completing something
|
51
|
-
$(document).on 'ajax:error', '.dataTables_wrapper', (
|
52
|
-
$action = $(
|
57
|
+
$(document).on 'ajax:error', '.dataTables_wrapper .col-inline-form', (event) ->
|
58
|
+
$action = $(event.target)
|
53
59
|
$table = $action.closest('table')
|
54
60
|
$table.DataTable().flash('Error: unable to ' + ($action.attr('title') || 'complete action')).draw()
|
55
61
|
|
@@ -28,13 +28,4 @@ flash = (message) ->
|
|
28
28
|
|
29
29
|
return @
|
30
30
|
|
31
|
-
turboDestroy = ->
|
32
|
-
@iterator('table', (settings) ->
|
33
|
-
$(window).off('.DT-' + settings.sInstance)
|
34
|
-
|
35
|
-
index = $.inArray(settings, $.fn.DataTable.settings)
|
36
|
-
$.fn.DataTable.settings.splice(index, 1) if index > -1
|
37
|
-
)
|
38
|
-
|
39
31
|
$.fn.DataTable.Api.register('flash()', flash);
|
40
|
-
$.fn.DataTable.Api.register('turboDestroy()', turboDestroy);
|
@@ -67,6 +67,7 @@ module EffectiveDatatablesPrivateHelper
|
|
67
67
|
)
|
68
68
|
when :select, :boolean
|
69
69
|
options[:input_js] = (options[:input_js] || {}).reverse_merge(placeholder: '')
|
70
|
+
|
70
71
|
form.select name, collection, options
|
71
72
|
when :bulk_actions
|
72
73
|
options[:data]['role'] = 'bulk-actions'
|
@@ -95,12 +96,12 @@ module EffectiveDatatablesPrivateHelper
|
|
95
96
|
value = datatable.state[:filter][name]
|
96
97
|
|
97
98
|
options = opts.except(:parse).merge(
|
98
|
-
|
99
|
+
autocomplete: 'off',
|
99
100
|
feedback: false,
|
100
101
|
label: false,
|
102
|
+
placeholder: placeholder,
|
101
103
|
value: value,
|
102
|
-
wrapper: { class: 'form-group col-auto'}
|
103
|
-
autocomplete: 'off'
|
104
|
+
wrapper: { class: 'form-group col-auto'}
|
104
105
|
)
|
105
106
|
|
106
107
|
options[:name] = '' unless datatable._filters_form_required?
|
@@ -120,6 +121,22 @@ module EffectiveDatatablesPrivateHelper
|
|
120
121
|
end
|
121
122
|
end
|
122
123
|
|
124
|
+
def datatable_scope_tag(form, datatable, opts = {})
|
125
|
+
collection = datatable._scopes.map { |name, opts| [opts[:label], name] }
|
126
|
+
|
127
|
+
options = {
|
128
|
+
autocomplete: 'off',
|
129
|
+
buttons: true,
|
130
|
+
checked: datatable.state[:scope],
|
131
|
+
feedback: false,
|
132
|
+
label: false,
|
133
|
+
required: false,
|
134
|
+
wrapper: { class: 'form-group col-auto'}
|
135
|
+
}.merge(opts)
|
136
|
+
|
137
|
+
form.radios :scope, collection, options
|
138
|
+
end
|
139
|
+
|
123
140
|
def render_datatable_charts(datatable)
|
124
141
|
raise 'expected datatable to be present' unless datatable
|
125
142
|
|
@@ -2,9 +2,7 @@
|
|
2
2
|
= effective_form_with(scope: :filters, url: (datatable._form[:url] || '#'), method: datatable._form[:verb]) do |form|
|
3
3
|
.form-row.align-items-center
|
4
4
|
- if datatable._scopes.present?
|
5
|
-
= form
|
6
|
-
label: false, required: false, checked: datatable.state[:scope], buttons: true,
|
7
|
-
wrapper: { class: 'form-group col-auto' }
|
5
|
+
= datatable_scope_tag(form, datatable)
|
8
6
|
|
9
7
|
- datatable._filters.each do |name, opts|
|
10
8
|
= datatable_filter_tag(form, datatable, name, opts)
|
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: 4.3.
|
4
|
+
version: 4.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|