rails_admin 3.0.0.rc3 → 3.1.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/README.md +1 -7
  4. data/Rakefile +2 -0
  5. data/app/controllers/rails_admin/application_controller.rb +2 -0
  6. data/app/controllers/rails_admin/main_controller.rb +7 -13
  7. data/app/helpers/rails_admin/application_helper.rb +9 -5
  8. data/app/helpers/rails_admin/form_builder.rb +10 -0
  9. data/app/helpers/rails_admin/main_helper.rb +2 -0
  10. data/app/views/layouts/rails_admin/_head.html.erb +17 -5
  11. data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +4 -2
  12. data/app/views/layouts/rails_admin/application.html.erb +2 -2
  13. data/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +2 -2
  14. data/app/views/rails_admin/main/_form_filtering_select.html.erb +1 -1
  15. data/app/views/rails_admin/main/history.html.erb +1 -1
  16. data/app/views/rails_admin/main/index.html.erb +1 -1
  17. data/app/views/rails_admin/main/show.html.erb +11 -9
  18. data/config/initializers/active_record_extensions.rb +25 -0
  19. data/config/initializers/mongoid_extensions.rb +2 -0
  20. data/config/routes.rb +2 -0
  21. data/lib/generators/rails_admin/importmap_formatter.rb +28 -0
  22. data/lib/generators/rails_admin/install_generator.rb +68 -9
  23. data/lib/generators/rails_admin/templates/rails_admin.js +1 -0
  24. data/lib/generators/rails_admin/templates/rails_admin.scss.erb +1 -0
  25. data/lib/generators/rails_admin/templates/rails_admin.webpacker.js +2 -0
  26. data/lib/generators/rails_admin/utils.rb +2 -0
  27. data/lib/rails_admin/abstract_model.rb +9 -2
  28. data/lib/rails_admin/adapters/active_record/association.rb +10 -0
  29. data/lib/rails_admin/adapters/active_record/object_extension.rb +2 -0
  30. data/lib/rails_admin/adapters/active_record/property.rb +2 -0
  31. data/lib/rails_admin/adapters/active_record.rb +25 -2
  32. data/lib/rails_admin/adapters/composite_primary_keys/association.rb +45 -0
  33. data/lib/rails_admin/adapters/composite_primary_keys.rb +40 -0
  34. data/lib/rails_admin/adapters/mongoid/association.rb +14 -4
  35. data/lib/rails_admin/adapters/mongoid/bson.rb +2 -0
  36. data/lib/rails_admin/adapters/mongoid/extension.rb +2 -0
  37. data/lib/rails_admin/adapters/mongoid/object_extension.rb +2 -0
  38. data/lib/rails_admin/adapters/mongoid/property.rb +2 -0
  39. data/lib/rails_admin/adapters/mongoid.rb +3 -1
  40. data/lib/rails_admin/config/actions/base.rb +7 -0
  41. data/lib/rails_admin/config/actions/bulk_delete.rb +2 -0
  42. data/lib/rails_admin/config/actions/dashboard.rb +2 -0
  43. data/lib/rails_admin/config/actions/delete.rb +2 -0
  44. data/lib/rails_admin/config/actions/edit.rb +2 -0
  45. data/lib/rails_admin/config/actions/export.rb +2 -0
  46. data/lib/rails_admin/config/actions/history_index.rb +2 -0
  47. data/lib/rails_admin/config/actions/history_show.rb +2 -0
  48. data/lib/rails_admin/config/actions/index.rb +2 -0
  49. data/lib/rails_admin/config/actions/new.rb +2 -0
  50. data/lib/rails_admin/config/actions/show.rb +2 -0
  51. data/lib/rails_admin/config/actions/show_in_app.rb +6 -0
  52. data/lib/rails_admin/config/actions.rb +2 -0
  53. data/lib/rails_admin/config/configurable.rb +2 -0
  54. data/lib/rails_admin/config/fields/association.rb +2 -0
  55. data/lib/rails_admin/config/fields/base.rb +24 -8
  56. data/lib/rails_admin/config/fields/factories/action_text.rb +2 -0
  57. data/lib/rails_admin/config/fields/factories/active_storage.rb +2 -0
  58. data/lib/rails_admin/config/fields/factories/association.rb +6 -5
  59. data/lib/rails_admin/config/fields/factories/carrierwave.rb +2 -0
  60. data/lib/rails_admin/config/fields/factories/devise.rb +2 -0
  61. data/lib/rails_admin/config/fields/factories/dragonfly.rb +2 -0
  62. data/lib/rails_admin/config/fields/factories/enum.rb +2 -0
  63. data/lib/rails_admin/config/fields/factories/paperclip.rb +2 -0
  64. data/lib/rails_admin/config/fields/factories/password.rb +2 -0
  65. data/lib/rails_admin/config/fields/factories/shrine.rb +2 -0
  66. data/lib/rails_admin/config/fields/group.rb +2 -0
  67. data/lib/rails_admin/config/fields/types/action_text.rb +2 -0
  68. data/lib/rails_admin/config/fields/types/active_record_enum.rb +2 -0
  69. data/lib/rails_admin/config/fields/types/active_storage.rb +2 -0
  70. data/lib/rails_admin/config/fields/types/all.rb +3 -0
  71. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +3 -5
  72. data/lib/rails_admin/config/fields/types/boolean.rb +3 -1
  73. data/lib/rails_admin/config/fields/types/bson_object_id.rb +2 -0
  74. data/lib/rails_admin/config/fields/types/carrierwave.rb +2 -0
  75. data/lib/rails_admin/config/fields/types/citext.rb +2 -0
  76. data/lib/rails_admin/config/fields/types/ck_editor.rb +2 -0
  77. data/lib/rails_admin/config/fields/types/code_mirror.rb +2 -0
  78. data/lib/rails_admin/config/fields/types/color.rb +2 -0
  79. data/lib/rails_admin/config/fields/types/composite_keys_belongs_to_association.rb +31 -0
  80. data/lib/rails_admin/config/fields/types/date.rb +2 -0
  81. data/lib/rails_admin/config/fields/types/datetime.rb +2 -0
  82. data/lib/rails_admin/config/fields/types/decimal.rb +2 -0
  83. data/lib/rails_admin/config/fields/types/dragonfly.rb +2 -0
  84. data/lib/rails_admin/config/fields/types/enum.rb +2 -0
  85. data/lib/rails_admin/config/fields/types/file_upload.rb +2 -0
  86. data/lib/rails_admin/config/fields/types/float.rb +2 -0
  87. data/lib/rails_admin/config/fields/types/froala.rb +2 -0
  88. data/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +2 -0
  89. data/lib/rails_admin/config/fields/types/has_many_association.rb +2 -0
  90. data/lib/rails_admin/config/fields/types/has_one_association.rb +3 -1
  91. data/lib/rails_admin/config/fields/types/hidden.rb +2 -0
  92. data/lib/rails_admin/config/fields/types/inet.rb +2 -0
  93. data/lib/rails_admin/config/fields/types/integer.rb +2 -0
  94. data/lib/rails_admin/config/fields/types/json.rb +2 -0
  95. data/lib/rails_admin/config/fields/types/multiple_active_storage.rb +10 -0
  96. data/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +2 -0
  97. data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +2 -0
  98. data/lib/rails_admin/config/fields/types/numeric.rb +2 -0
  99. data/lib/rails_admin/config/fields/types/paperclip.rb +2 -0
  100. data/lib/rails_admin/config/fields/types/password.rb +2 -0
  101. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +2 -0
  102. data/lib/rails_admin/config/fields/types/serialized.rb +2 -0
  103. data/lib/rails_admin/config/fields/types/shrine.rb +2 -0
  104. data/lib/rails_admin/config/fields/types/simple_mde.rb +2 -0
  105. data/lib/rails_admin/config/fields/types/string.rb +2 -0
  106. data/lib/rails_admin/config/fields/types/string_like.rb +2 -0
  107. data/lib/rails_admin/config/fields/types/text.rb +2 -0
  108. data/lib/rails_admin/config/fields/types/time.rb +2 -0
  109. data/lib/rails_admin/config/fields/types/timestamp.rb +2 -0
  110. data/lib/rails_admin/config/fields/types/uuid.rb +2 -0
  111. data/lib/rails_admin/config/fields/types/wysihtml5.rb +2 -0
  112. data/lib/rails_admin/config/fields/types.rb +2 -0
  113. data/lib/rails_admin/config/fields.rb +3 -1
  114. data/lib/rails_admin/config/groupable.rb +2 -0
  115. data/lib/rails_admin/config/has_description.rb +2 -0
  116. data/lib/rails_admin/config/has_fields.rb +3 -1
  117. data/lib/rails_admin/config/has_groups.rb +2 -0
  118. data/lib/rails_admin/config/hideable.rb +2 -0
  119. data/lib/rails_admin/config/inspectable.rb +2 -0
  120. data/lib/rails_admin/config/model.rb +2 -0
  121. data/lib/rails_admin/config/proxyable/proxy.rb +2 -0
  122. data/lib/rails_admin/config/proxyable.rb +2 -0
  123. data/lib/rails_admin/config/sections/base.rb +2 -0
  124. data/lib/rails_admin/config/sections/create.rb +2 -0
  125. data/lib/rails_admin/config/sections/edit.rb +2 -0
  126. data/lib/rails_admin/config/sections/export.rb +2 -0
  127. data/lib/rails_admin/config/sections/list.rb +2 -0
  128. data/lib/rails_admin/config/sections/modal.rb +2 -0
  129. data/lib/rails_admin/config/sections/nested.rb +2 -0
  130. data/lib/rails_admin/config/sections/show.rb +2 -0
  131. data/lib/rails_admin/config/sections/update.rb +2 -0
  132. data/lib/rails_admin/config/sections.rb +2 -0
  133. data/lib/rails_admin/config.rb +7 -1
  134. data/lib/rails_admin/engine.rb +30 -16
  135. data/lib/rails_admin/extension.rb +2 -0
  136. data/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +2 -0
  137. data/lib/rails_admin/extensions/cancancan.rb +2 -0
  138. data/lib/rails_admin/extensions/controller_extension.rb +2 -0
  139. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +3 -1
  140. data/lib/rails_admin/extensions/paper_trail.rb +2 -0
  141. data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +3 -1
  142. data/lib/rails_admin/extensions/pundit.rb +2 -0
  143. data/lib/rails_admin/support/csv_converter.rb +2 -1
  144. data/lib/rails_admin/support/datetime.rb +3 -1
  145. data/lib/rails_admin/support/esmodule_preprocessor.rb +4 -0
  146. data/lib/rails_admin/support/hash_helper.rb +2 -0
  147. data/lib/rails_admin/version.rb +37 -2
  148. data/lib/rails_admin.rb +3 -1
  149. data/lib/tasks/rails_admin.rake +2 -0
  150. data/package.json +1 -1
  151. data/src/rails_admin/base.js +13 -1
  152. data/src/rails_admin/filtering-multiselect.js +5 -10
  153. data/src/rails_admin/filtering-select.js +2 -2
  154. data/src/rails_admin/nested-form-hooks.js +1 -1
  155. data/src/rails_admin/remote-form.js +4 -5
  156. data/src/rails_admin/styles/base/theming.scss +10 -0
  157. data/src/rails_admin/styles/base.scss +5 -5
  158. data/src/rails_admin/ui.js +11 -2
  159. data/src/rails_admin/widgets.js +2 -2
  160. data/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +958 -395
  161. data/vendor/assets/javascripts/rails_admin/jquery3.js +118 -109
  162. metadata +9 -5
  163. data/lib/generators/rails_admin/templates/rails_admin.js.erb +0 -2
  164. data/lib/generators/rails_admin/templates/rails_admin.scss +0 -1
  165. data/lib/generators/rails_admin/templates/webpack.config.js +0 -29
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/text'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/has_many_association'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/association'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/association'
2
4
 
