xsdk-scaffold-rails 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/xsdk/scaffold/rails/base_datatable.rb +23 -1
- data/lib/xsdk/scaffold/rails/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: 108cdf26bc4f923371e65b2a9b9f2a5329e6873cca09ae947060b6937d57bbef
|
4
|
+
data.tar.gz: b2af28bc2f01ff06ba271482a0e62a83ee8f9ff904f2e07e3fa8a792223430c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 147f2ddd341e232b7bc2892aec51abec222ffaded11d6557385e202c1983e9d8318236edfde503bae09b620b73d0f43b43d15125d1beba954f1e28a525c80556
|
7
|
+
data.tar.gz: 816c60a6133969e2120ff2c417dee9acd1aeba8060d86a952b3c4b3fc72e6551bc7af1b98bf21616d309765f1c9909f9c200e5c7b8538d943cc86f467eae6e18
|
@@ -25,9 +25,13 @@ module Xsdk
|
|
25
25
|
def paginate(data)
|
26
26
|
per_page = @options[:itemsPerPage]
|
27
27
|
page = @options[:page] - 1
|
28
|
+
sort = @options[:sortBy]
|
29
|
+
direction = @options[:sortDesc]
|
30
|
+
order_string = sort.map.with_index { |k, idx| "#{sorting_map[k.to_sym]} #{direction[idx] ? 'DESC' : 'ASC'}" }
|
28
31
|
data.limit(per_page)
|
29
32
|
.offset(page * per_page)
|
30
|
-
.
|
33
|
+
.order(order_string)
|
34
|
+
.as_json(methods: methods + enum_methods, except: keys_to_exclude, include: has_many_include)
|
31
35
|
end
|
32
36
|
|
33
37
|
def keys_to_exclude
|
@@ -179,6 +183,10 @@ module Xsdk
|
|
179
183
|
[]
|
180
184
|
end
|
181
185
|
|
186
|
+
def methods
|
187
|
+
[]
|
188
|
+
end
|
189
|
+
|
182
190
|
def get_table(c)
|
183
191
|
ax = associations.with_indifferent_access
|
184
192
|
if @foreign_keys.key?(c)
|
@@ -254,6 +262,20 @@ module Xsdk
|
|
254
262
|
def associations
|
255
263
|
{}
|
256
264
|
end
|
265
|
+
|
266
|
+
def sorting_map
|
267
|
+
build_headers.map do |h|
|
268
|
+
if h[:type] == 'foreign_key'
|
269
|
+
[h[:value].to_sym, "#{h[:table]}.#{h[:source]}"]
|
270
|
+
elsif h[:type] == 'enum'
|
271
|
+
["#{h[:value]}_text".to_sym, "#{h[:table]}.#{h[:table_value]}"]
|
272
|
+
elsif h[:type].nil? || h[:value] == 'actions'
|
273
|
+
[nil]
|
274
|
+
else
|
275
|
+
[h[:value].to_sym, "#{h[:table]}.#{h[:table_value]}"]
|
276
|
+
end
|
277
|
+
end.filter { |a| a[0] }.to_h
|
278
|
+
end
|
257
279
|
end
|
258
280
|
end
|
259
281
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xsdk-scaffold-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Davide Croci
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-08-
|
11
|
+
date: 2021-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|