trk_datatables 0.2.3 → 0.2.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/Gemfile.lock +1 -1
- data/README.md +38 -0
- data/lib/trk_datatables/column_key_options.rb +7 -2
- data/lib/trk_datatables/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94acc0f23e22979cbdfbbd78356012328d0da999b00706bee6b8feb28e98c7bb
|
4
|
+
data.tar.gz: 458f2c1fdb9400faf491b494d5866b17397643464431bf8e6a4e115211cbbaca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b48507c0815c0ab7946eb4fd770cdd317d5fceca8845c1f007556b627cfc5f77d5816497ed2825d1dce4974aa530def7bd455441e2f785131a6cd11fb1281614
|
7
|
+
data.tar.gz: 609e99cc22a0a195f3903af22f214d9ce8d6e5ffbf221862844389d3af3f0e90c30e82f66ad830d808bf97023f146655d2df55d76638033a2e4c3b733b0ab6e0
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -18,6 +18,10 @@ you can get something like
|
|
18
18
|
|
19
19
|

|
20
20
|
|
21
|
+
Currenlty it supports:
|
22
|
+
* ActiveRecord
|
23
|
+
* Neo4j
|
24
|
+
|
21
25
|
## Table of Contents
|
22
26
|
<!--ts-->
|
23
27
|
* [Trk Datatables](#trk-datatables)
|
@@ -502,10 +506,14 @@ class MostLikedPostsDatatable < TrkDatatables::ActiveRecord
|
|
502
506
|
))
|
503
507
|
end
|
504
508
|
|
509
|
+
# This is used for filtering so you can move this to main query if
|
510
|
+
# you have { search: false }
|
505
511
|
def title_and_body
|
506
512
|
"concat(posts.title, ' ', posts.body)"
|
507
513
|
end
|
508
514
|
|
515
|
+
# This is used for filtering so you can move this to main query if
|
516
|
+
# you have { search: false }
|
509
517
|
def comments_count
|
510
518
|
<<~SQL
|
511
519
|
(SELECT COUNT(*) FROM comments
|
@@ -760,6 +768,36 @@ end
|
|
760
768
|
|
761
769
|
```
|
762
770
|
|
771
|
+
## Neo4j
|
772
|
+
|
773
|
+
User `.as(:users)` so we know which node us used
|
774
|
+
|
775
|
+
```
|
776
|
+
class UsersDatatable < TrkDatatables::Neo4j
|
777
|
+
def columns
|
778
|
+
{
|
779
|
+
'users.email': {},
|
780
|
+
'users.created_at': {},
|
781
|
+
}
|
782
|
+
end
|
783
|
+
|
784
|
+
def all_items
|
785
|
+
User
|
786
|
+
.as(:users)
|
787
|
+
.with_associations(moves: { from_group: [:location], to_groups: [:location] })
|
788
|
+
end
|
789
|
+
|
790
|
+
def rows(filtered)
|
791
|
+
filtered.map do |user|
|
792
|
+
[
|
793
|
+
@view.link_to(user.email, @view.admin_user_path(user)),
|
794
|
+
user.created_at.to_s(:long),
|
795
|
+
]
|
796
|
+
end
|
797
|
+
end
|
798
|
+
end
|
799
|
+
```
|
800
|
+
|
763
801
|
## Alternatives
|
764
802
|
|
765
803
|
There are alternatives, for example:
|
@@ -12,6 +12,9 @@ module TrkDatatables
|
|
12
12
|
end
|
13
13
|
class StringCalculatedInDb < CalculatedInDb; end
|
14
14
|
class IntegerCalculatedInDb < CalculatedInDb; end
|
15
|
+
class DateCalculatedInDb < CalculatedInDb; end
|
16
|
+
class DatetimeCalculatedInDb < CalculatedInDb; end
|
17
|
+
class BooleanCalculatedInDb < CalculatedInDb; end
|
15
18
|
|
16
19
|
class ColumnKeyOptions
|
17
20
|
include Enumerable
|
@@ -107,7 +110,7 @@ module TrkDatatables
|
|
107
110
|
# in calculated columns table_name is used only to determine type
|
108
111
|
column_key = column_name
|
109
112
|
elsif table_name.present? && column_name.nil?
|
110
|
-
raise Error, 'Unless table name ends with
|
113
|
+
raise Error, 'Unless table name ends with _calculated_in_db, column key needs to have one dot for example: posts.name'
|
111
114
|
end
|
112
115
|
|
113
116
|
if table_name.blank?
|
@@ -150,6 +153,8 @@ module TrkDatatables
|
|
150
153
|
end
|
151
154
|
|
152
155
|
def _set_global_search_cols(global_search_cols)
|
156
|
+
raise Error, 'global_search_cols should be array, for example %w[users.name]' unless global_search_cols.is_a? Array
|
157
|
+
|
153
158
|
@global_search_cols = global_search_cols.each_with_object([]) do |column_key, arr|
|
154
159
|
table_name, column_name = column_key.to_s.split '.'
|
155
160
|
table_class = _determine_table_class table_name
|
@@ -191,7 +196,7 @@ module TrkDatatables
|
|
191
196
|
end
|
192
197
|
|
193
198
|
def _determine_column_name(table_class, column_name)
|
194
|
-
return column_name.
|
199
|
+
return column_name.titleize if table_class.blank?
|
195
200
|
|
196
201
|
# maybe we should check if human_attribute_name exists
|
197
202
|
table_class.human_attribute_name column_name
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trk_datatables
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dusan Orlovic
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|