3
5
  module RailsAdmin
@@ -18,7 +20,7 @@ module RailsAdmin
18
20
  end
19
21
 
20
22
  def selected_id
21
- value.try :id
23
+ value.try(:id).try(:to_s)
22
24
  end
23
25
 
24
26
  def method_name
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/string_like'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/base'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/numeric'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/text'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/multiple_file_upload'
2
4
 
3
5
  module RailsAdmin
@@ -12,6 +14,10 @@ module RailsAdmin
12
14
  {resize_to_limit: [100, 100]}
13
15
  end
14
16
 
17
+ register_instance_option :keep_value do
18
+ value.signed_id
19
+ end
20
+
15
21
  register_instance_option :delete_value do
16
22
  value.id
17
23
  end
@@ -41,6 +47,10 @@ module RailsAdmin
41
47
  ActiveStorageAttachment
42
48
  end
43
49
 
50
+ register_instance_option :keep_method do
51
+ method_name if ::ActiveStorage.replace_on_assign_to_many
52
+ end
53
+
44
54
  register_instance_option :delete_method do
45
55
  "remove_#{name}" if bindings[:object].respond_to?("remove_#{name}")
46
56
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/multiple_file_upload'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  module Fields
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/base'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/base'
2
4
  require 'rails_admin/config/fields/types/file_upload'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/string'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/belongs_to_association'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/text'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/file_upload'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/text'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/string_like'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/base'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/string_like'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/datetime'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/datetime'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/string'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/types/text'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support/core_ext/string/inflections'
