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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b1b74ace7103e51684bda44a1ce6fdde5cfe25562015c6825cbb63afc3e2706
4
- data.tar.gz: 22a1992738b3a78f5e9f3c3cc1f0c2e0e45d7bdeffcf7b20d2cea5842e52d988
3
+ metadata.gz: 108cdf26bc4f923371e65b2a9b9f2a5329e6873cca09ae947060b6937d57bbef
4
+ data.tar.gz: b2af28bc2f01ff06ba271482a0e62a83ee8f9ff904f2e07e3fa8a792223430c3
5
5
  SHA512:
6
- metadata.gz: 4d1ad222a5c2e92c128a180641962f7592972592381f807c5061727da384d767dbc4093246e490cede678ecacc3f9941d2db20e2d7b5d7438f7fc06e59d4424a
7
- data.tar.gz: cdf22047a4e6c4da9d15a7dc285e30b4b2652e5a3394e8be6f61f76d0edb08ade62b5ca7010b61525e27f234f949d019f70038bd76b80087d4a50a55ec765eb6
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
- .as_json(methods: enum_methods, except: keys_to_exclude, include: has_many_include)
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
@@ -1,7 +1,7 @@
1
1
  module Xsdk
2
2
  module Scaffold
3
3
  module Rails
4
- VERSION = "0.1.7"
4
+ VERSION = "0.1.8"
5
5
  end
6
6
  end
7
7
  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.7
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-09 00:00:00.000000000 Z
11
+ date: 2021-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord