motor-admin 0.2.6 → 0.2.10
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/app/controllers/motor/api_base_controller.rb +6 -0
- data/app/mailers/motor/alerts_mailer.rb +14 -2
- data/config/locales/en.yml +1 -0
- data/config/locales/es.yml +1 -0
- data/config/locales/pt.yml +1 -0
- data/lib/motor/active_record_utils/active_record_filter_patch.rb +2 -0
- data/lib/motor/active_record_utils/ar_lazy_preload_patch.rb +22 -0
- data/lib/motor/active_record_utils.rb +1 -0
- data/lib/motor/api_query/search.rb +1 -3
- data/lib/motor/resources.rb +1 -1
- data/lib/motor/version.rb +1 -1
- data/ui/dist/{main-32da50c51ef9fcddf634.css.gz → main-9d527c31af98f3d09fea.css.gz} +0 -0
- data/ui/dist/main-9d527c31af98f3d09fea.js.gz +0 -0
- data/ui/dist/manifest.json +5 -5
- metadata +5 -4
- data/ui/dist/main-32da50c51ef9fcddf634.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: 5e7ce842fbd5202f73efe93edfea13a5391070ed46a44c4c7d15d9ed3ad68aed
|
4
|
+
data.tar.gz: cb7dee7ba4ca6b4542bf6d333eb04f2de1c4409a795d1530ac3c81e76cfb4dce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 468b9e8e9a4adab3e1006796e87894ca73e339e3663e9e2a61337512e305e5e22df787a260f49604c10c14934c1022164efda71fc59619848ee9f655e065e421
|
7
|
+
data.tar.gz: c31e7faea409f3e78ea2f6840d2b3cdc8aa6ae82cbc831edee65b7220777503c52d745f7ce78a74b21f2caca147bb6a7f5f38b154b7b4409c8a67be529286fac
|
@@ -18,6 +18,12 @@ module Motor
|
|
18
18
|
|
19
19
|
render json: { errors: [e.message] }, status: :internal_server_error
|
20
20
|
end
|
21
|
+
|
22
|
+
rescue_from CanCan::AccessDenied do |e|
|
23
|
+
Rails.logger.error(e)
|
24
|
+
|
25
|
+
render json: { errors: [e.message] }, status: :forbidden
|
26
|
+
end
|
21
27
|
end
|
22
28
|
end
|
23
29
|
end
|
@@ -2,13 +2,19 @@
|
|
2
2
|
|
3
3
|
module Motor
|
4
4
|
class AlertsMailer < ApplicationMailer
|
5
|
+
SenderAddressNotSet = Class.new(StandardError)
|
6
|
+
SENDER_NOT_SET_ERROR_MESSAGE =
|
7
|
+
'Please specify your sender address via MOTOR_ALERTS_FROM_ADDRESS environment variable'
|
8
|
+
|
5
9
|
def alert_email(alert)
|
6
10
|
@alert = alert
|
7
11
|
@query_result = Queries::RunQuery.call(alert.query)
|
8
12
|
|
9
13
|
return if @alert.preferences[:send_empty].blank? && @query_result.data.blank?
|
10
14
|
|
11
|
-
|
15
|
+
assign_attachment(@alert, @query_result)
|
16
|
+
|
17
|
+
raise SenderAddressNotSet, SENDER_NOT_SET_ERROR_MESSAGE unless from_address
|
12
18
|
|
13
19
|
mail(
|
14
20
|
from: from_address,
|
@@ -19,6 +25,10 @@ module Motor
|
|
19
25
|
|
20
26
|
private
|
21
27
|
|
28
|
+
def assign_attachment(alert, query_result)
|
29
|
+
attachments["#{alert.name.presence || 'data'}.csv"] = generate_csv(query_result)
|
30
|
+
end
|
31
|
+
|
22
32
|
def generate_csv(_query_result)
|
23
33
|
rows = [@query_result.columns.pluck(:name)] + @query_result.data
|
24
34
|
|
@@ -32,7 +42,9 @@ module Motor
|
|
32
42
|
from ||= mailer_config_from_address
|
33
43
|
from ||= "reports@#{ENV['HOST'].delete_prefix('www.')}" if ENV['HOST'].present?
|
34
44
|
|
35
|
-
from
|
45
|
+
from ||= 'reports@example.com' if Rails.env.development?
|
46
|
+
|
47
|
+
from
|
36
48
|
end
|
37
49
|
|
38
50
|
def application_mailer_default_from
|
data/config/locales/en.yml
CHANGED
data/config/locales/es.yml
CHANGED
data/config/locales/pt.yml
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
if Rails::VERSION::MAJOR == 7
|
4
|
+
module ArLazyPreload
|
5
|
+
module Relation
|
6
|
+
def preload_associations(records)
|
7
|
+
preload = preload_values
|
8
|
+
preload += includes_values unless eager_loading?
|
9
|
+
scope = strict_loading_value ? ActiveRecord::Relation::StrictLoadingScope : nil
|
10
|
+
preload.each do |associations|
|
11
|
+
preloader_associations = ActiveRecord::Associations::Preloader.new(records: records,
|
12
|
+
associations: associations,
|
13
|
+
scope: scope).call
|
14
|
+
|
15
|
+
preloader_associations.each do |preloader_association|
|
16
|
+
handle_preloaded_records(preloader_association.preloaded_records)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -23,3 +23,4 @@ require_relative './active_record_utils/active_storage_blob_patch'
|
|
23
23
|
require_relative './active_record_utils/active_record_filter_patch'
|
24
24
|
require_relative './active_record_utils/active_record_connection_column_patch'
|
25
25
|
require_relative './active_record_utils/action_text_attribute_patch'
|
26
|
+
require_relative './active_record_utils/ar_lazy_preload_patch'
|
@@ -45,9 +45,7 @@ module Motor
|
|
45
45
|
|
46
46
|
def select_columns(columns)
|
47
47
|
selected_columns =
|
48
|
-
columns.
|
49
|
-
BuildSchema::FindDisplayColumn::DISPLAY_NAME_REGEXP.match?(name)
|
50
|
-
end.presence
|
48
|
+
columns.grep(BuildSchema::FindDisplayColumn::DISPLAY_NAME_REGEXP).presence
|
51
49
|
|
52
50
|
selected_columns ||= columns.first(SELECT_COLUMNS_AMOUNT)
|
53
51
|
|
data/lib/motor/resources.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Motor
|
4
4
|
module Resources
|
5
|
-
RESOURCE_ATTRS = %w[display_name icon custom_sql visible].freeze
|
5
|
+
RESOURCE_ATTRS = %w[display_name display_column icon custom_sql visible].freeze
|
6
6
|
COLUMN_ATTRS = %w[name display_name column_type access_type default_value reference virtual format].freeze
|
7
7
|
ASSOCIATION_ATTRS = %w[name display_name model_name icon visible foreign_key primary_key options virtual
|
8
8
|
polymorphic slug].freeze
|
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-9d527c31af98f3d09fea.css.gz": "main-9d527c31af98f3d09fea.css.gz",
|
2605
|
+
"main-9d527c31af98f3d09fea.js.LICENSE.txt": "main-9d527c31af98f3d09fea.js.LICENSE.txt",
|
2606
|
+
"main-9d527c31af98f3d09fea.js.gz": "main-9d527c31af98f3d09fea.js.gz",
|
2607
|
+
"main.css": "main-9d527c31af98f3d09fea.css",
|
2608
|
+
"main.js": "main-9d527c31af98f3d09fea.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.10
|
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-10-
|
11
|
+
date: 2021-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord-filter
|
@@ -165,6 +165,7 @@ files:
|
|
165
165
|
- lib/motor/active_record_utils/active_record_filter_patch.rb
|
166
166
|
- lib/motor/active_record_utils/active_storage_blob_patch.rb
|
167
167
|
- lib/motor/active_record_utils/active_storage_links_extension.rb
|
168
|
+
- lib/motor/active_record_utils/ar_lazy_preload_patch.rb
|
168
169
|
- lib/motor/active_record_utils/defined_scopes_extension.rb
|
169
170
|
- lib/motor/active_record_utils/fetch_methods.rb
|
170
171
|
- lib/motor/active_record_utils/types.rb
|
@@ -1523,8 +1524,8 @@ files:
|
|
1523
1524
|
- ui/dist/icons/zoom-money.svg.gz
|
1524
1525
|
- ui/dist/icons/zoom-out.svg.gz
|
1525
1526
|
- ui/dist/icons/zoom-question.svg.gz
|
1526
|
-
- ui/dist/main-
|
1527
|
-
- ui/dist/main-
|
1527
|
+
- ui/dist/main-9d527c31af98f3d09fea.css.gz
|
1528
|
+
- ui/dist/main-9d527c31af98f3d09fea.js.gz
|
1528
1529
|
- ui/dist/manifest.json
|
1529
1530
|
homepage:
|
1530
1531
|
licenses:
|
Binary file
|