2
4
  require 'rails_admin/config/fields'
3
5
  require 'rails_admin/config/fields/association'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  module Fields
@@ -20,7 +22,7 @@ module RailsAdmin
20
22
 
21
23
  # Registry of field factories.
22
24
  #
23
- # Field factory is an anonymous function that recieves the parent object,
25
+ # Field factory is an anonymous function that receives the parent object,
24
26
  # an array of field properties and an array of fields already instantiated.
25
27
  #
26
28
  # If the factory returns true then that property will not be run through
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/group'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  # Provides accessor and autoregistering of model's description.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  # Provides accessors and autoregistering of model's fields.
@@ -42,7 +44,7 @@ module RailsAdmin
42
44
  [*name].each { |field_name| field(field_name, type, false, &block) }
43
45
  end
44
46
 
45
- # include fields by name and apply an optionnal block to each (through a call to fields),
47
+ # include fields by name and apply an optional block to each (through a call to fields),
46
48
  # or include fields by conditions if no field names
47
49
  def include_fields(*field_names, &block)
48
50
  if field_names.empty?
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/fields/group'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  # Defines a visibility configuration
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  module Inspectable
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config'
2
4
  require 'rails_admin/config/proxyable'
3
5
  require 'rails_admin/config/configurable'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Config
3
5
  module Proxyable
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/proxyable/proxy'
2
4
  module RailsAdmin
