motor-admin 0.2.48 → 0.2.53

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: 8e0b70a3838f3f4f4df56cc8caf0aacf3c07b9826395ee81bad390d6a8952ab1
4
- data.tar.gz: cc40b2bdb4a214abcea419ba94781d9dcfcca7d716ae6674ba3497b031adac8d
3
+ metadata.gz: 67bb67c4a201104a29894b80a8bd242f1cf10b49cb6d385714581e7cc7497879
4
+ data.tar.gz: 7982ff5d3c3636c2f6fd4216cd038e33c62f4af603a345900cf05512b5b1fe54
5
5
  SHA512:
6
- metadata.gz: 95bbf8cc2ae3d25b68a1841ac7d1dac45fa798c1da7f0fba031d542a35e6bb28da1e2ee9d27b58b80d9f14ddfb684f2070d47fd53b7e537b3edcc52f01dd5619
7
- data.tar.gz: d0cd3d7425e55a43c5a6e774b59aaa89767e78acdbb846a5f52f230cfe7b8d748f7bcdb0ed65d24cf121d7374500fa205a46c4e23a00e6b3caed17ba912252b4
6
+ metadata.gz: 949241fdf2ac8b47d2eb1ff796f11b2784a45226a2abf23bc4ffcb60a2c5f0947e02dd04b20d488f9fcb52ba06eedffc5cccff9d3fcf1a1dd253157bda133e0d
7
+ data.tar.gz: '08b26b86e8cdd556b1230a09539a891aa0c6b863b6a6f3bf62ccb69926bdbbd057fb6a38bb5bfd384652fda1a73aab02d2edbebedf6175c254656e6aa2817caa'
@@ -299,3 +299,5 @@ en:
299
299
  url: URL
300
300
  expand: Expand
301
301
  add_api: Add API
302
+ on_collection: On collection
303
+ association: Association
@@ -299,6 +299,8 @@ es:
299
299
  url: URL
300
300
  expand: Expandir
301
301
  add_api: De API
302
+ on_collection: En la colección
303
+ association: Asociación
302
304
  i:
303
305
  locale: es
304
306
  select:
@@ -295,6 +295,8 @@ pt:
295
295
  url: URL
296
296
  expand: Expandir
297
297
  add_api: De API
298
+ on_collection: Na coleção
299
+ association: Associação
298
300
  i:
299
301
  locale: pt
300
302
  select:
data/lib/motor/admin.rb CHANGED
@@ -109,6 +109,8 @@ module Motor
109
109
  ' to perform data migration and enable the latest features'
110
110
  puts
111
111
  end
112
+ rescue ActiveRecord::NoDatabaseError
113
+ nil
112
114
  end
113
115
  end
114
116
  end
@@ -21,7 +21,9 @@ module Motor
21
21
 
22
22
  def filter_associations(associations, ability)
23
23
  associations.select do |assoc|
24
- ability.can?(:read, assoc[:model_name].classify.constantize)
24
+ model_class = assoc[:model_name].classify.safe_constantize
25
+
26
+ model_class && ability.can?(:read, model_class)
25
27
  end
26
28
  end
27
29
 
@@ -29,8 +31,11 @@ module Motor
29
31
  columns.map do |column|
30
32
  next unless ability.can?(:read, model, column[:name])
31
33
 
32
- next if column.dig(:reference, :model_name).present? &&
33
- !ability.can?(:read, column[:reference][:model_name].classify.constantize)
34
+ reference_model_name = column.dig(:reference, :model_name)
35
+ model_class = reference_model_name&.classify&.safe_constantize
36
+
37
+ next if reference_model_name &&
38
+ (model_class.nil? || !ability.can?(:read, model_class))
34
39
 
35
40
  unless ability.can?(:update, model, column[:name])
36
41
  column = column.merge(access_type: BuildSchema::ColumnAccessTypes::READ_ONLY)
@@ -13,6 +13,7 @@ module Motor
13
13
  display_name: I18n.t('motor.create'),
14
14
  action_type: BuildSchema::DEFAULT_TYPE,
15
15
  preferences: {},
16
+ apply_on: 'collection',
16
17
  visible: true
17
18
  },
18
19
  {
@@ -20,6 +21,7 @@ module Motor
20
21
  display_name: I18n.t('motor.edit'),
21
22
  action_type: BuildSchema::DEFAULT_TYPE,
22
23
  preferences: {},
24
+ apply_on: 'member',
23
25
  visible: true
24
26
  },
25
27
  {
@@ -27,6 +29,7 @@ module Motor
27
29
  display_name: I18n.t('motor.remove'),
28
30
  action_type: BuildSchema::DEFAULT_TYPE,
29
31
  preferences: {},
32
+ apply_on: 'member',
30
33
  visible: true
31
34
  }
