motor-admin 0.1.40 → 0.1.41
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/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
|