effective_datatables 1.0.3 → 1.1.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/README.md +3 -4
- data/app/assets/javascripts/effective_datatables/initialize.js.coffee +6 -11
- data/app/helpers/effective_datatables_helper.rb +8 -0
- data/app/models/effective/datatable.rb +2 -0
- data/app/views/effective/datatables/_datatable.html.haml +1 -1
- 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: 21f89b360a1c91b980639a253600ceab7b73c8cc
|
4
|
+
data.tar.gz: 10a7ee6dc1d418d4cfec6a49eccd56d1484faed8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: daca44eec31c3812079ea6526a5abe695c90d8a68a979cbd05115f9e6f45e8e0cac48d821ea8730d63e38799c98b2826f3ca4e71aa65a825bd126be8e49abb99
|
7
|
+
data.tar.gz: b9da26aebf979f57d86d5af428400a74589101d8e8f8ae9df805f3cbe882cb773a71b9ec153b633d2e445bb47acf6aff0550c6a798f01ef5ba1c3f637c48683a
|
data/README.md
CHANGED
@@ -136,9 +136,7 @@ module Effective
|
|
136
136
|
|
137
137
|
table_column :id, :visible => false
|
138
138
|
|
139
|
-
table_column :created_at, :width => '25%'
|
140
|
-
post.created_at.strftime("%Y-%m-%d %H:%M:%S")
|
141
|
-
end
|
139
|
+
table_column :created_at, :width => '25%'
|
142
140
|
|
143
141
|
table_column :updated_at, :proc => Proc.new { |post| nicetime(post.updated_at) } # just a standard helper as defined in helpers/application_helper.rb
|
144
142
|
|
@@ -156,7 +154,7 @@ module Effective
|
|
156
154
|
end
|
157
155
|
end
|
158
156
|
|
159
|
-
table_column :title, :label => 'Post Title'
|
157
|
+
table_column :title, :label => 'Post Title', :class => 'col-title'
|
160
158
|
table_column :actions, :sortable => false, :filter => false, :partial => '/posts/actions'
|
161
159
|
|
162
160
|
def collection
|
@@ -265,6 +263,7 @@ The following options control the display behaviour of the column:
|
|
265
263
|
:sortable => true|false # Allow sorting of this column. Otherwise the up/down arrows on the frontend will be disabled.
|
266
264
|
:visible => true|false # Hide this column at startup. Column visbility can be changed on the frontend. By default, hidden column filter terms are ignored.
|
267
265
|
:width => '100%'|'100px' # Set the width of this column. Can be set on one, all or some of the columns. If using percentages, should never add upto more than 100%
|
266
|
+
:class => 'col-example' # Adds an html class to the column's TH and all TD elements. Add more than one class with 'example col-example something'
|
268
267
|
```
|
269
268
|
|
270
269
|
### Filtering Options
|
@@ -3,6 +3,11 @@ initializeDataTables = ->
|
|
3
3
|
unless $.fn.DataTable.fnIsDataTable(this)
|
4
4
|
datatable = $(this)
|
5
5
|
|
6
|
+
aoColumnDefs = [
|
7
|
+
{ bSortable: false, aTargets: datatable.data('non-sortable') },
|
8
|
+
{ bVisible: false, aTargets: datatable.data('non-visible') }
|
9
|
+
].concat(datatable.data('column-classes') || [])
|
10
|
+
|
6
11
|
init_options =
|
7
12
|
bServerSide: true
|
8
13
|
bProcessing: true
|
@@ -17,17 +22,7 @@ initializeDataTables = ->
|
|
17
22
|
table = this.DataTable()
|
18
23
|
table.columns().flatten().each (index) ->
|
19
24
|
aoData.push({'name': "sVisible_#{index}", 'value': table.column(index).visible()})
|
20
|
-
aoColumnDefs:
|
21
|
-
[
|
22
|
-
{
|
23
|
-
bSortable: false,
|
24
|
-
aTargets: datatable.data('non-sortable')
|
25
|
-
},
|
26
|
-
{
|
27
|
-
bVisible: false,
|
28
|
-
aTargets: datatable.data('non-visible')
|
29
|
-
}
|
30
|
-
]
|
25
|
+
aoColumnDefs: aoColumnDefs
|
31
26
|
aoColumns: datatable.data('widths')
|
32
27
|
oTableTools:
|
33
28
|
sSwfPath: '/assets/effective_datatables/copy_csv_xls_pdf.swf',
|
@@ -62,6 +62,14 @@ module EffectiveDatatablesHelper
|
|
62
62
|
datatable.table_columns.values.map { |options| {'sWidth' => options[:width]} if options[:width] }.to_json()
|
63
63
|
end
|
64
64
|
|
65
|
+
def datatable_column_classes(datatable)
|
66
|
+
[].tap do |classes|
|
67
|
+
datatable.table_columns.values.each_with_index do |options, x|
|
68
|
+
classes << {:className => options[:class], :targets => [x]} if options[:class].present?
|
69
|
+
end
|
70
|
+
end.to_json()
|
71
|
+
end
|
72
|
+
|
65
73
|
def datatables_admin_path?
|
66
74
|
(attributes[:admin_path] || request.referer.downcase.include?('/admin/')) rescue false
|
67
75
|
end
|
@@ -315,6 +315,8 @@ module Effective
|
|
315
315
|
cols[name][:width] ||= nil
|
316
316
|
cols[name][:sortable] = true if cols[name][:sortable] == nil
|
317
317
|
cols[name][:type] ||= (belong_tos.key?(name) ? :belongs_to : (sql_column.try(:type).presence || :string))
|
318
|
+
cols[name][:class] = "col-#{cols[name][:type]} #{cols[name][:class]}".strip
|
319
|
+
cols[name][:class] << ' col-actions' if name == 'actions'
|
318
320
|
|
319
321
|
if name == 'id' && collection.respond_to?(:deobfuscate)
|
320
322
|
cols[name][:sortable] = false
|
@@ -1,4 +1,4 @@
|
|
1
|
-
%table.effective-datatable{:id => "#{datatable.to_param}-table", :class => ('table ' + table_class.to_s), :data => {'effective-datatables-table' => style, 'source' => effective_datatables.datatable_path(datatable, {:format => 'json'}.merge(:attributes => datatable.attributes)), 'filter' => datatable_filter(datatable, filterable), 'non-sortable' => datatable_non_sortable(datatable, sortable), 'non-visible' => datatable_non_visible(datatable), 'widths' => datatable_widths(datatable), 'default-order' => datatable_default_order(datatable)}}
|
1
|
+
%table.effective-datatable{:id => "#{datatable.to_param}-table", :class => ('table ' + table_class.to_s), :data => {'effective-datatables-table' => style, 'source' => effective_datatables.datatable_path(datatable, {:format => 'json'}.merge(:attributes => datatable.attributes)), 'filter' => datatable_filter(datatable, filterable), 'non-sortable' => datatable_non_sortable(datatable, sortable), 'non-visible' => datatable_non_visible(datatable), 'widths' => datatable_widths(datatable), 'default-order' => datatable_default_order(datatable), 'column-classes' => datatable_column_classes(datatable)}}
|
2
2
|
%thead
|
3
3
|
- max_depth = datatable.table_columns.map { |_, opts| opts[:th][:depth].to_i rescue 0 }.max
|
4
4
|
- [*0..max_depth].each do |depth|
|
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: 1.0
|
4
|
+
version: 1.1.0
|
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:
|
11
|
+
date: 2015-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|