3
5
  module Config
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/proxyable'
2
4
  require 'rails_admin/config/configurable'
3
5
  require 'rails_admin/config/inspectable'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/edit'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/base'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/base'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/base'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/edit'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/edit'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/base'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/sections/edit'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support/core_ext/string/inflections'
2
4
  require 'rails_admin/config/sections/base'
3
5
  require 'rails_admin/config/sections/edit'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/config/model'
2
4
  require 'rails_admin/config/sections/list'
3
5
  require 'active_support/core_ext/module/attribute_accessors'
@@ -73,6 +75,9 @@ module RailsAdmin
73
75
  # @see RailsAdmin.config
74
76
  attr_reader :registry
75
77
 
78
+ # Bootstrap CSS classes used for Navigation bar
79
+ attr_accessor :navbar_css_classes
80
+
76
81
  # show Gravatar in Navigation bar
77
82
  attr_accessor :show_gravatar
78
83
 
@@ -260,7 +265,7 @@ module RailsAdmin
260
265
  def asset_source
261
266
  @asset_source ||=
262
267
  begin
263
- warn <<-MSG.gsub(/^ +/, '').freeze
268
+ warn <<~MSG
264
269
  [Warning] After upgrading RailsAdmin to 3.x you haven't set asset_source yet, using :sprockets as the default.
265
270
  To suppress this message, run 'rails rails_admin:install' to setup the asset delivery method suitable to you.
266
271
  MSG
@@ -334,6 +339,7 @@ module RailsAdmin
334
339
  @label_methods = %i[name title]
335
340
  @main_app_name = proc { [Rails.application.engine_name.titleize.chomp(' Application'), 'Admin'] }
336
341
  @registry = {}
342
+ @navbar_css_classes = %w[navbar-dark bg-primary border-bottom]
337
343
  @show_gravatar = true
338
344
  @navigation_static_links = {}
339
345
  @navigation_static_label = nil
@@ -1,26 +1,19 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'kaminari'
2
4
  require 'nested_form'
3
5
  require 'rails'
4
6
  require 'rails_admin'
7
+ require 'rails_admin/version'
5
8
  require 'turbo-rails'
6
9
 
7
10
  module RailsAdmin
8
11
  class Engine < Rails::Engine
9
12
  isolate_namespace RailsAdmin
10
13
 
11
- config.action_dispatch.rescue_responses['RailsAdmin::ActionNotAllowed'] = :forbidden
14
+ attr_accessor :importmap
12
15
 
13
- initializer 'RailsAdmin precompile hook', group: :all do |app|
14
- if app.config.respond_to?(:assets)
15
- app.config.assets.precompile += %w[
16
- rails_admin/application.js
17
- rails_admin/application.css
18
- ]
19
- app.config.assets.paths << RailsAdmin::Engine.root.join('src')
20
- require 'rails_admin/support/esmodule_preprocessor'
21
- Sprockets.register_preprocessor 'application/javascript', RailsAdmin::ESModulePreprocessor
22
- end
23
- end
16
+ config.action_dispatch.rescue_responses['RailsAdmin::ActionNotAllowed'] = :forbidden
24
17
 
25
18
  initializer 'RailsAdmin reload config in development' do |app|
26
19
  config.initializer_path = app.root.join('config/initializers/rails_admin.rb')
@@ -42,6 +35,30 @@ module RailsAdmin
42
35
  end
43
36
  end
44
37
 
38
+ initializer 'RailsAdmin apply configuration', after: :eager_load! do |app|
39
+ RailsAdmin::Config.initialize!
40
+
41
+ # Force route reload, since it doesn't reflect RailsAdmin action configuration yet
42
+ app.reload_routes!
43
+ end
44
+
45
+ initializer 'RailsAdmin precompile hook', group: :all, after: 'RailsAdmin apply configuration' do |app|
46
+ case RailsAdmin.config.asset_source
47
+ when :sprockets
48
+ if defined?(Sprockets)
49
+ app.config.assets.precompile += %w[
50
+ rails_admin/application.js
51
+ rails_admin/application.css
52
+ ]
53
+ app.config.assets.paths << RailsAdmin::Engine.root.join('src')
54
+ require 'rails_admin/support/esmodule_preprocessor'
55
+ Sprockets.register_preprocessor 'application/javascript', RailsAdmin::ESModulePreprocessor
56
+ end
57
+ when :importmap
58
+ self.importmap = Importmap::Map.new.draw(app.root.join('config/importmap.rails_admin.rb'))
59
+ end
60
+ end
61
+
45
62
  # Check for required middlewares, users may forget to use them in Rails API mode
46
63
  config.after_initialize do |app|
47
64
  has_session_store = app.config.middleware.to_a.any? do |m|
@@ -65,10 +82,7 @@ module RailsAdmin
65
82
  ERROR
66
83
  end
67
84
 
68
- RailsAdmin::Config.initialize!
69
-
70
- # Force route reload, since it doesn't reflect RailsAdmin action configuration yet
71
- app.reload_routes!
85
+ RailsAdmin::Version.warn_with_js_version
72
86
  end
73
87
  end
74
88
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/extensions/controller_extension'
2
4
 
3
5
  module RailsAdmin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Extensions
3
5
  module CanCanCan
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/extensions/cancancan/authorization_adapter'
2
4
 
3
5
  RailsAdmin.add_extension(:cancancan, RailsAdmin::Extensions::CanCanCan, authorization: true)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Extensions
3
5
  module ControllerExtension
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support/core_ext/string/strip'
2
4
 
3
5
  module RailsAdmin
@@ -49,7 +51,7 @@ module RailsAdmin
49
51
  created_at: :created_at,
50
52
  message: :event,
51
53
  }.freeze
52
- E_VERSION_MODEL_NOT_SET = <<-ERROR.strip_heredoc.freeze
54
+ E_VERSION_MODEL_NOT_SET = <<~ERROR
53
55
  Please set up PaperTrail's version model explicitly.
54
56
 
55
57
  config.audit_with :paper_trail, 'User', 'PaperTrail::Version'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/extensions/paper_trail/auditing_adapter'
2
4
 
3
5
  RailsAdmin.add_extension(:paper_trail, RailsAdmin::Extensions::PaperTrail, auditing: true)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Extensions
3
5
  module Pundit
@@ -7,7 +9,7 @@ module RailsAdmin
7
9
  class AuthorizationAdapter
8
10
  # This method is called first time only and used for setup
9
11
  def self.setup
10
- RailsAdmin::Extensions::ControllerExtension.include ::Pundit
12
+ RailsAdmin::Extensions::ControllerExtension.include defined?(::Pundit::Authorization) ? ::Pundit::Authorization : ::Pundit
11
13
  end
12
14
 
13
15
  # See the +authorize_with+ config method for where the initialization happens.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_admin/extensions/pundit/authorization_adapter'
2
4
 
3
5
  RailsAdmin.add_extension(:pundit, RailsAdmin::Extensions::Pundit, authorization: true)
@@ -1,4 +1,5 @@
1
1
  # encoding: UTF-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'csv'
4
5
 
@@ -40,7 +41,7 @@ module RailsAdmin
40
41
 
41
42
  def to_csv(options = {})
42
43
  if CSV::VERSION == '3.0.2'
43
- raise <<-MSG.gsub(/^\s+/, '')
44
+ raise <<~MSG
44
45
  CSV library bundled with Ruby 2.6.0 has encoding issue, please upgrade Ruby to 2.6.1 or later.
45
46
  https://github.com/ruby/csv/issues/62
46
47
  MSG
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  module Support
3
5
  class Datetime
@@ -50,7 +52,7 @@ module RailsAdmin
50
52
  when '%z' # Time zone as hour and minute offset from UTC (e.g. +0900)
51
53
  Time.zone.formatted_offset(false)
52
54
  else
53
- FLATPICKR_TRANSLATIONS[match] or raise <<-MSG.gsub(/^\s{16}/, '')
55
+ FLATPICKR_TRANSLATIONS[match] or raise <<~MSG
54
56
  Unsupported strftime directive '#{match}' was found. Please consider explicitly setting flatpickr_format instance option for the field.
55
57
  field(:name_of_field) { flatpickr_format '...' }
56
58
  MSG
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  class ESModulePreprocessor
3
5
  def self.instance
@@ -11,6 +13,8 @@ module RailsAdmin
11
13
  def initialize; end
12
14
 
13
15
  def call(input)
16
+ return unless RailsAdmin.config.asset_source == :sprockets
17
+
14
18
  data = input[:data]
15
19
 
16
20
  if input[:filename].start_with? RailsAdmin::Engine.root.join('src').to_s
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RailsAdmin
2
4
  class HashHelper
3
5
  def self.symbolize(obj)