motor-admin 0.1.40 → 0.1.41
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/motor.rb +1 -1
- data/lib/motor/active_record_utils/defined_scopes_extension.rb +1 -1
- data/lib/motor/api_query/apply_scope.rb +12 -5
- data/lib/motor/build_schema/find_display_column.rb +4 -4
- data/lib/motor/build_schema/load_from_rails.rb +18 -9
- data/lib/motor/configs/build_configs_hash.rb +2 -2
- data/lib/motor/configs/sync_from_hash.rb +2 -0
- data/lib/motor/version.rb +1 -1
- data/ui/dist/{main-57d82791202293600221.css.gz → main-0ef3be65da8d3b0dbabb.css.gz} +0 -0
- data/ui/dist/main-0ef3be65da8d3b0dbabb.js.gz +0 -0
- data/ui/dist/manifest.json +5 -5
- metadata +4 -4
- data/ui/dist/main-57d82791202293600221.js.gz +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e199bcfee455dceb3c76240eedc692aa869143ebc5521b3b1c7c6ebacc0ff7ec
|
4
|
+
data.tar.gz: 979bd32b1670d8b455a84027979b6e7274ebe5805424382b04fb25ae2cc761d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1dfc0454884759ce1d2ccb9d71acb083200465e5bc153ab4f0d4dc69492ac5d9d82e3b5525af1e6a332e4152073aa7d072c8f2031ca80469964a2976892b749b
|
7
|
+
data.tar.gz: 311d119be7294aa3da85619543fa7a502be9a602ef72feaf524d263ead9fd10e48fd0c29ae5ad01874d7bb4178eed6173471acdf00b1a824734b098e8bd4e82b
|
data/lib/motor.rb
CHANGED
@@ -53,6 +53,7 @@ end
|
|
53
53
|
require 'motor/version'
|
54
54
|
require 'motor/admin'
|
55
55
|
require 'motor/assets'
|
56
|
+
require 'motor/active_record_utils'
|
56
57
|
require 'motor/build_schema'
|
57
58
|
require 'motor/api_query'
|
58
59
|
require 'motor/tags'
|
@@ -62,6 +63,5 @@ require 'motor/dashboards'
|
|
62
63
|
require 'motor/forms'
|
63
64
|
require 'motor/alerts'
|
64
65
|
require 'motor/hash_serializer'
|
65
|
-
require 'motor/active_record_utils'
|
66
66
|
require 'motor/net_http_utils'
|
67
67
|
require 'motor/railtie'
|
@@ -13,13 +13,20 @@ module Motor
|
|
13
13
|
if rel.klass.defined_scopes.include?(scope_symbol)
|
14
14
|
rel.public_send(scope_symbol)
|
15
15
|
else
|
16
|
-
|
17
|
-
|
16
|
+
apply_filter_scope(rel, scope)
|
17
|
+
end
|
18
|
+
end
|
18
19
|
|
19
|
-
|
20
|
+
def apply_filter_scope(rel, scope)
|
21
|
+
configs = Motor::Resource.find_by_name(rel.klass.name.underscore)
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
+
return rel unless configs
|
24
|
+
|
25
|
+
scope_configs = configs.preferences[:scopes].find { |s| s[:name] == scope }
|
26
|
+
|
27
|
+
return rel unless scope_configs
|
28
|
+
|
29
|
+
ApiQuery::Filter.call(rel, scope_configs[:preferences][:filter])
|
23
30
|
end
|
24
31
|
end
|
25
32
|
end
|
@@ -14,15 +14,15 @@ module Motor
|
|
14
14
|
fname
|
15
15
|
lname
|
16
16
|
sname
|
17
|
+
company
|
18
|
+
domain
|
19
|
+
title
|
17
20
|
phone
|
18
21
|
phone_number
|
19
22
|
email
|
20
|
-
domain
|
21
23
|
phone
|
22
|
-
company
|
23
24
|
filename
|
24
25
|
file_name
|
25
|
-
title
|
26
26
|
url
|
27
27
|
make
|
28
28
|
brand
|
@@ -42,7 +42,7 @@ module Motor
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def select_column_name(column_names)
|
45
|
-
name =
|
45
|
+
name = DISPLAY_NAMES.find { |column_name| column_name.in?(column_names) }
|
46
46
|
name ||= column_names.find { |column_name| column_name.match?(DISPLAY_NAME_REGEXP) }
|
47
47
|
|
48
48
|
name
|
@@ -4,6 +4,7 @@ module Motor
|
|
4
4
|
module BuildSchema
|
5
5
|
module LoadFromRails
|
6
6
|
MUTEX = Mutex.new
|
7
|
+
UNIFIED_TYPES = ActiveRecordUtils::Types::UNIFIED_TYPES
|
7
8
|
|
8
9
|
module_function
|
9
10
|
|
@@ -20,8 +21,7 @@ module Motor
|
|
20
21
|
def models
|
21
22
|
eager_load_models!
|
22
23
|
|
23
|
-
models =
|
24
|
-
models = models.reject(&:abstract_class)
|
24
|
+
models = ActiveRecord::Base.descendants.reject(&:abstract_class)
|
25
25
|
|
26
26
|
models -= Motor::ApplicationRecord.descendants
|
27
27
|
models -= [Motor::Audit]
|
@@ -32,12 +32,6 @@ module Motor
|
|
32
32
|
models
|
33
33
|
end
|
34
34
|
|
35
|
-
def load_descendants(model)
|
36
|
-
model.descendants + model.descendants.flat_map do |klass|
|
37
|
-
load_descendants(klass)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
35
|
def build_model_schema(model)
|
42
36
|
model_name = model.name
|
43
37
|
|
@@ -92,10 +86,13 @@ module Motor
|
|
92
86
|
end
|
93
87
|
|
94
88
|
def build_table_column(column, model, default_attrs)
|
89
|
+
is_enum = model.defined_enums[column.name]
|
90
|
+
|
95
91
|
{
|
96
92
|
name: column.name,
|
97
93
|
display_name: column.name.humanize,
|
98
|
-
column_type:
|
94
|
+
column_type: is_enum ? 'string' : UNIFIED_TYPES[column.type.to_s] || column.type.to_s,
|
95
|
+
is_array: column.array?,
|
99
96
|
access_type: COLUMN_NAME_ACCESS_TYPES.fetch(column.name, ColumnAccessTypes::READ_WRITE),
|
100
97
|
default_value: default_attrs[column.name],
|
101
98
|
validators: fetch_validators(model, column.name),
|
@@ -181,6 +178,10 @@ module Motor
|
|
181
178
|
[]
|
182
179
|
end
|
183
180
|
|
181
|
+
enum = model.defined_enums[column_name]
|
182
|
+
|
183
|
+
validators += [{ includes: enum.keys }] if enum
|
184
|
+
|
184
185
|
validators += model.validators_on(column_name).map do |validator|
|
185
186
|
build_validator_hash(validator)
|
186
187
|
end.compact
|
@@ -210,6 +211,14 @@ module Motor
|
|
210
211
|
else
|
211
212
|
Rails.application.eager_load!
|
212
213
|
end
|
214
|
+
|
215
|
+
ActiveRecord::Base.descendants.each do |model|
|
216
|
+
model.reflections.each do |_, ref|
|
217
|
+
ref.klass
|
218
|
+
rescue StandardError
|
219
|
+
next
|
220
|
+
end
|
221
|
+
end
|
213
222
|
end
|
214
223
|
end
|
215
224
|
end
|
@@ -9,8 +9,8 @@ module Motor
|
|
9
9
|
cache_keys = LoadFromCache.load_cache_keys
|
10
10
|
|
11
11
|
normalize_hash(
|
12
|
-
|
13
|
-
file_version: cache_keys.values.max.to_time,
|
12
|
+
engine_version: Motor::VERSION,
|
13
|
+
file_version: cache_keys.values.compact.max.to_time,
|
14
14
|
resources: build_resources_hash(cache_keys[:resources]),
|
15
15
|
configs: build_configs_hash(cache_keys[:configs]),
|
16
16
|
queries: build_queries_hash(cache_keys[:queries]),
|
data/lib/motor/version.rb
CHANGED
Binary file
|
Binary file
|
data/ui/dist/manifest.json
CHANGED
@@ -5,9 +5,9 @@
|
|
5
5
|
"fonts/ionicons.ttf?v=3.0.0-alpha.3": "fonts/ionicons.ttf",
|
6
6
|
"fonts/ionicons.woff2?v=3.0.0-alpha.3": "fonts/ionicons.woff2",
|
7
7
|
"fonts/ionicons.woff?v=3.0.0-alpha.3": "fonts/ionicons.woff",
|
8
|
-
"main-
|
9
|
-
"main-
|
10
|
-
"main-
|
11
|
-
"main.css": "main-
|
12
|
-
"main.js": "main-
|
8
|
+
"main-0ef3be65da8d3b0dbabb.css.gz": "main-0ef3be65da8d3b0dbabb.css.gz",
|
9
|
+
"main-0ef3be65da8d3b0dbabb.js.LICENSE.txt": "main-0ef3be65da8d3b0dbabb.js.LICENSE.txt",
|
10
|
+
"main-0ef3be65da8d3b0dbabb.js.gz": "main-0ef3be65da8d3b0dbabb.js.gz",
|
11
|
+
"main.css": "main-0ef3be65da8d3b0dbabb.css",
|
12
|
+
"main.js": "main-0ef3be65da8d3b0dbabb.js"
|
13
13
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motor-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.41
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pete Matsyburka
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-05-
|
11
|
+
date: 2021-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord-filter
|
@@ -242,8 +242,8 @@ files:
|
|
242
242
|
- lib/motor/tasks/motor.rake
|
243
243
|
- lib/motor/version.rb
|
244
244
|
- ui/dist/fonts/ionicons.woff2
|
245
|
-
- ui/dist/main-
|
246
|
-
- ui/dist/main-
|
245
|
+
- ui/dist/main-0ef3be65da8d3b0dbabb.css.gz
|
246
|
+
- ui/dist/main-0ef3be65da8d3b0dbabb.js.gz
|
247
247
|
- ui/dist/manifest.json
|
248
248
|
homepage:
|
249
249
|
licenses:
|
Binary file
|