motor-admin 0.2.54 → 0.2.55

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15b533466db4a33c9391b0b6b01ccc843db7f69641e45b94588f8fd73b58bdd6
4
- data.tar.gz: 1eca4eb32893da6b571a24e6ce75fa58c2290c759e973fea99186a5e795d2bca
3
+ metadata.gz: b15459e6ad4c135a1534bf82cf8bb202ef3bcee0ae479b05c316cc07f4abc4a4
4
+ data.tar.gz: 129ebeba47d066bd9990fbe1408e5a4ae2d2aba49444ba93bdcc7c67c160dd89
5
5
  SHA512:
6
- metadata.gz: 1526cd8885184c8e4e3b8863f7a5c3c5a6adc240c5dc6cd976a5e804f0538635973977f6bb7dcb23c8042a6997817e529d7ff368fe349d5236c13528ff704301
7
- data.tar.gz: 202b9a9b155b23ae205c278d1301d5d58e7eaf19571d2d0b8d539635586c2227d49b72bcbf3a605c2b98e85da5545161ddc46c27837c4343f2a281c981874f04
6
+ metadata.gz: 97b8da084ad4ab06935288abba3ab0e3a9bae933df5977400049347d35e24dcc18cd6615e527cb55b7bf123da689f187bdacfc00e5041c66b3c1155f7487b968
7
+ data.tar.gz: 6910ec1a51c0b90781e6dedfa3b602f920297e2d37a32dbf6ea34362c71ffadd70464c88385eea760fc53f0eb1c245300a5942f144ebe56e82d755c7c921d929
@@ -301,3 +301,4 @@ en:
301
301
  add_api: Add API
302
302
  on_collection: On collection
303
303
  association: Association
304
+ action_has_been_removed: This action has been removed
@@ -301,6 +301,7 @@ es:
301
301
  add_api: De API
302
302
  on_collection: En la colección
303
303
  association: Asociación
304
+ action_has_been_removed: Esta acción ha sido eliminada
304
305
  i:
305
306
  locale: es
306
307
  select:
@@ -297,6 +297,7 @@ pt:
297
297
  add_api: De API
298
298
  on_collection: Na coleção
299
299
  association: Associação
300
+ action_has_been_removed: Esta ação foi removida
300
301
  i:
301
302
  locale: pt
302
303
  select:
@@ -0,0 +1,71 @@
1
+ class <%= migration_class_name %> < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>]
2
+ class MotorApiConfig < ActiveRecord::Base
3
+ self.table_name = 'motor_api_configs'
4
+
5
+ encrypts :credentials if defined?(::Motor::EncryptedConfig)
6
+
7
+ serialize :credentials, Motor::HashSerializer
8
+ serialize :preferences, Motor::HashSerializer
9
+
10
+ attribute :preferences, default: -> { HashWithIndifferentAccess.new }
11
+ attribute :credentials, default: -> { HashWithIndifferentAccess.new }
12
+ end
13
+
14
+ class MotorForm < ActiveRecord::Base
15
+ self.table_name = 'motor_forms'
16
+
17
+ serialize :preferences, Motor::HashSerializer
18
+ end
19
+
20
+ class MotorResource < ActiveRecord::Base
21
+ self.table_name = 'motor_resources'
22
+
23
+ serialize :preferences, Motor::HashSerializer
24
+ end
25
+
26
+ def up
27
+ MotorResource.all.each do |resource|
28
+ resource.preferences.fetch(:actions, []).each do |action|
29
+ next unless action[:action_type] == 'api'
30
+
31
+ api_path = action[:preferences][:api_path]
32
+ api_url = form.api_path[%r{\Ahttps?://[^/]+}]
33
+ api_path = api_path.delete_prefix(api_url).sub(/\A\/?/, '/') if api_url
34
+
35
+ api_config =
36
+ if api_url
37
+ MotorApiConfig.create_with(url: api_url).find_or_create_by!(name: api_url.sub(%r{\Ahttps?://}))
38
+ else
39
+ MotorApiConfig.create_with(url: '/').find_or_create_by!(name: 'origin')
40
+ end
41
+
42
+ resource_display_name = (resource[:preferences][:display_name] || resource.name).titleize.singularize
43
+
44
+ form = MotorForm.create_with(
45
+ api_config_name: api_config.name,
46
+ api_path: api_path.sub(/\{{1,2}\w+\}{1,2}/, '{{id}}'),
47
+ http_method: 'POST',
48
+ preferences: {
49
+ fields: [{
50
+ name: 'id',
51
+ display_name: resource_display_name,
52
+ default_value: '',
53
+ field_type: 'reference',
54
+ reference: { model_name: resource.name },
55
+ validators: [{ required: true }]
56
+ }]
57
+ }
58
+ ).find_or_create_by!(
59
+ name: "#{action[:display_name]} #{resource_display_name}"
60
+ )
61
+
62
+ action[:action_type] = 'form'
63
+ action[:preferences] = { form_id: form.id }
64
+ end
65
+
66
+ resource.save!
67
+ end
68
+ end
69
+
70
+ def down; end
71
+ end
@@ -15,11 +15,19 @@ module Motor
15
15
  source_root File.expand_path('templates', __dir__)
16
16
 
17
17
  def copy_migration
18
- if Motor::ApiConfig.table_exists?
19
- puts 'The latest Motor Admin features are already configured'
20
- else
18
+ has_api_actions = Motor::Resource.all.any? do |resource|
19
+ resource.preferences[:actions]&.any? { |action| action[:action_type] == 'api' }
20
+ end
21
+
22
+ unless Motor::ApiConfig.table_exists?
21
23
  migration_template 'install_api_configs.rb', 'db/migrate/install_motor_api_configs.rb'
24
+ end
25
+
26
+ migration_template 'upgrade_motor_api_actions.rb', 'db/migrate/upgrade_motor_api_actions.rb' if has_api_actions
22
27
 
28
+ if Motor::ApiConfig.table_exists? && !has_api_actions
29
+ puts 'The latest Motor Admin features are already configured'
30
+ else
23
31
  puts 'Run `rake db:migrate` to update DB schema'
24
32
  end
25
33
  end
data/lib/motor/admin.rb CHANGED
@@ -97,10 +97,14 @@ module Motor
97
97
 
98
98
  initializer 'motor.upgrade' do
99
99
  config.after_initialize do
100
+ next unless Motor.server?
101
+
100
102
  unless Motor::Query.table_exists?
101
103
  puts
102
104
  puts ' => Run `rails g motor:install && rake db:migrate` in order to create Motor Admin configuration tables'
103
105
  puts
106
+
107
+ raise
104
108
  end
105
109
 
106
110
  unless Motor::ApiConfig.table_exists?
@@ -108,9 +112,9 @@ module Motor
108
112
  puts ' => Run `rails g motor:upgrade && rake db:migrate`' \
109
113
  ' to perform data migration and enable the latest features'
110
114
  puts
115
+
116
+ raise
111
117
  end
112
- rescue ActiveRecord::NoDatabaseError
113
- nil
114
118
  end
115
119
  end
116
120
  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.54'
4
+ VERSION = '0.2.55'
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-14416e12b7c4f3d4ccf4.css.gz": "main-14416e12b7c4f3d4ccf4.css.gz",
2605
- "main-14416e12b7c4f3d4ccf4.js.LICENSE.txt": "main-14416e12b7c4f3d4ccf4.js.LICENSE.txt",
2606
- "main-14416e12b7c4f3d4ccf4.js.gz": "main-14416e12b7c4f3d4ccf4.js.gz",
2607
- "main.css": "main-14416e12b7c4f3d4ccf4.css",
2608
- "main.js": "main-14416e12b7c4f3d4ccf4.js"
2604
+ "main-2d5ae868ed1fe51a0981.css.gz": "main-2d5ae868ed1fe51a0981.css.gz",
2605
+ "main-2d5ae868ed1fe51a0981.js.LICENSE.txt": "main-2d5ae868ed1fe51a0981.js.LICENSE.txt",
2606
+ "main-2d5ae868ed1fe51a0981.js.gz": "main-2d5ae868ed1fe51a0981.js.gz",
2607
+ "main.css": "main-2d5ae868ed1fe51a0981.css",
2608
+ "main.js": "main-2d5ae868ed1fe51a0981.js"
2609
2609
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motor-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.54
4
+ version: 0.2.55
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Matsyburka
@@ -162,6 +162,7 @@ files:
162
162
  - lib/generators/motor/migration.rb
163
163
  - lib/generators/motor/templates/install.rb
164
164
  - lib/generators/motor/templates/install_api_configs.rb
165
+ - lib/generators/motor/templates/upgrade_motor_api_actions.rb
165
166
  - lib/generators/motor/upgrade_generator.rb
166
167
  - lib/motor-admin.rb
167
168
  - lib/motor.rb
@@ -1532,14 +1533,16 @@ files:
1532
1533
  - ui/dist/icons/zoom-money.svg.gz
1533
1534
  - ui/dist/icons/zoom-out.svg.gz
1534
1535
  - ui/dist/icons/zoom-question.svg.gz
1535
- - ui/dist/main-14416e12b7c4f3d4ccf4.css.gz
1536
- - ui/dist/main-14416e12b7c4f3d4ccf4.js.gz
1536
+ - ui/dist/main-2d5ae868ed1fe51a0981.css.gz
1537
+ - ui/dist/main-2d5ae868ed1fe51a0981.js.gz
1537
1538
  - ui/dist/manifest.json
1538
1539
  homepage:
1539
1540
  licenses:
1540
1541
  - MIT
1541
1542
  metadata: {}
1542
- post_install_message:
1543
+ post_install_message: "\n ==================\n Run `rails g motor:upgrade &&
1544
+ rake db:migrate`\n to perform data migration and enable the latest features'\n
1545
+ \ ==================\n "
1543
1546
  rdoc_options: []
1544
1547
  require_paths:
1545
1548
  - lib