motor-admin 0.2.23 → 0.2.27
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/config/locales/en.yml +6 -0
- data/config/locales/es.yml +6 -0
- data/config/locales/pt.yml +6 -0
- data/lib/motor/build_schema/load_from_rails.rb +8 -1
- data/lib/motor/configs/load_from_cache.rb +1 -3
- data/lib/motor/queries/run_query.rb +8 -5
- data/lib/motor/resources/custom_sql_columns_cache.rb +1 -1
- data/lib/motor/resources/fetch_configured_model.rb +18 -10
- data/lib/motor/version.rb +1 -1
- data/ui/dist/{main-6570149f716eae327cdc.css.gz → main-9f6b19ff999e209e9d33.css.gz} +0 -0
- data/ui/dist/main-9f6b19ff999e209e9d33.js.gz +0 -0
- data/ui/dist/manifest.json +5 -5
- metadata +4 -4
- data/ui/dist/main-6570149f716eae327cdc.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: acd8302f343dd0ce3ccad39dd408dc90e7582fb63133cf0abfb3fa1112899cb8
|
4
|
+
data.tar.gz: 21dc6ca6b743b0499e8bf3b314465be503cfcc6ce789bd2653f8e278e72b38dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c277ba2eee535baf91c0959d42187e76b0aff57cb24129c1d79917fca6259c2ed2a0b5f59b9fe289dbad1877fc17d7ea3bde2678cf686b5f98ecf558fbe0b0e6
|
7
|
+
data.tar.gz: 3ff35c6aa910c27771f108dd9a6fbedb73efd57f5a16890ef8589fcce4d733f41b584a1a4f6e79faa9554e964e17eb2aa1ff1bc38655ed9c5acb2f9a3520e6ef
|
data/config/locales/en.yml
CHANGED
@@ -278,3 +278,9 @@ en:
|
|
278
278
|
there_is_nothing_here_yet: There is nothing here yet 🤷♂️
|
279
279
|
is_null: Is null
|
280
280
|
is_not_null: Is not null
|
281
|
+
split_tags_by: Split tags by
|
282
|
+
do_not_split: Do not split
|
283
|
+
semicolon: Semicolon
|
284
|
+
hyphen: Hyphen
|
285
|
+
comma: Comma
|
286
|
+
slash: Slash
|
data/config/locales/es.yml
CHANGED
@@ -278,6 +278,12 @@ es:
|
|
278
278
|
there_is_nothing_here_yet: Todavía no hay nada aquí 🤷♂️
|
279
279
|
is_null: Es nulo
|
280
280
|
is_not_null: No es nulo
|
281
|
+
split_tags_by: Dividir las etiquetas por
|
282
|
+
do_not_split: No dividir
|
283
|
+
semicolon: Punto y coma
|
284
|
+
hyphen: Guión
|
285
|
+
comma: Coma
|
286
|
+
slash: Slash
|
281
287
|
i:
|
282
288
|
locale: es
|
283
289
|
select:
|
data/config/locales/pt.yml
CHANGED
@@ -274,6 +274,12 @@ pt:
|
|
274
274
|
there_is_nothing_here_yet: Ainda não há nada aqui 🤷♂️
|
275
275
|
is_null: É nulo
|
276
276
|
is_not_null: Não é nulo
|
277
|
+
split_tags_by: Dividir as etiquetas por
|
278
|
+
do_not_split: Não dividir
|
279
|
+
semicolon: Ponto-e-vírgula
|
280
|
+
hyphen: Hífen
|
281
|
+
comma: Vírgula
|
282
|
+
slash: Slash
|
277
283
|
i:
|
278
284
|
locale: pt
|
279
285
|
select:
|
@@ -116,13 +116,20 @@ module Motor
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def build_table_column(column, model, default_attrs)
|
119
|
+
access_type =
|
120
|
+
if model.primary_key == column.name
|
121
|
+
ColumnAccessTypes::READ_ONLY
|
122
|
+
else
|
123
|
+
COLUMN_NAME_ACCESS_TYPES.fetch(column.name, ColumnAccessTypes::READ_WRITE)
|
124
|
+
end
|
125
|
+
|
119
126
|
{
|
120
127
|
name: column.name,
|
121
128
|
display_name: Utils.humanize_column_name(model.human_attribute_name(column.name)),
|
122
129
|
column_type: fetch_column_type(column, model),
|
123
130
|
column_source: ColumnSources::TABLE,
|
124
131
|
is_array: column.array?,
|
125
|
-
access_type:
|
132
|
+
access_type: access_type,
|
126
133
|
default_value: default_attrs[column.name],
|
127
134
|
validators: fetch_validators(model, column.name),
|
128
135
|
reference: nil,
|
@@ -83,9 +83,7 @@ module Motor
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def load_cache_keys
|
86
|
-
result = ActiveRecord::Base.connection.
|
87
|
-
|
88
|
-
result = result.map(&:values) if result.first.is_a?(Hash)
|
86
|
+
result = ActiveRecord::Base.connection.exec_query(cache_keys_sql).rows
|
89
87
|
|
90
88
|
result.to_h.with_indifferent_access
|
91
89
|
end
|
@@ -61,7 +61,7 @@ module Motor
|
|
61
61
|
# @return [ActiveRecord::Result]
|
62
62
|
def execute_query(query, limit, variables_hash, filters)
|
63
63
|
result = nil
|
64
|
-
statement = prepare_sql_statement(query, limit, variables_hash, filters)
|
64
|
+
statement = prepare_sql_statement(connection_class.connection, query, limit, variables_hash, filters)
|
65
65
|
|
66
66
|
connection_class.transaction do
|
67
67
|
result =
|
@@ -129,17 +129,18 @@ module Motor
|
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
|
+
# @param connection [Object]
|
132
133
|
# @param query [Motor::Query]
|
133
134
|
# @param limit [Integer]
|
134
135
|
# @param variables_hash [Hash]
|
135
136
|
# @param filters [Hash]
|
136
137
|
# @return [Array]
|
137
|
-
def prepare_sql_statement(query, limit, variables_hash, filters)
|
138
|
+
def prepare_sql_statement(connection, query, limit, variables_hash, filters)
|
138
139
|
variables = merge_variable_default_values(query.preferences.fetch(:variables, []), variables_hash)
|
139
140
|
|
140
141
|
sql, query_variables = RenderSqlTemplate.call(query.sql_body, variables)
|
141
142
|
cte_sql = format(WITH_STATEMENT_TEMPLATE, sql_body: sql.strip.delete_suffix(';'))
|
142
|
-
cte_select_sql = build_cte_select_sql(limit, filters)
|
143
|
+
cte_select_sql = build_cte_select_sql(connection, limit, filters)
|
143
144
|
|
144
145
|
attributes = build_statement_attributes(query_variables)
|
145
146
|
|
@@ -149,7 +150,7 @@ module Motor
|
|
149
150
|
# @param limit [Number]
|
150
151
|
# @param filters [Hash]
|
151
152
|
# @return [String]
|
152
|
-
def build_cte_select_sql(limit, filters)
|
153
|
+
def build_cte_select_sql(connection, limit, filters)
|
153
154
|
table = Arel::Table.new(CTE_NAME)
|
154
155
|
|
155
156
|
arel_filters = build_filters_arel(filters)
|
@@ -157,7 +158,9 @@ module Motor
|
|
157
158
|
expresion = table.project(table[Arel.star])
|
158
159
|
expresion = expresion.where(arel_filters) if arel_filters.present?
|
159
160
|
|
160
|
-
expresion.take(limit.to_i).
|
161
|
+
expresion.take(limit.to_i) unless connection.class.name.include?('SQLServerAdapter')
|
162
|
+
|
163
|
+
expresion.to_sql.delete('"')
|
161
164
|
end
|
162
165
|
|
163
166
|
# @param filters [Hash]
|
@@ -5,6 +5,8 @@ module Motor
|
|
5
5
|
module FetchConfiguredModel
|
6
6
|
CACHE_HASH = HashWithIndifferentAccess.new
|
7
7
|
|
8
|
+
HAS_AND_BELONGS_TO_MANY_JOIN_MODEL_PREFIX = 'HABTM_'
|
9
|
+
|
8
10
|
module_function
|
9
11
|
|
10
12
|
def call(model, cache_key:)
|
@@ -130,13 +132,8 @@ module Motor
|
|
130
132
|
end
|
131
133
|
|
132
134
|
def configure_reflection_classes(klass, cache_key)
|
133
|
-
klass.
|
134
|
-
|
135
|
-
next unless ref.klass
|
136
|
-
next if ref.klass.anonymous?
|
137
|
-
rescue StandardError
|
138
|
-
next
|
139
|
-
end
|
135
|
+
klass._reflections.each do |key, ref|
|
136
|
+
next unless configure_reflection_class?(ref)
|
140
137
|
|
141
138
|
ref_dup = ref.dup
|
142
139
|
|
@@ -146,11 +143,9 @@ module Motor
|
|
146
143
|
ref_dup.instance_variable_set(:@klass, call(ref.klass, cache_key: cache_key))
|
147
144
|
end
|
148
145
|
|
149
|
-
klass.
|
146
|
+
klass._reflections[key] = ref_dup
|
150
147
|
end
|
151
148
|
|
152
|
-
klass._reflections = klass.reflections
|
153
|
-
|
154
149
|
klass
|
155
150
|
end
|
156
151
|
|
@@ -203,6 +198,19 @@ module Motor
|
|
203
198
|
end
|
204
199
|
end
|
205
200
|
|
201
|
+
def configure_reflection_class?(ref)
|
202
|
+
begin
|
203
|
+
return false unless ref.klass
|
204
|
+
rescue StandardError
|
205
|
+
return false
|
206
|
+
end
|
207
|
+
|
208
|
+
return false if ref.klass.anonymous?
|
209
|
+
return false if ref.klass.name.demodulize.starts_with?(HAS_AND_BELONGS_TO_MANY_JOIN_MODEL_PREFIX)
|
210
|
+
|
211
|
+
true
|
212
|
+
end
|
213
|
+
|
206
214
|
def sti_model?(model)
|
207
215
|
!model.superclass.abstract_class && model.columns_hash[model.inheritance_column.to_s]
|
208
216
|
end
|
data/lib/motor/version.rb
CHANGED
Binary file
|
Binary file
|
data/ui/dist/manifest.json
CHANGED
@@ -2601,9 +2601,9 @@
|
|
2601
2601
|
"icons/zoom-out.svg.gz": "icons/zoom-out.svg.gz",
|
2602
2602
|
"icons/zoom-question.svg": "icons/zoom-question.svg",
|
2603
2603
|
"icons/zoom-question.svg.gz": "icons/zoom-question.svg.gz",
|
2604
|
-
"main-
|
2605
|
-
"main-
|
2606
|
-
"main-
|
2607
|
-
"main.css": "main-
|
2608
|
-
"main.js": "main-
|
2604
|
+
"main-9f6b19ff999e209e9d33.css.gz": "main-9f6b19ff999e209e9d33.css.gz",
|
2605
|
+
"main-9f6b19ff999e209e9d33.js.LICENSE.txt": "main-9f6b19ff999e209e9d33.js.LICENSE.txt",
|
2606
|
+
"main-9f6b19ff999e209e9d33.js.gz": "main-9f6b19ff999e209e9d33.js.gz",
|
2607
|
+
"main.css": "main-9f6b19ff999e209e9d33.css",
|
2608
|
+
"main.js": "main-9f6b19ff999e209e9d33.js"
|
2609
2609
|
}
|
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.2.
|
4
|
+
version: 0.2.27
|
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-11-
|
11
|
+
date: 2021-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord-filter
|
@@ -1525,8 +1525,8 @@ files:
|
|
1525
1525
|
- ui/dist/icons/zoom-money.svg.gz
|
1526
1526
|
- ui/dist/icons/zoom-out.svg.gz
|
1527
1527
|
- ui/dist/icons/zoom-question.svg.gz
|
1528
|
-
- ui/dist/main-
|
1529
|
-
- ui/dist/main-
|
1528
|
+
- ui/dist/main-9f6b19ff999e209e9d33.css.gz
|
1529
|
+
- ui/dist/main-9f6b19ff999e209e9d33.js.gz
|
1530
1530
|
- ui/dist/manifest.json
|
1531
1531
|
homepage:
|
1532
1532
|
licenses:
|
Binary file
|