hyper-max-sys 0.0.1

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.
Files changed (329) hide show
  1. checksums.yaml +7 -0
  2. data/hyper-max-sys.gemspec +12 -0
  3. data/rails_admin-3.3.0/Gemfile +56 -0
  4. data/rails_admin-3.3.0/LICENSE.md +20 -0
  5. data/rails_admin-3.3.0/README.md +105 -0
  6. data/rails_admin-3.3.0/Rakefile +37 -0
  7. data/rails_admin-3.3.0/app/assets/javascripts/rails_admin/application.js.erb +30 -0
  8. data/rails_admin-3.3.0/app/assets/javascripts/rails_admin/custom/ui.js +1 -0
  9. data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/application.scss.erb +35 -0
  10. data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/custom/mixins.scss +11 -0
  11. data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/custom/theming.scss +13 -0
  12. data/rails_admin-3.3.0/app/assets/stylesheets/rails_admin/custom/variables.scss +15 -0
  13. data/rails_admin-3.3.0/app/controllers/rails_admin/application_controller.rb +84 -0
  14. data/rails_admin-3.3.0/app/controllers/rails_admin/main_controller.rb +153 -0
  15. data/rails_admin-3.3.0/app/helpers/rails_admin/application_helper.rb +264 -0
  16. data/rails_admin-3.3.0/app/helpers/rails_admin/form_builder.rb +157 -0
  17. data/rails_admin-3.3.0/app/helpers/rails_admin/main_helper.rb +61 -0
  18. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +5 -0
  19. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +9 -0
  20. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +9 -0
  21. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +15 -0
  22. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +9 -0
  23. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +9 -0
  24. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +8 -0
  25. data/rails_admin-3.3.0/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +9 -0
  26. data/rails_admin-3.3.0/app/views/layouts/rails_admin/_head.html.erb +32 -0
  27. data/rails_admin-3.3.0/app/views/layouts/rails_admin/_navigation.html.erb +17 -0
  28. data/rails_admin-3.3.0/app/views/layouts/rails_admin/_secondary_navigation.html.erb +26 -0
  29. data/rails_admin-3.3.0/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +5 -0
  30. data/rails_admin-3.3.0/app/views/layouts/rails_admin/application.html.erb +27 -0
  31. data/rails_admin-3.3.0/app/views/layouts/rails_admin/content.html.erb +22 -0
  32. data/rails_admin-3.3.0/app/views/layouts/rails_admin/modal.js.erb +7 -0
  33. data/rails_admin-3.3.0/app/views/rails_admin/main/_dashboard_history.html.erb +45 -0
  34. data/rails_admin-3.3.0/app/views/rails_admin/main/_delete_notice.html.erb +35 -0
  35. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_action_text.html.erb +8 -0
  36. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_boolean.html.erb +14 -0
  37. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_ck_editor.html.erb +10 -0
  38. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_code_mirror.html.erb +9 -0
  39. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_colorpicker.html.erb +5 -0
  40. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_datetime.html.erb +10 -0
  41. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_enumeration.html.erb +25 -0
  42. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_field.html.erb +1 -0
  43. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_file_upload.html.erb +17 -0
  44. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +19 -0
  45. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_filtering_select.html.erb +21 -0
  46. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_froala.html.erb +8 -0
  47. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +20 -0
  48. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_nested_many.html.erb +21 -0
  49. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_nested_one.html.erb +21 -0
  50. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_polymorphic_association.html.erb +23 -0
  51. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_simple_mde.html.erb +8 -0
  52. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_text.html.erb +1 -0
  53. data/rails_admin-3.3.0/app/views/rails_admin/main/_form_wysihtml5.html.erb +8 -0
  54. data/rails_admin-3.3.0/app/views/rails_admin/main/_submit_buttons.html.erb +25 -0
  55. data/rails_admin-3.3.0/app/views/rails_admin/main/bulk_delete.html.erb +19 -0
  56. data/rails_admin-3.3.0/app/views/rails_admin/main/dashboard.html.erb +64 -0
  57. data/rails_admin-3.3.0/app/views/rails_admin/main/delete.html.erb +21 -0
  58. data/rails_admin-3.3.0/app/views/rails_admin/main/edit.html.erb +3 -0
  59. data/rails_admin-3.3.0/app/views/rails_admin/main/export.html.erb +149 -0
  60. data/rails_admin-3.3.0/app/views/rails_admin/main/history.html.erb +80 -0
  61. data/rails_admin-3.3.0/app/views/rails_admin/main/index.html.erb +184 -0
  62. data/rails_admin-3.3.0/app/views/rails_admin/main/new.html.erb +3 -0
  63. data/rails_admin-3.3.0/app/views/rails_admin/main/show.html.erb +30 -0
  64. data/rails_admin-3.3.0/config/initializers/active_record_extensions.rb +23 -0
  65. data/rails_admin-3.3.0/config/initializers/mongoid_extensions.rb +6 -0
  66. data/rails_admin-3.3.0/config/locales/rails_admin.en.yml +158 -0
  67. data/rails_admin-3.3.0/config/routes.rb +14 -0
  68. data/rails_admin-3.3.0/lib/generators/rails_admin/importmap_formatter.rb +28 -0
  69. data/rails_admin-3.3.0/lib/generators/rails_admin/install_generator.rb +142 -0
  70. data/rails_admin-3.3.0/lib/generators/rails_admin/templates/initializer.erb +42 -0
  71. data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.js +1 -0
  72. data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.scss.erb +1 -0
  73. data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.vite.js +2 -0
  74. data/rails_admin-3.3.0/lib/generators/rails_admin/templates/rails_admin.webpacker.js +2 -0
  75. data/rails_admin-3.3.0/lib/generators/rails_admin/utils.rb +21 -0
  76. data/rails_admin-3.3.0/lib/rails_admin/abstract_model.rb +275 -0
  77. data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record/association.rb +130 -0
  78. data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record/object_extension.rb +13 -0
  79. data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record/property.rb +58 -0
  80. data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record.rb +367 -0
  81. data/rails_admin-3.3.0/lib/rails_admin/adapters/active_record.rb.bak +348 -0
  82. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/association.rb +161 -0
  83. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/bson.rb +31 -0
  84. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/extension.rb +49 -0
  85. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/object_extension.rb +29 -0
  86. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid/property.rb +101 -0
  87. data/rails_admin-3.3.0/lib/rails_admin/adapters/mongoid.rb +312 -0
  88. data/rails_admin-3.3.0/lib/rails_admin/config/actions/base.rb +162 -0
  89. data/rails_admin-3.3.0/lib/rails_admin/config/actions/bulk_delete.rb +67 -0
  90. data/rails_admin-3.3.0/lib/rails_admin/config/actions/dashboard.rb +62 -0
  91. data/rails_admin-3.3.0/lib/rails_admin/config/actions/delete.rb +58 -0
  92. data/rails_admin-3.3.0/lib/rails_admin/config/actions/edit.rb +56 -0
  93. data/rails_admin-3.3.0/lib/rails_admin/config/actions/export.rb +41 -0
  94. data/rails_admin-3.3.0/lib/rails_admin/config/actions/history_index.rb +40 -0
  95. data/rails_admin-3.3.0/lib/rails_admin/config/actions/history_show.rb +40 -0
  96. data/rails_admin-3.3.0/lib/rails_admin/config/actions/index.rb +98 -0
  97. data/rails_admin-3.3.0/lib/rails_admin/config/actions/new.rb +69 -0
  98. data/rails_admin-3.3.0/lib/rails_admin/config/actions/show.rb +36 -0
  99. data/rails_admin-3.3.0/lib/rails_admin/config/actions/show_in_app.rb +37 -0
  100. data/rails_admin-3.3.0/lib/rails_admin/config/actions.rb +122 -0
  101. data/rails_admin-3.3.0/lib/rails_admin/config/configurable.rb +107 -0
  102. data/rails_admin-3.3.0/lib/rails_admin/config/const_load_suppressor.rb +78 -0
  103. data/rails_admin-3.3.0/lib/rails_admin/config/fields/association.rb +168 -0
  104. data/rails_admin-3.3.0/lib/rails_admin/config/fields/base.rb +391 -0
  105. data/rails_admin-3.3.0/lib/rails_admin/config/fields/collection_association.rb +90 -0
  106. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/action_text.rb +14 -0
  107. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/active_storage.rb +34 -0
  108. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/association.rb +32 -0
  109. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/carrierwave.rb +30 -0
  110. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/devise.rb +28 -0
  111. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/dragonfly.rb +28 -0
  112. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/enum.rb +23 -0
  113. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/paperclip.rb +29 -0
  114. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/password.rb +19 -0
  115. data/rails_admin-3.3.0/lib/rails_admin/config/fields/factories/shrine.rb +29 -0
  116. data/rails_admin-3.3.0/lib/rails_admin/config/fields/group.rb +77 -0
  117. data/rails_admin-3.3.0/lib/rails_admin/config/fields/singular_association.rb +59 -0
  118. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/action_text.rb +36 -0
  119. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/active_record_enum.rb +62 -0
  120. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/active_storage.rb +70 -0
  121. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/all.rb +43 -0
  122. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/belongs_to_association.rb +48 -0
  123. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/boolean.rb +70 -0
  124. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/bson_object_id.rb +42 -0
  125. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/carrierwave.rb +34 -0
  126. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/citext.rb +15 -0
  127. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/ck_editor.rb +40 -0
  128. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/code_mirror.rb +48 -0
  129. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/color.rb +43 -0
  130. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/date.rb +41 -0
  131. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/datetime.rb +96 -0
  132. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/decimal.rb +23 -0
  133. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/dragonfly.rb +44 -0
  134. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/enum.rb +52 -0
  135. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/file_upload.rb +87 -0
  136. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/float.rb +23 -0
  137. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/froala.rb +37 -0
  138. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +16 -0
  139. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/has_many_association.rb +16 -0
  140. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/has_one_association.rb +35 -0
  141. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/hidden.rb +31 -0
  142. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/inet.rb +15 -0
  143. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/integer.rb +20 -0
  144. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/json.rb +37 -0
  145. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/multiple_active_storage.rb +82 -0
  146. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/multiple_carrierwave.rb +59 -0
  147. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/multiple_file_upload.rb +134 -0
  148. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/numeric.rb +24 -0
  149. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/paperclip.rb +30 -0
  150. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/password.rb +45 -0
  151. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/polymorphic_association.rb +118 -0
  152. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/serialized.rb +28 -0
  153. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/shrine.rb +56 -0
  154. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/simple_mde.rb +38 -0
  155. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/string.rb +50 -0
  156. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/string_like.rb +25 -0
  157. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/text.rb +28 -0
  158. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/time.rb +36 -0
  159. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/timestamp.rb +16 -0
  160. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/uuid.rb +15 -0
  161. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types/wysihtml5.rb +43 -0
  162. data/rails_admin-3.3.0/lib/rails_admin/config/fields/types.rb +29 -0
  163. data/rails_admin-3.3.0/lib/rails_admin/config/fields.rb +92 -0
  164. data/rails_admin-3.3.0/lib/rails_admin/config/groupable.rb +20 -0
  165. data/rails_admin-3.3.0/lib/rails_admin/config/has_description.rb +14 -0
  166. data/rails_admin-3.3.0/lib/rails_admin/config/has_fields.rb +144 -0
  167. data/rails_admin-3.3.0/lib/rails_admin/config/has_groups.rb +27 -0
  168. data/rails_admin-3.3.0/lib/rails_admin/config/hideable.rb +30 -0
  169. data/rails_admin-3.3.0/lib/rails_admin/config/inspectable.rb +39 -0
  170. data/rails_admin-3.3.0/lib/rails_admin/config/lazy_model.rb +74 -0
  171. data/rails_admin-3.3.0/lib/rails_admin/config/model.rb +120 -0
  172. data/rails_admin-3.3.0/lib/rails_admin/config/proxyable/proxy.rb +39 -0
  173. data/rails_admin-3.3.0/lib/rails_admin/config/proxyable.rb +26 -0
  174. data/rails_admin-3.3.0/lib/rails_admin/config/sections/base.rb +36 -0
  175. data/rails_admin-3.3.0/lib/rails_admin/config/sections/create.rb +13 -0
  176. data/rails_admin-3.3.0/lib/rails_admin/config/sections/edit.rb +13 -0
  177. data/rails_admin-3.3.0/lib/rails_admin/config/sections/export.rb +13 -0
  178. data/rails_admin-3.3.0/lib/rails_admin/config/sections/list.rb +63 -0
  179. data/rails_admin-3.3.0/lib/rails_admin/config/sections/modal.rb +12 -0
  180. data/rails_admin-3.3.0/lib/rails_admin/config/sections/nested.rb +12 -0
  181. data/rails_admin-3.3.0/lib/rails_admin/config/sections/show.rb +12 -0
  182. data/rails_admin-3.3.0/lib/rails_admin/config/sections/update.rb +12 -0
  183. data/rails_admin-3.3.0/lib/rails_admin/config/sections.rb +39 -0
  184. data/rails_admin-3.3.0/lib/rails_admin/config.rb +403 -0
  185. data/rails_admin-3.3.0/lib/rails_admin/engine.rb +84 -0
  186. data/rails_admin-3.3.0/lib/rails_admin/extension.rb +35 -0
  187. data/rails_admin-3.3.0/lib/rails_admin/extensions/cancancan/authorization_adapter.rb +90 -0
  188. data/rails_admin-3.3.0/lib/rails_admin/extensions/cancancan.rb +5 -0
  189. data/rails_admin-3.3.0/lib/rails_admin/extensions/controller_extension.rb +8 -0
  190. data/rails_admin-3.3.0/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +187 -0
  191. data/rails_admin-3.3.0/lib/rails_admin/extensions/paper_trail.rb +5 -0
  192. data/rails_admin-3.3.0/lib/rails_admin/extensions/pundit/authorization_adapter.rb +72 -0
  193. data/rails_admin-3.3.0/lib/rails_admin/extensions/pundit.rb +5 -0
  194. data/rails_admin-3.3.0/lib/rails_admin/extensions/url_for_extension.rb +15 -0
  195. data/rails_admin-3.3.0/lib/rails_admin/support/composite_keys_serializer.rb +15 -0
  196. data/rails_admin-3.3.0/lib/rails_admin/support/csv_converter.rb +107 -0
  197. data/rails_admin-3.3.0/lib/rails_admin/support/datetime.rb +66 -0
  198. data/rails_admin-3.3.0/lib/rails_admin/support/es_module_processor.rb +23 -0
  199. data/rails_admin-3.3.0/lib/rails_admin/support/hash_helper.rb +31 -0
  200. data/rails_admin-3.3.0/lib/rails_admin/version.rb +54 -0
  201. data/rails_admin-3.3.0/lib/rails_admin.rb +62 -0
  202. data/rails_admin-3.3.0/lib/tasks/rails_admin.rake +47 -0
  203. data/rails_admin-3.3.0/package.json +30 -0
  204. data/rails_admin-3.3.0/src/rails_admin/abstract-select.js +30 -0
  205. data/rails_admin-3.3.0/src/rails_admin/base.js +32 -0
  206. data/rails_admin-3.3.0/src/rails_admin/filter-box.js +360 -0
  207. data/rails_admin-3.3.0/src/rails_admin/filtering-multiselect.js +387 -0
  208. data/rails_admin-3.3.0/src/rails_admin/filtering-select.js +306 -0
  209. data/rails_admin-3.3.0/src/rails_admin/i18n.js +18 -0
  210. data/rails_admin-3.3.0/src/rails_admin/jquery.js +3 -0
  211. data/rails_admin-3.3.0/src/rails_admin/nested-form-hooks.js +110 -0
  212. data/rails_admin-3.3.0/src/rails_admin/remote-form.js +193 -0
  213. data/rails_admin-3.3.0/src/rails_admin/sidescroll.js +20 -0
  214. data/rails_admin-3.3.0/src/rails_admin/styles/base/README.txt +2 -0
  215. data/rails_admin-3.3.0/src/rails_admin/styles/base/mixins.scss +1 -0
  216. data/rails_admin-3.3.0/src/rails_admin/styles/base/theming.scss +342 -0
  217. data/rails_admin-3.3.0/src/rails_admin/styles/base/variables.scss +3 -0
  218. data/rails_admin-3.3.0/src/rails_admin/styles/base.scss +27 -0
  219. data/rails_admin-3.3.0/src/rails_admin/styles/filtering-multiselect.scss +53 -0
  220. data/rails_admin-3.3.0/src/rails_admin/styles/filtering-select.scss +70 -0
  221. data/rails_admin-3.3.0/src/rails_admin/styles/widgets.scss +26 -0
  222. data/rails_admin-3.3.0/src/rails_admin/ui.js +176 -0
  223. data/rails_admin-3.3.0/src/rails_admin/vendor/jquery_nested_form.js +122 -0
  224. data/rails_admin-3.3.0/src/rails_admin/widgets.js +507 -0
  225. data/rails_admin-3.3.0/vendor/assets/fonts/rails_admin/fa-solid-900.ttf +0 -0
  226. data/rails_admin-3.3.0/vendor/assets/fonts/rails_admin/fa-solid-900.woff2 +0 -0
  227. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
  228. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +11246 -0
  229. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +41 -0
  230. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +1637 -0
  231. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +17 -0
  232. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +47 -0
  233. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +500 -0
  234. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +42 -0
  235. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +47 -0
  236. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +51 -0
  237. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +17 -0
  238. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +735 -0
  239. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +689 -0
  240. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +680 -0
  241. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +230 -0
  242. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +1561 -0
  243. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/jquery3.js +10881 -0
  244. data/rails_admin-3.3.0/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
  245. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
  246. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
  247. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
  248. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
  249. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
  250. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +111 -0
  251. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
  252. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +229 -0
  253. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +40 -0
  254. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
  255. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
  256. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -0
  257. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
  258. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +33 -0
  259. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
  260. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
  261. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +174 -0
  262. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +43 -0
  263. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
  264. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
  265. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +335 -0
  266. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
  267. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +64 -0
  268. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
  269. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
  270. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
  271. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
  272. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
  273. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
  274. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +155 -0
  275. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
  276. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +115 -0
  277. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
  278. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +104 -0
  279. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +630 -0
  280. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1641 -0
  281. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +53 -0
  282. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
  283. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
  284. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
  285. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
  286. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
  287. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
  288. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
  289. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
  290. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
  291. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
  292. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
  293. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
  294. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
  295. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
  296. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
  297. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
  298. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
  299. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
  300. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
  301. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
  302. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +78 -0
  303. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
  304. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
  305. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +133 -0
  306. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
  307. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +9 -0
  308. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
  309. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
  310. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
  311. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +144 -0
  312. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +47 -0
  313. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +151 -0
  314. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +16 -0
  315. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +24 -0
  316. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
  317. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +31 -0
  318. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
  319. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +6 -0
  320. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
  321. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-truncate.scss +8 -0
  322. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +26 -0
  323. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +89 -0
  324. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +29 -0
  325. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +47 -0
  326. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +354 -0
  327. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/flatpickr.css +791 -0
  328. data/rails_admin-3.3.0/vendor/assets/stylesheets/rails_admin/font-awesome.scss +6351 -0
  329. metadata +368 -0
@@ -0,0 +1,403 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/config/lazy_model'
4
+ require 'rails_admin/config/sections/list'
5
+ require 'rails_admin/support/composite_keys_serializer'
6
+ require 'active_support/core_ext/module/attribute_accessors'
7
+
8
+ module RailsAdmin
9
+ module Config
10
+ # RailsAdmin is setup to try and authenticate with warden
11
+ # If warden is found, then it will try to authenticate
12
+ #
13
+ # This is valid for custom warden setups, and also devise
14
+ # If you're using the admin setup for devise, you should set RailsAdmin to use the admin
15
+ #
16
+ # @see RailsAdmin::Config.authenticate_with
17
+ # @see RailsAdmin::Config.authorize_with
18
+ DEFAULT_AUTHENTICATION = proc {}
19
+
20
+ DEFAULT_AUTHORIZE = proc {}
21
+
22
+ DEFAULT_AUDIT = proc {}
23
+
24
+ DEFAULT_CURRENT_USER = proc {}
25
+
26
+ class << self
27
+ # Application title, can be an array of two elements
28
+ attr_accessor :main_app_name
29
+
30
+ # Configuration option to specify which models you want to exclude.
31
+ attr_accessor :excluded_models
32
+
33
+ # Configuration option to specify a allowlist of models you want to RailsAdmin to work with.
34
+ # The excluded_models list applies against the allowlist as well and further reduces the models
35
+ # RailsAdmin will use.
36
+ # If included_models is left empty ([]), then RailsAdmin will automatically use all the models
37
+ # in your application (less any excluded_models you may have specified).
38
+ attr_accessor :included_models
39
+
40
+ # Fields to be hidden in show, create and update views
41
+ attr_reader :default_hidden_fields
42
+
43
+ # Default items per page value used if a model level option has not
44
+ # been configured
45
+ attr_accessor :default_items_per_page
46
+
47
+ # Default association limit
48
+ attr_accessor :default_associated_collection_limit
49
+
50
+ attr_reader :default_search_operator
51
+
52
+ # Configuration option to specify which method names will be searched for
53
+ # to be used as a label for object records. This defaults to [:name, :title]
54
+ attr_accessor :label_methods
55
+
56
+ # hide blank fields in show view if true
57
+ attr_accessor :compact_show_view
58
+
59
+ # Tell browsers whether to use the native HTML5 validations (novalidate form option).
60
+ attr_accessor :browser_validations
61
+
62
+ # set parent controller
63
+ attr_reader :parent_controller
64
+
65
+ # set settings for `protect_from_forgery` method
66
+ # By default, it raises exception upon invalid CSRF tokens
67
+ attr_accessor :forgery_protection_settings
68
+
69
+ # Stores model configuration objects in a hash identified by model's class
70
+ # name.
71
+ #
72
+ # @see RailsAdmin.config
73
+ attr_reader :registry
74
+
75
+ # Bootstrap CSS classes used for Navigation bar
76
+ attr_accessor :navbar_css_classes
77
+
78
+ # show Gravatar in Navigation bar
79
+ attr_accessor :show_gravatar
80
+
81
+ # accepts a hash of static links to be shown below the main navigation
82
+ attr_accessor :navigation_static_links
83
+ attr_accessor :navigation_static_label
84
+
85
+ # Set where RailsAdmin fetches JS/CSS from, defaults to :sprockets
86
+ attr_writer :asset_source
87
+
88
+ # For customization of composite keys representation
89
+ attr_accessor :composite_keys_serializer
90
+
91
+ # Setup authentication to be run as a before filter
92
+ # This is run inside the controller instance so you can setup any authentication you need to
93
+ #
94
+ # By default, the authentication will run via warden if available
95
+ # and will run the default.
96
+ #
97
+ # If you use devise, this will authenticate the same as _authenticate_user!_
98
+ #
99
+ # @example Devise admin
100
+ # RailsAdmin.config do |config|
101
+ # config.authenticate_with do
102
+ # authenticate_admin!
103
+ # end
104
+ # end
105
+ #
106
+ # @example Custom Warden
107
+ # RailsAdmin.config do |config|
108
+ # config.authenticate_with do
109
+ # warden.authenticate! scope: :paranoid
110
+ # end
111
+ # end
112
+ #
113
+ # @see RailsAdmin::Config::DEFAULT_AUTHENTICATION
114
+ def authenticate_with(&blk)
115
+ @authenticate = blk if blk
116
+ @authenticate || DEFAULT_AUTHENTICATION
117
+ end
118
+
119
+ # Setup auditing/versioning provider that observe objects lifecycle
120
+ def audit_with(*args, &block)
121
+ extension = args.shift
122
+ if extension
123
+ klass = RailsAdmin::AUDITING_ADAPTERS[extension]
124
+ klass.setup if klass.respond_to? :setup
125
+ @audit = proc do
126
+ @auditing_adapter = klass.new(*([self] + args).compact, &block)
127
+ end
128
+ elsif block
129
+ @audit = block
130
+ end
131
+ @audit || DEFAULT_AUDIT
132
+ end
133
+
134
+ # Setup authorization to be run as a before filter
135
+ # This is run inside the controller instance so you can setup any authorization you need to.
136
+ #
137
+ # By default, there is no authorization.
138
+ #
139
+ # @example Custom
140
+ # RailsAdmin.config do |config|
141
+ # config.authorize_with do
142
+ # redirect_to root_path unless warden.user.is_admin?
143
+ # end
144
+ # end
145
+ #
146
+ # To use an authorization adapter, pass the name of the adapter. For example,
147
+ # to use with CanCanCan[https://github.com/CanCanCommunity/cancancan/], pass it like this.
148
+ #
149
+ # @example CanCanCan
150
+ # RailsAdmin.config do |config|
151
+ # config.authorize_with :cancancan
152
+ # end
153
+ #
154
+ # See the wiki[https://github.com/railsadminteam/rails_admin/wiki] for more on authorization.
155
+ #
156
+ # @see RailsAdmin::Config::DEFAULT_AUTHORIZE
157
+ def authorize_with(*args, &block)
158
+ extension = args.shift
159
+ if extension
160
+ klass = RailsAdmin::AUTHORIZATION_ADAPTERS[extension]
161
+ klass.setup if klass.respond_to? :setup
162
+ @authorize = proc do
163
+ @authorization_adapter = klass.new(*([self] + args).compact, &block)
164
+ end
165
+ elsif block
166
+ @authorize = block
167
+ end
168
+ @authorize || DEFAULT_AUTHORIZE
169
+ end
170
+
171
+ # Setup configuration using an extension-provided ConfigurationAdapter
172
+ #
173
+ # @example Custom configuration for role-based setup.
174
+ # RailsAdmin.config do |config|
175
+ # config.configure_with(:custom) do |config|
176
+ # config.models = ['User', 'Comment']
177
+ # config.roles = {
178
+ # 'Admin' => :all,
179
+ # 'User' => ['User']
180
+ # }
181
+ # end
182
+ # end
183
+ def configure_with(extension)
184
+ configuration = RailsAdmin::CONFIGURATION_ADAPTERS[extension].new
185
+ yield(configuration) if block_given?
186
+ end
187
+
188
+ # Setup a different method to determine the current user or admin logged in.
189
+ # This is run inside the controller instance and made available as a helper.
190
+ #
191
+ # By default, _request.env["warden"].user_ or _current_user_ will be used.
192
+ #
193
+ # @example Custom
194
+ # RailsAdmin.config do |config|
195
+ # config.current_user_method do
196
+ # current_admin
197
+ # end
198
+ # end
199
+ #
200
+ # @see RailsAdmin::Config::DEFAULT_CURRENT_USER
201
+ def current_user_method(&block)
202
+ @current_user = block if block
203
+ @current_user || DEFAULT_CURRENT_USER
204
+ end
205
+
206
+ def default_search_operator=(operator)
207
+ if %w[default like not_like starts_with ends_with is =].include? operator
208
+ @default_search_operator = operator
209
+ else
210
+ raise ArgumentError.new("Search operator '#{operator}' not supported")
211
+ end
212
+ end
213
+
214
+ # pool of all found model names from the whole application
215
+ def models_pool
216
+ (viable_models - excluded_models.collect(&:to_s)).uniq.sort
217
+ end
218
+
219
+ # Loads a model configuration instance from the registry or registers
220
+ # a new one if one is yet to be added.
221
+ #
222
+ # First argument can be an instance of requested model, its class object,
223
+ # its class name as a string or symbol or a RailsAdmin::AbstractModel
224
+ # instance.
225
+ #
226
+ # If a block is given it is evaluated in the context of configuration instance.
227
+ #
228
+ # Returns given model's configuration
229
+ #
230
+ # @see RailsAdmin::Config.registry
231
+ def model(entity, &block)
232
+ key =
233
+ case entity
234
+ when RailsAdmin::AbstractModel
235
+ entity.model.try(:name).try :to_sym
236
+ when Class, ConstLoadSuppressor::ConstProxy
237
+ entity.name.to_sym
238
+ when String, Symbol
239
+ entity.to_sym
240
+ else
241
+ entity.class.name.to_sym
242
+ end
243
+
244
+ @registry[key] ||= RailsAdmin::Config::LazyModel.new(key.to_s)
245
+ @registry[key].add_deferred_block(&block) if block
246
+ @registry[key]
247
+ end
248
+
249
+ def asset_source
250
+ @asset_source ||=
251
+ begin
252
+ detected = defined?(Sprockets) ? :sprockets : :invalid
253
+ unless ARGV.join(' ').include? 'rails_admin:install'
254
+ warn <<~MSG
255
+ [Warning] After upgrading RailsAdmin to 3.x you haven't set asset_source yet, using :#{detected} as the default.
256
+ To suppress this message, run 'rails rails_admin:install' to setup the asset delivery method suitable to you.
257
+ MSG
258
+ end
259
+ detected
260
+ end
261
+ end
262
+
263
+ def default_hidden_fields=(fields)
264
+ if fields.is_a?(Array)
265
+ @default_hidden_fields = {}
266
+ @default_hidden_fields[:edit] = fields
267
+ @default_hidden_fields[:show] = fields
268
+ else
269
+ @default_hidden_fields = fields
270
+ end
271
+ end
272
+
273
+ def parent_controller=(name)
274
+ @parent_controller = name
275
+
276
+ if defined?(RailsAdmin::ApplicationController) || defined?(RailsAdmin::MainController)
277
+ RailsAdmin::Config::ConstLoadSuppressor.allowing do
278
+ RailsAdmin.send(:remove_const, :ApplicationController)
279
+ RailsAdmin.send(:remove_const, :MainController)
280
+ load RailsAdmin::Engine.root.join('app/controllers/rails_admin/application_controller.rb')
281
+ load RailsAdmin::Engine.root.join('app/controllers/rails_admin/main_controller.rb')
282
+ end
283
+ end
284
+ end
285
+
286
+ def total_columns_width=(_)
287
+ ActiveSupport::Deprecation.warn('The total_columns_width configuration option is deprecated and has no effect.')
288
+ end
289
+
290
+ def sidescroll=(_)
291
+ ActiveSupport::Deprecation.warn('The sidescroll configuration option was removed, it is always enabled now.')
292
+ end
293
+
294
+ # Setup actions to be used.
295
+ def actions(&block)
296
+ return unless block
297
+
298
+ RailsAdmin::Config::Actions.reset
299
+ RailsAdmin::Config::Actions.instance_eval(&block)
300
+ end
301
+
302
+ # Returns all model configurations
303
+ #
304
+ # @see RailsAdmin::Config.registry
305
+ def models
306
+ RailsAdmin::AbstractModel.all.collect { |m| model(m) }
307
+ end
308
+
309
+ # Reset all configurations to defaults.
310
+ #
311
+ # @see RailsAdmin::Config.registry
312
+ def reset
313
+ @compact_show_view = true
314
+ @browser_validations = true
315
+ @authenticate = nil
316
+ @authorize = nil
317
+ @audit = nil
318
+ @current_user = nil
319
+ @default_hidden_fields = {}
320
+ @default_hidden_fields[:base] = [:_type]
321
+ @default_hidden_fields[:edit] = %i[id _id created_at created_on deleted_at updated_at updated_on deleted_on]
322
+ @default_hidden_fields[:show] = %i[id _id created_at created_on deleted_at updated_at updated_on deleted_on]
323
+ @default_items_per_page = 20
324
+ @default_associated_collection_limit = 100
325
+ @default_search_operator = 'default'
326
+ @excluded_models = []
327
+ @included_models = []
328
+ @label_methods = %i[name title]
329
+ @main_app_name = proc { [Rails.application.engine_name.titleize.chomp(' Application'), 'Admin'] }
330
+ @registry = {}
331
+ @navbar_css_classes = %w[navbar-dark bg-primary border-bottom]
332
+ @show_gravatar = true
333
+ @navigation_static_links = {}
334
+ @navigation_static_label = nil
335
+ @asset_source = nil
336
+ @composite_keys_serializer = RailsAdmin::Support::CompositeKeysSerializer
337
+ @parent_controller = '::ActionController::Base'
338
+ @forgery_protection_settings = {with: :exception}
339
+ RailsAdmin::Config::Actions.reset
340
+ RailsAdmin::AbstractModel.reset
341
+ end
342
+
343
+ # Reset a provided model's configuration.
344
+ #
345
+ # @see RailsAdmin::Config.registry
346
+ def reset_model(model)
347
+ key = model.is_a?(Class) ? model.name.to_sym : model.to_sym
348
+ @registry.delete(key)
349
+ end
350
+
351
+ # Perform reset, then load RailsAdmin initializer again
352
+ def reload!
353
+ reset
354
+ load RailsAdmin::Engine.config.initializer_path
355
+ end
356
+
357
+ # Get all models that are configured as visible sorted by their weight and label.
358
+ #
359
+ # @see RailsAdmin::Config::Hideable
360
+ def visible_models(bindings)
361
+ visible_models_with_bindings(bindings).sort do |a, b|
362
+ if (weight_order = a.weight <=> b.weight) == 0
363
+ a.label.casecmp(b.label)
364
+ else
365
+ weight_order
366
+ end
367
+ end
368
+ end
369
+
370
+ private
371
+
372
+ def viable_models
373
+ included_models.collect(&:to_s).presence || begin
374
+ @@system_models ||= # memoization for tests
375
+ ([Rails.application] + Rails::Engine.subclasses.collect(&:instance)).flat_map do |app|
376
+ (app.paths['app/models'].to_a + app.config.eager_load_paths).collect do |load_path|
377
+ Dir.glob(app.root.join(load_path)).collect do |load_dir|
378
+ path_prefix = "#{app.root.join(load_dir)}/"
379
+ Dir.glob("#{load_dir}/**/*.rb").collect do |filename|
380
+ # app/models/module/class.rb => module/class.rb => module/class => Module::Class
381
+ filename.delete_prefix(path_prefix).chomp('.rb').camelize
382
+ end
383
+ end
384
+ end
385
+ end.flatten.reject { |m| m.starts_with?('Concerns::') } # rubocop:disable Style/MultilineBlockChain
386
+
387
+ @@system_models + @registry.keys.collect(&:to_s)
388
+ end
389
+ end
390
+
391
+ def visible_models_with_bindings(bindings)
392
+ models.collect { |m| m.with(bindings) }.select do |m|
393
+ m.visible? &&
394
+ RailsAdmin::Config::Actions.find(:index, bindings.merge(abstract_model: m.abstract_model)).try(:authorized?) &&
395
+ (!m.abstract_model.embedded? || m.abstract_model.cyclic?)
396
+ end
397
+ end
398
+ end
399
+
400
+ # Set default values for configuration options on load
401
+ reset
402
+ end
403
+ end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'kaminari'
4
+ require 'nested_form'
5
+ require 'rails'
6
+ require 'rails_admin'
7
+ require 'rails_admin/extensions/url_for_extension'
8
+ require 'rails_admin/version'
9
+ require 'turbo-rails'
10
+
11
+ module RailsAdmin
12
+ class Engine < Rails::Engine
13
+ isolate_namespace RailsAdmin
14
+
15
+ attr_accessor :importmap
16
+
17
+ config.action_dispatch.rescue_responses['RailsAdmin::ActionNotAllowed'] = :forbidden
18
+
19
+ initializer 'RailsAdmin load UrlForExtension' do
20
+ RailsAdmin::Engine.routes.singleton_class.prepend(RailsAdmin::Extensions::UrlForExtension)
21
+ end
22
+
23
+ initializer 'RailsAdmin reload config in development' do |app|
24
+ config.initializer_path = app.root.join('config/initializers/rails_admin.rb')
25
+
26
+ unless Rails.application.config.cache_classes
27
+ ActiveSupport::Reloader.before_class_unload do
28
+ RailsAdmin::Config.reload!
29
+ end
30
+
31
+ reloader = app.config.file_watcher.new([config.initializer_path], []) do
32
+ # Do nothing, ActiveSupport::Reloader will trigger class_unload! anyway
33
+ end
34
+
35
+ app.reloaders << reloader
36
+ app.reloader.to_run do
37
+ reloader.execute_if_updated { require_unload_lock! }
38
+ end
39
+ reloader.execute
40
+ end
41
+ end
42
+
43
+ initializer 'RailsAdmin precompile hook', group: :all do |app|
44
+ case RailsAdmin.config.asset_source
45
+ when :sprockets
46
+ app.config.assets.precompile += %w[
47
+ rails_admin/application.js
48
+ rails_admin/application.css
49
+ ]
50
+ app.config.assets.paths << RailsAdmin::Engine.root.join('src')
51
+ require 'rails_admin/support/es_module_processor'
52
+ Sprockets.register_bundle_processor 'application/javascript', RailsAdmin::Support::ESModuleProcessor
53
+ when :importmap
54
+ self.importmap = Importmap::Map.new.draw(app.root.join('config/importmap.rails_admin.rb'))
55
+ end
56
+ end
57
+
58
+ # Check for required middlewares, users may forget to use them in Rails API mode
59
+ config.after_initialize do |app|
60
+ has_session_store = app.config.middleware.to_a.any? do |m|
61
+ m.klass.try(:<=, ActionDispatch::Session::AbstractStore) ||
62
+ m.klass.try(:<=, ActionDispatch::Session::AbstractSecureStore) ||
63
+ m.klass.name =~ /^ActionDispatch::Session::/
64
+ end
65
+ loaded = app.config.middleware.to_a.map(&:name)
66
+ required = %w[ActionDispatch::Cookies ActionDispatch::Flash Rack::MethodOverride]
67
+ missing = required - loaded
68
+ unless missing.empty? && has_session_store
69
+ configs = missing.map { |m| "config.middleware.use #{m}" }
70
+ configs << "config.middleware.use #{app.config.session_store.try(:name) || 'ActionDispatch::Session::CookieStore'}, #{app.config.session_options}" unless has_session_store
71
+ raise <<~ERROR
72
+ Required middlewares for RailsAdmin are not added
73
+ To fix this, add
74
+
75
+ #{configs.join("\n ")}
76
+
77
+ to config/application.rb.
78
+ ERROR
79
+ end
80
+
81
+ RailsAdmin::Version.warn_with_js_version
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/extensions/controller_extension'
4
+
5
+ module RailsAdmin
6
+ EXTENSIONS = [] # rubocop:disable Style/MutableConstant
7
+ AUTHORIZATION_ADAPTERS = {} # rubocop:disable Style/MutableConstant
8
+ AUDITING_ADAPTERS = {} # rubocop:disable Style/MutableConstant
9
+ CONFIGURATION_ADAPTERS = {} # rubocop:disable Style/MutableConstant
10
+
11
+ # Extend RailsAdmin
12
+ #
13
+ # The extension may define various adapters (e.g., for authorization) and
14
+ # register those via the options hash.
15
+ def self.add_extension(extension_key, extension_definition, options = {})
16
+ options.assert_valid_keys(:authorization, :configuration, :auditing)
17
+
18
+ EXTENSIONS << extension_key
19
+
20
+ AUTHORIZATION_ADAPTERS[extension_key] = extension_definition::AuthorizationAdapter if options[:authorization]
21
+
22
+ CONFIGURATION_ADAPTERS[extension_key] = extension_definition::ConfigurationAdapter if options[:configuration]
23
+
24
+ AUDITING_ADAPTERS[extension_key] = extension_definition::AuditingAdapter if options[:auditing]
25
+ end
26
+
27
+ # Setup all extensions for testing
28
+ def self.setup_all_extensions
29
+ (AUTHORIZATION_ADAPTERS.values + AUDITING_ADAPTERS.values).each do |klass|
30
+ klass.setup if klass.respond_to? :setup
31
+ rescue # rubocop:disable Style/RescueStandardError
32
+ # ignore errors
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAdmin
4
+ module Extensions
5
+ module CanCanCan
6
+ # This adapter is for the CanCanCan[https://github.com/CanCanCommunity/cancancan] authorization library.
7
+ class AuthorizationAdapter
8
+ module ControllerExtension
9
+ def current_ability
10
+ # use _current_user instead of default current_user so it works with
11
+ # whatever current user method is defined with RailsAdmin
12
+ @current_ability ||= ability_class.new(_current_user)
13
+ end
14
+ end
15
+
16
+ include RailsAdmin::Config::Configurable
17
+
18
+ def self.setup
19
+ RailsAdmin::Extensions::ControllerExtension.include ControllerExtension
20
+ end
21
+
22
+ # See the +authorize_with+ config method for where the initialization happens.
23
+ def initialize(controller, ability = nil, &block)
24
+ @controller = controller
25
+ ability_class { ability } if ability
26
+ instance_eval(&block) if block
27
+
28
+ adapter = self
29
+ ControllerExtension.define_method(:ability_class) do
30
+ adapter.ability_class
31
+ end
32
+ @controller.current_ability.authorize! :access, :rails_admin
33
+ end
34
+
35
+ register_instance_option :ability_class do
36
+ Ability
37
+ end
38
+
39
+ # This method is called in every controller action and should raise an exception
40
+ # when the authorization fails. The first argument is the name of the controller
41
+ # action as a symbol (:create, :bulk_delete, etc.). The second argument is the
42
+ # AbstractModel instance that applies. The third argument is the actual model
43
+ # instance if it is available.
44
+ def authorize(action, abstract_model = nil, model_object = nil)
45
+ return unless action
46
+
47
+ action, subject = resolve_action_and_subject(action, abstract_model, model_object)
48
+ @controller.current_ability.authorize!(action, subject)
49
+ end
50
+
51
+ # This method is called primarily from the view to determine whether the given user
52
+ # has access to perform the action on a given model. It should return true when authorized.
53
+ # This takes the same arguments as +authorize+. The difference is that this will
54
+ # return a boolean whereas +authorize+ will raise an exception when not authorized.
55
+ def authorized?(action, abstract_model = nil, model_object = nil)
56
+ return unless action
57
+
58
+ action, subject = resolve_action_and_subject(action, abstract_model, model_object)
59
+ @controller.current_ability.can?(action, subject)
60
+ end
61
+
62
+ # This is called when needing to scope a database query. It is called within the list
63
+ # and bulk_delete/destroy actions and should return a scope which limits the records
64
+ # to those which the user can perform the given action on.
65
+ def query(action, abstract_model)
66
+ abstract_model.model.accessible_by(@controller.current_ability, action)
67
+ end
68
+
69
+ # This is called in the new/create actions to determine the initial attributes for new
70
+ # records. It should return a hash of attributes which match what the user
71
+ # is authorized to create.
72
+ def attributes_for(action, abstract_model)
73
+ @controller.current_ability.attributes_for(action, abstract_model&.model)
74
+ end
75
+
76
+ private
77
+
78
+ def resolve_action_and_subject(action, abstract_model, model_object)
79
+ subject = model_object || abstract_model&.model
80
+ if subject
81
+ [action, subject]
82
+ else
83
+ # For :dashboard compatibility
84
+ [:read, action]
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_admin/extensions/cancancan/authorization_adapter'
4
+
5
+ RailsAdmin.add_extension(:cancancan, RailsAdmin::Extensions::CanCanCan, authorization: true)
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAdmin
4
+ module Extensions
5
+ module ControllerExtension
6
+ end
7
+ end
8
+ end