effective_datatables 4.4.6 → 4.5.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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/dataTables/locales/en.lang +33 -0
- data/app/assets/javascripts/dataTables/locales/es.lang +36 -0
- data/app/assets/javascripts/dataTables/locales/nl.lang +30 -0
- data/app/assets/javascripts/dataTables/locales/renamer.rb +12 -0
- data/app/assets/javascripts/effective_datatables/initialize.js.coffee +1 -2
- data/app/helpers/effective_datatables_helper.rb +2 -2
- data/app/helpers/effective_datatables_private_helper.rb +6 -6
- data/app/models/effective/effective_datatable/format.rb +1 -4
- data/app/views/effective/datatables/_filters.html.haml +2 -2
- data/config/locales/en.yml +12 -0
- data/config/locales/es.yml +12 -0
- data/config/locales/nl.yml +12 -0
- data/lib/effective_datatables.rb +15 -0
- data/lib/effective_datatables/version.rb +1 -1
- metadata +8 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a53e65ef62ff9d0a782a0080f6a9deadd22b609
|
4
|
+
data.tar.gz: ac4e5578e12e9bef11b5093bff3fee1c7443a67d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 039ca9d10af887b4949882b743cfc60f76e4247374595f80400c2b43850892be2149d51b0fc66e357029006100d8f9734e347840bd61d76c3eaaa142092e56cf
|
7
|
+
data.tar.gz: f7f922a6ec951c3f20b83c1b478f5cc580136c35dfc9d9c8a06fb4dd4947a2f7f25da6525c6fd87e2ff673bb649f3f125a594798daa8231e1348042cb4d25a0f
|
@@ -0,0 +1,33 @@
|
|
1
|
+
/**
|
2
|
+
* English - this is the default DataTables ships with
|
3
|
+
* @name English
|
4
|
+
* @anchor English
|
5
|
+
* @author <a href="http://www.sprymedia.co.uk/">Allan Jardine</a>
|
6
|
+
*/
|
7
|
+
|
8
|
+
{
|
9
|
+
"sEmptyTable": "No data available in table",
|
10
|
+
"sInfo": "Showing _START_ to _END_ of _TOTAL_ entries",
|
11
|
+
"sInfoEmpty": "Showing 0 to 0 of 0 entries",
|
12
|
+
"sInfoFiltered": "(filtered from _MAX_ total entries)",
|
13
|
+
"sInfoPostFix": "",
|
14
|
+
"sInfoThousands": ",",
|
15
|
+
"sLengthMenu": " with _MENU_ per page",
|
16
|
+
"sLoadingRecords": "Loading...",
|
17
|
+
"sProcessing": "Processing...",
|
18
|
+
"sSearch": "Search:",
|
19
|
+
"sZeroRecords": "No matching records found",
|
20
|
+
"oPaginate": {
|
21
|
+
"sFirst": "First",
|
22
|
+
"sLast": "Last",
|
23
|
+
"sNext": "Next",
|
24
|
+
"sPrevious": "Previous"
|
25
|
+
},
|
26
|
+
"oAria": {
|
27
|
+
"sSortAscending": ": activate to sort column ascending",
|
28
|
+
"sSortDescending": ": activate to sort column descending"
|
29
|
+
},
|
30
|
+
"buttons": {
|
31
|
+
"colvis": "Show / Hide"
|
32
|
+
}
|
33
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
/**
|
2
|
+
* Spanish translation
|
3
|
+
* @name Spanish
|
4
|
+
* @anchor Spanish
|
5
|
+
* @author Giovanni Ariza, Aristobulo Gomez and Roberto Poo
|
6
|
+
*/
|
7
|
+
|
8
|
+
{
|
9
|
+
"sProcessing": "Procesando...",
|
10
|
+
"sLengthMenu": "Mostrar _MENU_ registros",
|
11
|
+
"sZeroRecords": "No se encontraron resultados",
|
12
|
+
"sEmptyTable": "Ningún dato disponible en esta tabla =(",
|
13
|
+
"sInfo": "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
|
14
|
+
"sInfoEmpty": "Mostrando registros del 0 al 0 de un total de 0 registros",
|
15
|
+
"sInfoFiltered": "(filtrado de un total de _MAX_ registros)",
|
16
|
+
"sLengthMenu": " con _MENU_ por página",
|
17
|
+
"sInfoPostFix": "",
|
18
|
+
"sSearch": "Buscar:",
|
19
|
+
"sUrl": "",
|
20
|
+
"sInfoThousands": ",",
|
21
|
+
"sLoadingRecords": "Cargando...",
|
22
|
+
"oPaginate": {
|
23
|
+
"sFirst": "Primero",
|
24
|
+
"sLast": "Último",
|
25
|
+
"sNext": "Siguiente",
|
26
|
+
"sPrevious": "Anterior"
|
27
|
+
},
|
28
|
+
"oAria": {
|
29
|
+
"sSortAscending": ": Activar para ordenar la columna de manera ascendente",
|
30
|
+
"sSortDescending": ": Activar para ordenar la columna de manera descendente"
|
31
|
+
},
|
32
|
+
"buttons": {
|
33
|
+
"copy": "Copiar",
|
34
|
+
"colvis": "Mostrar/Ocultar"
|
35
|
+
}
|
36
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
/**
|
2
|
+
* Dutch translation
|
3
|
+
* @name Dutch
|
4
|
+
* @anchor Dutch
|
5
|
+
* @author <a href="http://www.blikgooien.nl/">Erwin Kerk</a> and <i>ashwin</i>
|
6
|
+
*/
|
7
|
+
|
8
|
+
{
|
9
|
+
"sProcessing": "Bezig...",
|
10
|
+
"sLengthMenu": "_MENU_ resultaten weergeven",
|
11
|
+
"sZeroRecords": "Geen resultaten gevonden",
|
12
|
+
"sInfo": "_START_ tot _END_ van _TOTAL_ resultaten",
|
13
|
+
"sInfoEmpty": "Geen resultaten om weer te geven",
|
14
|
+
"sInfoFiltered": " (gefilterd uit _MAX_ resultaten)",
|
15
|
+
"sInfoPostFix": "",
|
16
|
+
"sSearch": "Zoeken:",
|
17
|
+
"sEmptyTable": "Geen resultaten aanwezig in de tabel",
|
18
|
+
"sInfoThousands": ".",
|
19
|
+
"sLoadingRecords": "Een moment geduld aub - bezig met laden...",
|
20
|
+
"oPaginate": {
|
21
|
+
"sFirst": "Eerste",
|
22
|
+
"sLast": "Laatste",
|
23
|
+
"sNext": "Volgende",
|
24
|
+
"sPrevious": "Vorige"
|
25
|
+
},
|
26
|
+
"oAria": {
|
27
|
+
"sSortAscending": ": activeer om kolom oplopend te sorteren",
|
28
|
+
"sSortDescending": ": activeer om kolom aflopend te sorteren"
|
29
|
+
}
|
30
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Get the translations from:
|
2
|
+
# https://github.com/DataTables/Plugins/tree/master/i18n
|
3
|
+
|
4
|
+
require 'i18n_data'
|
5
|
+
|
6
|
+
(Dir['*'] - ['renamer.rb']).each do |f|
|
7
|
+
code = I18nData.language_code(File.basename(f, ".*"))
|
8
|
+
|
9
|
+
next if code.nil?
|
10
|
+
|
11
|
+
File.rename(f, code.downcase + '.lang')
|
12
|
+
end
|
@@ -14,7 +14,6 @@ initializeDataTables = (target) ->
|
|
14
14
|
buttons: [
|
15
15
|
{
|
16
16
|
extend: 'colvis',
|
17
|
-
text: 'Show / Hide',
|
18
17
|
postfixButtons: [
|
19
18
|
{ extend: 'colvisGroup', text: 'Show all', show: ':hidden', className: 'buttons-colvisGroup-first'},
|
20
19
|
{ extend: 'colvisGroup', text: 'Show none', hide: ':visible'}
|
@@ -49,7 +48,7 @@ initializeDataTables = (target) ->
|
|
49
48
|
deferRender: true
|
50
49
|
displayStart: datatable.data('display-start')
|
51
50
|
iDisplayLength: datatable.data('display-length')
|
52
|
-
language:
|
51
|
+
language: datatable.data('language')
|
53
52
|
lengthMenu: [[5, 10, 25, 50, 100, 250, 500, 9999999], ['5', '10', '25', '50', '100', '250', '500', 'All']]
|
54
53
|
order: datatable.data('display-order')
|
55
54
|
processing: true
|
@@ -1,6 +1,5 @@
|
|
1
1
|
# These are expected to be called by a developer. They are part of the datatables DSL.
|
2
2
|
module EffectiveDatatablesHelper
|
3
|
-
|
4
3
|
def render_datatable(datatable, input_js: {}, buttons: true, charts: true, entries: true, filters: true, inline: false, pagination: true, search: true, simple: false, sort: true)
|
5
4
|
raise 'expected datatable to be present' unless datatable
|
6
5
|
raise 'expected input_js to be a Hash' unless input_js.kind_of?(Hash)
|
@@ -50,6 +49,7 @@ module EffectiveDatatablesHelper
|
|
50
49
|
'display-records' => datatable.to_json[:recordsFiltered],
|
51
50
|
'display-start' => datatable.display_start,
|
52
51
|
'inline' => inline.to_s,
|
52
|
+
'language' => EffectiveDatatables.language(I18n.locale),
|
53
53
|
'options' => input_js.to_json,
|
54
54
|
'reset' => (datatable_reset(datatable) if search),
|
55
55
|
'reorder' => datatable_reorder(datatable),
|
@@ -57,7 +57,7 @@ module EffectiveDatatablesHelper
|
|
57
57
|
'simple' => simple.to_s,
|
58
58
|
'spinner' => icon('spinner'), # effective_bootstrap
|
59
59
|
'source' => effective_datatables.datatable_path(datatable, {format: 'json'}),
|
60
|
-
'total-records' => datatable.to_json[:recordsTotal]
|
60
|
+
'total-records' => datatable.to_json[:recordsTotal],
|
61
61
|
}
|
62
62
|
}
|
63
63
|
|
@@ -30,29 +30,29 @@ module EffectiveDatatablesPrivateHelper
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def datatable_reset(datatable)
|
33
|
-
link_to(content_tag(:span, '
|
33
|
+
link_to(content_tag(:span, t('effective_datatables.reset')), '#', class: 'btn btn-link btn-sm buttons-reset-search')
|
34
34
|
end
|
35
35
|
|
36
36
|
def datatable_reorder(datatable)
|
37
37
|
return unless datatable.reorder? && EffectiveDatatables.authorized?(self, :update, datatable.collection_class)
|
38
|
-
link_to(content_tag(:span, '
|
38
|
+
link_to(content_tag(:span, t('effective_datatables.reorder')), '#', class: 'btn btn-link btn-sm buttons-reorder', disabled: true)
|
39
39
|
end
|
40
40
|
|
41
41
|
def datatable_new_resource_button(datatable, name, column)
|
42
42
|
return unless column[:inline] && (column[:actions][:new] != false) && (datatable.resource.actions.include?(:new) rescue false)
|
43
43
|
|
44
|
-
actions = {'
|
44
|
+
actions = {t('effective_datatables.new') => { action: :new, class: ['btn', column[:btn_class].presence].compact.join(' '), 'data-remote': true } }
|
45
45
|
render_resource_actions(datatable.resource.klass, actions: actions, effective_resource: datatable.resource) # Will only work if permitted
|
46
46
|
end
|
47
47
|
|
48
48
|
def datatable_label_tag(datatable, name, opts)
|
49
49
|
case opts[:as]
|
50
50
|
when :actions
|
51
|
-
content_tag(:span, '
|
51
|
+
content_tag(:span, t('effective_datatables.actions'), style: 'display: none;')
|
52
52
|
when :bulk_actions
|
53
|
-
content_tag(:span, '
|
53
|
+
content_tag(:span, t('effective_datatables.bulk_actions'), style: 'display: none;')
|
54
54
|
when :reorder
|
55
|
-
content_tag(:span, '
|
55
|
+
content_tag(:span, t('effective_datatables.reorder'), style: 'display: none;')
|
56
56
|
else
|
57
57
|
content_tag(:span, opts[:label].presence)
|
58
58
|
end
|
@@ -73,10 +73,7 @@ module Effective
|
|
73
73
|
|
74
74
|
(view.render_resource_actions(value, atts) || '')
|
75
75
|
when :boolean
|
76
|
-
|
77
|
-
when true ; 'Yes'
|
78
|
-
when false ; 'No'
|
79
|
-
end
|
76
|
+
view.t("effective_datatables.boolean_#{value}")
|
80
77
|
when :currency
|
81
78
|
view.number_to_currency(value)
|
82
79
|
when :date
|
@@ -9,6 +9,6 @@
|
|
9
9
|
|
10
10
|
.form-group.col-auto
|
11
11
|
- if datatable._filters_form_required?
|
12
|
-
= form.save '
|
12
|
+
= form.save t('effective_datatables.apply'), 'data-disable-with': t('effective_datatables.applying')
|
13
13
|
- else
|
14
|
-
= link_to '
|
14
|
+
= link_to t('effective_datatables.apply'), '#', class: 'btn btn-primary btn-effective-datatables-filters', 'data-apply-effective-datatables-filters': true
|
data/lib/effective_datatables.rb
CHANGED
@@ -4,6 +4,8 @@ require 'effective_datatables/engine'
|
|
4
4
|
require 'effective_datatables/version'
|
5
5
|
|
6
6
|
module EffectiveDatatables
|
7
|
+
AVAILABLE_LOCALES = %w(en es nl)
|
8
|
+
|
7
9
|
mattr_accessor :authorization_method
|
8
10
|
|
9
11
|
mattr_accessor :default_length
|
@@ -47,4 +49,17 @@ module EffectiveDatatables
|
|
47
49
|
klass.try(:new) || raise('unable to find datatable')
|
48
50
|
end
|
49
51
|
|
52
|
+
# Locale is coming from view. I think it can be dynamic.
|
53
|
+
# We currently support: en, es, nl
|
54
|
+
def self.language(locale)
|
55
|
+
@_languages ||= {}
|
56
|
+
|
57
|
+
locale = :en unless AVAILABLE_LOCALES.include?(locale.to_s)
|
58
|
+
|
59
|
+
@_languages[locale] ||= begin
|
60
|
+
path = Gem::Specification.find_by_name('effective_datatables').gem_dir + "/app/assets/javascripts/dataTables/locales/#{locale}.lang"
|
61
|
+
JSON.parse(File.read(path)).to_json
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
50
65
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_datatables
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
@@ -101,6 +101,10 @@ files:
|
|
101
101
|
- app/assets/javascripts/dataTables/buttons/dataTables.buttons.js
|
102
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
|
+
- app/assets/javascripts/dataTables/locales/renamer.rb
|
104
108
|
- app/assets/javascripts/dataTables/responsive/dataTables.responsive.js
|
105
109
|
- app/assets/javascripts/dataTables/responsive/responsive.bootstrap4.js
|
106
110
|
- app/assets/javascripts/dataTables/rowReorder/dataTables.rowReorder.js
|
@@ -161,6 +165,9 @@ files:
|
|
161
165
|
- app/views/effective/datatables/index.html.haml
|
162
166
|
- app/views/effective/style_guide/_effective_datatables.html.haml
|
163
167
|
- config/effective_datatables.rb
|
168
|
+
- config/locales/en.yml
|
169
|
+
- config/locales/es.yml
|
170
|
+
- config/locales/nl.yml
|
164
171
|
- config/routes.rb
|
165
172
|
- lib/effective_datatables.rb
|
166
173
|
- lib/effective_datatables/engine.rb
|