32
35
  ].freeze
@@ -154,7 +154,8 @@ module Motor
154
154
 
155
155
  return {} if column.name == 'year'
156
156
 
157
- return { number_format: true } if !column.name.match?(/_(?:id|year)\z/) &&
157
+ return { number_format: true } if !column.name == 'id' &&
158
+ !column.name.match?(/_(?:id|year)\z/) &&
158
159
  %i[integer float].include?(column.type)
159
160
 
160
161
  {}
@@ -70,6 +70,7 @@ module Motor
70
70
 
71
71
  ACTION_DEFAULTS = {
72
72
  visible: true,
73
+ apply_on: 'member',
73
74
  preferences: {}
74
75
  }.with_indifferent_access
75
76
 
@@ -13,7 +13,7 @@ module Motor
13
13
  module_function
14
14
 
15
15
  def call(current_user = nil, current_ability = nil, cache_keys: LoadFromCache.load_cache_keys)
16
- CACHE_STORE.fetch("#{I18n.locale}#{cache_keys.hash}#{current_user&.id}#{current_ability&.rules_hash}") do
16
+ CACHE_STORE.fetch(app_tag_cache_key(cache_keys, current_user, current_ability)) do
17
17
  CACHE_STORE.clear
18
18
 
19
19
  data = build_data(cache_keys, current_user, current_ability)
@@ -21,6 +21,14 @@ module Motor
21
21
  end
22
22
  end
23
23
 
24
+ def app_tag_cache_key(cache_keys, current_user, current_ability)
25
+ key = "#{I18n.locale}#{cache_keys.hash}#{current_user&.id}#{current_ability&.rules_hash}"
26
+
27
+ key += Motor::DefineArModels.defined_models_schema_md5.to_s if defined?(Motor::DefineArModels)
28
+
29
+ key
30
+ end
31
+
24
32
  # rubocop:disable Metrics/AbcSize
25
33
  # @return [Hash]
26
34
  def build_data(cache_keys = {}, current_user = nil, current_ability = nil)
@@ -9,7 +9,7 @@ module Motor
9
9
  ASSOCIATION_ATTRS = %w[name display_name model_name icon visible foreign_key primary_key options virtual
10
10
  polymorphic slug].freeze
11
11
  SCOPE_ATTRS = %w[name display_name scope_type preferences visible].freeze
12
- ACTION_ATTRS = %w[name display_name action_type preferences visible].freeze
12
+ ACTION_ATTRS = %w[name display_name action_type preferences apply_on visible].freeze
13
13
  TAB_ATTRS = %w[name display_name tab_type preferences visible].freeze
14
14
  end
15
15
  end
data/lib/motor/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Motor
4
- VERSION = '0.2.48'
4
+ VERSION = '0.2.53'
5
5
  end
@@ -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-6fcd302ba30a65b4d436.css.gz": "main-6fcd302ba30a65b4d436.css.gz",
2605
- "main-6fcd302ba30a65b4d436.js.LICENSE.txt": "main-6fcd302ba30a65b4d436.js.LICENSE.txt",
2606
- "main-6fcd302ba30a65b4d436.js.gz": "main-6fcd302ba30a65b4d436.js.gz",
2607
- "main.css": "main-6fcd302ba30a65b4d436.css",
2608
- "main.js": "main-6fcd302ba30a65b4d436.js"
2604
+ "main-f5a4c21edafaf5c70b05.css.gz": "main-f5a4c21edafaf5c70b05.css.gz",
2605
+ "main-f5a4c21edafaf5c70b05.js.LICENSE.txt": "main-f5a4c21edafaf5c70b05.js.LICENSE.txt",
2606
+ "main-f5a4c21edafaf5c70b05.js.gz": "main-f5a4c21edafaf5c70b05.js.gz",
2607
+ "main.css": "main-f5a4c21edafaf5c70b05.css",
2608
+ "main.js": "main-f5a4c21edafaf5c70b05.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.48
4
+ version: 0.2.53
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-12-30 00:00:00.000000000 Z
11
+ date: 2022-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord-filter
@@ -1532,8 +1532,8 @@ files:
1532
1532
  - ui/dist/icons/zoom-money.svg.gz
1533
1533
  - ui/dist/icons/zoom-out.svg.gz
1534
1534
  - ui/dist/icons/zoom-question.svg.gz
1535
- - ui/dist/main-6fcd302ba30a65b4d436.css.gz
1536
- - ui/dist/main-6fcd302ba30a65b4d436.js.gz
1535
+ - ui/dist/main-f5a4c21edafaf5c70b05.css.gz
1536
+ - ui/dist/main-f5a4c21edafaf5c70b05.js.gz
1537
1537
  - ui/dist/manifest.json
1538
1538
  homepage:
1539
1539
  licenses: