motor-admin 0.2.54 → 0.2.55

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: 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